因为处理量的增大,之前在本地linux上的一套tf-faster-rcnn的代码需要被移动到更高的环境下(之前是gtx1080ti的单显卡,目标机器是一台gtx titanv的双显卡),我本以为移动会很简单,但事实耗费了我两个小时的时间,这里记录一下移动过程中出现的问题,以及我的解决思路。
首先先声明一点,所有的问题都出在了版本不一致上。因为原机器的版本是cuda9+tensorflow_gpu的1.14版本,而新机器的版本是cuda10+tensorflow_gpu的2.0.0的beta版本。
正常移动,其实一点都不正常,因为我们线下线上的隔离性,导致scp是用不了的只能用samba来做,很麻烦,不过这里基本不会出问题,所以就跳过了。
移动完成之后出现了问题。
第一个问题:老生常谈的问题:
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
这个在之前的本地机器上就出现过这个问题,原因是cuda虽然安装好了,但是路径并没有放到我们的环境变量上,根据我之前的经验打开环境变量然后输入:export XXXXX
但是打开我的环境变量 诶 不对啊 我的环境变量是有这个的啊
所以问题不在这里,进入我们的文件看一下/usr/local/cuda/lib64
ls一下如下:
image.png这根本就没有libcudart.so.9.0这个文件,可恶!难道fasterrcnn不支持10.0吗?我可不想重新安装这麻烦的工具,去百度找找原因吧,经过搜索我发现没有谁用cuda10来跑fasterrcnn,怎么办。难道只能重新安装cuda9的版本吗?我可不想做那么麻烦的事情,因为安装可能要浪费我一天的时间,那何不把线上缺少的那个libcudart.so.9.0文件从本地拷贝过来?,反正报错说是缺少这一个文件啊。
image.png拷贝完成后执行我要运行的python代码,忽然发现报错变了,代表这个是可以work的,喜极而泣啊。
转而开始观察新的错误
image.png这是一个没有见过的错误,包不对,我忽然意识到tensorflow 2的版本和1.X版本好像很多api已经更换了。降级是不可能降级的,这辈子都不可能降级。于是我开始启动了一个虚拟环境来安装低版本的tensorflow(这不tm也是降级吗?)
cd venv
python -m venv Conner
source /data/venv/Conner/bin/activate
然后开始安装对应的包:
pip install Pillow
pip install easydict
pip install opencv-python
pip install keras
pip install matplotlib
然后再执行,ok!完美解决
网友评论