本文主要是介绍Remote Sensing Image Change Detection with Transformers复现遇到的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22‘ not foun
这个是默认路径下的libstdc++.so.6缺少GLIBCXX_3.4.22,你有可能缺少其它版本的比如3.4.23,解决方法一样,如下所示:
(1)使用指令先看下目前都有哪些版本的
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
(2)使用
sudo find / -name “libstdc++.so.6*”
来查看当前系统中其它的同类型文件,找到一个版本比较高的,
strings /home/zrc/anaconda3/envs/BIT/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.26 | grep GLIBCXX
可以看到有需要的版本,接下来就是建立新的链接到这个文件上
(3)复制到指定目录并建立新的链接
复制
sudo cp /home/zrc/anaconda3/envs/BIT/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.26 /usr/lib/x86_64-linux-gnu/
删除之前链接
sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
创建新的链接
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.26 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
之后程序成功运行
原文链接:https://blog.csdn.net/qq_30653631/article/details/107620137
2、关于环境配置的问题
一定要按照Readme的环境进行配置!!!
安装gpu版的pytorch!!
首先在cmd中 查看cuda信息:
nvcc -V
查看驱动版本:
NVIDIA-smi
下载对应cuda版本的安装包,下载链接:
https://download.pytorch.org/whl/torch_stable.html
通过pip install 文件名(要加 .whl)安装
对应版本可以通过这篇博客
https://blog.csdn.net/weixin_42069606/article/details/105198845
但是!!可能会出现false的情况,是因为安装的是cpu版本的pytorch, conda list查看的时候可以看到,正确的安装应该是gpu版本如图所示(我的cuda版本是10.1)
验证是否安装成功
#使用python运行
import torch
print(torch.__version__)
print(torch.cuda.is_available())
3、OSError: ./LEVIR-CD/list\trainval.txt not found.的问题
这居然是因为作者的run_cd.sh文件里面不小心写错了。。。
复制主页上的改一下就好了~
split=train # training txt
split_val=val #validation txt
4、数据格式
用了LEVIR-CD数据集,下载下来的数据集格式:
├─train│ ├─A│ ├─B│ ├─label├─val│ ├─A│ ├─B│ ├─label├─test│ ├─A│ ├─B│ ├─label
把train、test、val的A和B和label都放到一个文件夹下变成以下格式:(list自己新建一个,txt文件中读取是图片的名称)
├─A ├─B├─label├─list│ ├─train.txt│ ├─test.txt│ ├─val.txt
读取文件名的代码如下:
# -*- coding:utf-8 -*-
import glob# imageList = glob.glob("/media/mym/My Passport/cj/MRI_data/GGZ202106/*/*/*/*") # 图片所在文件夹的路径
imageList = glob.glob("/BIT_CD/LEVIR/val/A/*")
imageList.sort() #按照升序排序
f = open('/BIT_CD-master/LEVIR/list/val.txt', 'a') # 创建标签文件存放图片文件名
for item in imageList:# print(item) # images_test/m1_a_018_1.jpgimg_name1 = item.split('/')[-1] # 图片文件名018.jpg# img_name = img_name1.split('.')[0]print(img_name1)f.write(img_name1 + '\n') # 将图片文件名逐行写入txtprint('OK')
这篇关于Remote Sensing Image Change Detection with Transformers复现遇到的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!