在windows10上安装caffe和tensorflow

最近在Windows10上安装了caffe和tensorflow,折腾了好久。在此记录一下。

安装caffe的过程已在另一篇博客中进行了记录,在此不再赘述。而tensorflow也是非常简单的,也不再详细说明。

安装caffe和tensorflow比较重要的一点是,要确保把依赖正确安装好。GPU版本的caffe需要7+版本的CUDA和5.5/5.0的CUDNN。而GPU版本的tensorflow在1.5.0以上的版本则需要CUDA9和CUDNN7。两个框架对CUDA和CUDNN的不同要求造成了小小的冲突。

caffe和tensorflow对python的版本也有要求,使用Anaconda管理python会比较方便,通过创建虚拟环境可以更改python的版本。

  1. 我先通过conda create -n tensorflow python=3.5命令创建了一个名为tensorflow的虚拟环境,在这个虚拟环境中的python版本为3.5。

  2. 因为caffe需要的CUDA和CUDNN的版本较低,所以需要先安装好低版本的CUDA和CUDNN,我安装的是CUDA8.0和CUDNN5.0,然后把caffe搭建好。

  3. 然后再安装高版本的CUDA和CUDNN,我安装的是CUDA9.0和CUDNN7.0,然后在tensorflow虚拟环境中通过pip install tensorflow-gpu命令安装tensorflow。不同版本的CUDA是可以共存的,因为不同程序可以链接不同版本的CUDA文件。通过pip install tensorflow-gpu命令安装tensorflow时,程序会自动安装最新版本的tensorflow,命令执行完毕后我电脑上会安装1.13版本的tensorflow-gpu,但是在python中import tensorflow是会发生如下错误:

    Traceback (most recent call last):
    File "D:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
    File "D:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
    File "D:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
    File "D:\Anaconda3\envs\tensorflow\lib\imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
    File "D:\Anaconda3\envs\tensorflow\lib\imp.py", line 343, in load_dynamic
    return _load(spec)
    ImportError: DLL load failed: 找不到指定的模块。

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "D:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
    File "D:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
    File "D:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
    raise ImportError(msg)
    ImportError: Traceback (most recent call last):
    File "D:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
    File "D:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
    File "D:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
    File "D:\Anaconda3\envs\tensorflow\lib\imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
    File "D:\Anaconda3\envs\tensorflow\lib\imp.py", line 343, in load_dynamic
    return _load(spec)
    ImportError: DLL load failed: 找不到指定的模块

    找不到某些动态链接库
    有网友说缺少VS的某些环境,需要安装这个组件:https://www.microsoft.com/en-us/download/details.aspx?id=53587
    我没有采取这个解决方案,因为我有更新版本的这个组件,因为之前一直使用1.7版本的tensorflow,所以通过命令pip install tensorflow-gpu==1.7安装低版本的tensorflow,问题得到解决。

posted on 2019-04-11 10:34  Peyton_Li  阅读(1271)  评论(0编辑  收藏  举报

导航