因工作学习需要,需要安装edward库,安装过程中踩了无数个坑,特此记录下安装历程。
先放安装成功的配置组合:python3.7 + tensorflow-gpu1.14.0 + edward + CUDA10.0 + cuDNN7.4.2。
CUDA和cuDNN的安装教程网上有很多,这里就不再赘述了。
如果想要使用GPU进行加速计算的话可以不用安装tensorflow,直接安装tensorflow-gpu。详细见edward官网 。
edward安装方法:
pip install edward
最大的一个坑:edward不支持tensorflow2.0及以上版本。 最明显的一点是tensorflow2.0以后的版本已经将tf.contrib模块移除,而edward仍然需要tf,contrib属性(edward已经3年没更新了。。。)。
因为tensorflow要和python、CUDA、cuDNN的版本要对应,不能使用tf2.0以上的版本意味着全部软件和库都得跟着降级,本来我电脑上CUDA11 + python3.8 + cuDNN8.4 + tensorflow2.4用着很舒服,这edward一来全部都得跟着降级,巨麻烦。
edward是封装好的库,自己去改代码不现实,无奈只好把全部东西重装一遍。装好tensorflow1.14.0和tensorflow-gpu1.14.0后能调用edward了,但是GPU却调用不了了,排查一遍,我装的CUDA10.0和cuDNN7.4.2符合版本要求,怎么GPU会罢工呢?
这问题折磨了我一两天,后来在edward官网发现,如果想要用GPU加速的话直接安装tensorflow-gpu就行了,不用安装tensorflow(此时没装tensorflow一样可以导入tensorflow)。好家伙,可算找着原因了。
卸载tensorflow
pip uninstall tensorflow
安装指定版本tensorflow-gpu
pip install tensorflow-gpu==1.14.0
至此,edward能用了,tensorflow也能使用GPU加速了,困扰我两天的问题终于解决。但是由于tensorflow版本较低,实际调用edward时仍然有很多FutureWarning,这些警告可以不用理他,如果强迫症看不下去可以针对性地去修改一下代码。