最近论文补实验,需要配置好SampleNet算法输出一些结果。调试也是经过一番周折,在这里把一些重要的信息记录下来。因为很多深度学习项目的配置,都和SampleNet有很大的相似性,把配置细节和一些问题列出来,方便以后查阅。
1. Linux双系统安装
参看:https://blog.csdn.net/fanxueya1322/article/details/90205143
需要注意的是,系统安装完成后,启动项可以通过EASYUEFI来进行调整。
https://www.easyuefi.com/index-us.html
2. 安装Anconda
参考:https://blog.csdn.net/qq_41719643/article/details/109777042
我第一开始没有安装Anconda,后来在配置驱动经历过无数蛋疼的尝试后,果断安装Anconda脱离苦海。使用Anconda创建的虚拟环境,对于调整python版本以及cuda版本效果显著。
3. Nvidia驱动更新
这个过程,直到现在我也不敢说按照既定步骤百分之百能搞定。
参考:https://blog.csdn.net/qq_32408773/article/details/84112166
对于Nvidia显卡驱动更新,网上很多教程都是先在黑名单禁用nouveau,然后退到文本模式安装驱动。这个过程强烈建议新手不要试!整不好,图形界面就搞不出来了,以至于退到recovery模式使用root命令做恢复也搞不定。
比较靠谱的办法是,在附加驱动(如果是Ubuntu18,这个选项在软件与更新里,如果是20的版本,在单独的附加驱动选项里)选项中,替换对应的Nvidia驱动就可以,如下图:
安装完成后,重启,使用如下命令检查驱动是否替换成功:
lshw -c video
如果在configuration选项里的driver=nvidia,那么驱动安装成功。
接下来是CUDA安装,按照网上最常见的方法,在官网上下载deb文件进行安装:
个人比较推荐安装10.0版本。下载完成后按照命令操作:
- sudo dpkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
- sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
- sudo apt-get update
- sudo apt-get install cuda
如果报错,即:下列软件包有为满足的关系,cuda依赖:cuda-10-0 (>=10.0.130)...
该错误我猜测是系统版本兼容问题,解决的办法就是使用在线cuda安装方法:
- `sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb`
- `sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub`
- `sudo apt-get update`
- `sudo apt-get install cuda`
由于我的ubuntu系统是20.04的,不知道为啥,使用在线安装以后,就直接默认升级到11.2了,但是好在是能用了。
cuda环境变量配置:
编辑 ~/.bashrc
vim ~/.bashrc
添加如下代码:
export PATH=/usr/local/cuda-10.2/bin\$\{PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
刷新
source ~/.bashrc
检查安装
nvcc -V
4. 在Anconda虚拟中配置Pycharm的tensorflow环境
这一步骤最重要的就是配置好cuda和cudnn
经过我的实验,觉得在conda里在安装相应的工具成功率是最高的,具体命令如下:
首先激活在pycharm创建的conda环境:
conda activate 你的conda环境 (例:conda activate SampleNet)
查看可使用版本:
conda search tensorflow
在该环境下安装cuda插件:
https://anaconda.org/anaconda/cudatoolkit
conda install -c anaconda cudatoolkit
安装cudnn:
https://anaconda.org/anaconda/cudnn
conda install -c anaconda cudnn
安装tflearn:
https://anaconda.org/contango/tflearn
conda install -c contango tflearn
检测是否安装成功:
import tensorflow as tf
print(tf.test.is_gpu_available())
打印true的话,就是安装成功。
5. CUDA版本切换(卸载)
如果你下载了多个版本的CUDA,对应相应的项目时需要切换。
参看该博客:https://blog.csdn.net/yinxingtianxia/article/details/80462892
如果希望卸载cuda:
sudo ./uninstall_cuda_10.0.pl
如果没有pl
sudo apt-get --purge remove cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48
sudo apt-get --purge remove cuda-xx-x //注意安装的版本号
参考博客:https://blog.csdn.net/xu_fengyu/article/details/89364098
6. 一些问题
按照项目的提示要求,安装其他的包。经过调试后,一个比较难以解决的问题是下面这个:
最典型的就是这个问题:../tf_grouping_so.so not found
根据网上查阅的资料,很多人表示大概率是因为版本不一致产生的编译问题。但是经过我的实践发现,还是因为系统平台的问题。我在windows平台按照原作者的list选择的对应版本进行安装,结果还是搞不定。主要还是因为生成so的sh文件是按照linux环境下进行处理的,所以还是要在linux系统上配置项目比较方法。
具体的解决方法参看:https://blog.csdn.net/aliexken/article/details/115343375
主要就是修改.sh文件内的cuda版本以及链接文件,以适应你的环境。
因为我没有成功搞定cuda的对应版本,很多tensor1.x版本的代码需要根据2.x的环境进行适度的修改,如使用tensorflow.compat.v1 替换 tensorflow等。
7.Tensorflow,CUDA以及cuDNN对应版本查询
一些tensorflow与cuda版本的对应信息:
https://www.tensorflow.org/install/source