tensorflow1.6+CUDA9.0+cuDNN7.0整个环境在windows下正常工作。因为需要就要把项目整到ubuntu上面跑测试,于是就调到坑里面去了,先说一下版本
网上查了一下说tensorflow1.7支持CUDA9.0,于是就下载了CUDA9.0开始安装,但是死活装不上,不管是下载local还是network的installer,总是报错,查了一下发现是没有装驱动于是下载384的驱动,安装好了之后,装到最后又挂了,根据抛出的错误找到英伟达的论坛,里面的官方回答是CUDA9.0与CUDA9.1必须安装387.x的驱动,于是有装上,在终端执行下面命令行:
终于把CUDA装好了,然后下载cuDNN7.0,通过下面命令安装即可,(注意顺序很重要)
安装好了之后CUDA9.0+cuDNN7.0就在ubuntu14上安装好了。可以支持tensorflow 1.7的代码运行与测试了。但是当时第一次配置的时候,我以为tensorflow1.7官方release支持CUDA9.1,所以刚开始装了CUDA9.1,然后就悲剧了,各种命令卸载,最终直接暴力删文件夹,再命令autoremove终于把CUDA9.1干掉了。由于是第一次整ubuntu的配置,各种查资料查命令,掉了好几次坑,总结如下:
常见错误:
错误:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
问题:
找不到cuda9.0的版本。
原因:
是因为装了不匹配的cuda9.1的版本,所以只有卸载重装。
ERROR:
You appear to be running an X server; please exit X before installing. For further details, please see the section INSTALLING THE NVIDIA DRIVER in the README available on the Linux driver download page at www.nvidia.com
问题与原因:
没有关闭X-Server,必须关闭,然后切换到命令行运行方式下,在图形界面下会一直有这个问题!坑死人!
使用tensorflow GPU支持的时候,多个GPU通过制定使用一个GPU运行时候,尽量要通过设置soft的方式执行,不然在复杂的操作中容易掉坑里面去,soft的方式如下:
log_device_placement = Trueconfig = tf.ConfigProto(log_device_placement=log_device_placement)with tf.Session(config=config) as sess: # do something # ops
硬来的方式如下:
with tf.device('/gpu:0'): a = tf.placeholder(tf.float32, [10000, 10000]) b = tf.placeholder(tf.float32, [10000, 10000]) # Compute A^n and B^n and store results in c1 c1.append(matpow(a, n)) c1.append(matpow(b, n))
设置好GPU支持,就可以在ubuntu下开始运行程序测试了。最后上一张图看看运行时候的效果:
求木之长者,必固其根本;
欲流之远者,必浚其泉源!