简介
最近使用tensorflow object detection训练自己的数据集时,出现了
AttributeError: module 'tensorflow.contrib.data' has no attribute 'parallel_interleave'
主要的原因是tensorflow1.4没有这个函数,需要tensorflow1.7(不知道1.5,1.6可以吗)版本。然而直接安装会出现tensorflow不管用的情况,主要原因是当前的cuda8.0不支持1.7版本。所以需要安装一个比较新的cuda9.0,因为我已经安装了nvidia驱动,驱动型号是390.25 (可以参考我之前的博客)
卸载cuda8.0
打开你的terminal,输入命令
sudo service lightdm stop然后ctrl+Alt+F1,输入账号,密码登入cd /usr/local/cuda-8.0/binsudo ./uninstall_cua_8.0.pl
这里面可能应该会出现一个没有删除的情况(应该是cudnn的东西吧)
可以直接将这个文件夹删除了
sudo rm -rf cuda8.0
安装cuda9.0
接下来的其实可以参考我的博客
ubuntu16.04安装NIVIDIA显卡驱动,cuda8.0,cuDNN6.0以及基于Anaconda安装Tensorflow-GPU
下载地址
下载安装,然后我介绍一下流程
cd Dowload/sudo sh cuda_9.0.176_384.81_linux.run --no-opengl-libs
然后按照接下来的步骤做,cuda9.0自带的驱动,可以不用,因为已经安装好了驱动。
Do you accept the previously read EULA?accept/decline/quit:accept Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?(y)es/(n)o/(q)uit: nInstall the CUDA 9.0 Toolkit?(y)es/(n)o/(q)uit: yEnter Toolkit Location[ default is /usr/local/cuda-9.0 ]: 直接按enterDo you want to install a symbolic link at /usr/local/cuda?(y)es/(n)o/(q)uit: yInstall the CUDA 9.0 Samples?(y)es/(n)o/(q)uit: y
配置环境变量
sudo gedit /etc/profile
export PATH=/usr/local/cuda-9.0/bin/:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64/
测试
#编译并测试设备 deviceQuery: cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery sudo make ./deviceQuery #编译并测试带宽 bandwidthTest: cd ../bandwidthTest sudo make ./bandwidthTest
如果这两个测试的最后结果都是Result = PASS
,说明CUDA安装成功啦。
cudnn安装
下载地址
我下载的是Download cuDNN v7.0.4 (Nov 13, ), for CUDA 9.0
具体方法参考我之前的博客,注意修改一下啊,参考一下解压cudnn后的文件夹,cuda/lib64/下的文件。这就是不同点。
tensorflow-gpu安装
首先得卸载之前的tensorflow
#激活tensorflow环境source activate tensorflowpip uninstall tensorflow-gpu
参考我之前的博客,我试了一下pip install tensorflow-gpu==1.7好像不行,用下面这个还可以。
pip install tensorflow-gpu