(通用)深度学习环境搭建: tensorflow 安装教程及常见错误解决 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
caiyongji
V2EX    TensorFlow

(通用)深度学习环境搭建: tensorflow 安装教程及常见错误解决

  •  1
     
  •   caiyongji 2017-10-27 11:32:50 +08:00 10124 次点击
    这是一个创建于 2905 天前的主题,其中的信息可能已经有所发展或是发生改变。

    区别于其他入门教程的“手把手式”,本文更强调“因”而非“果”。我之所以加上“通用”字样,是因为在你了解了这个开发环境之后,那些很 low 的错误你就不会犯了。
    大家都知道深度学习涉及到大量的模型、算法,看着那些乱糟糟的公式符号,心中一定是“ WTF ”。我想说的是,这些你都不要管,所谓车到山前必有路。

    所需安装包

    通常以我的习惯是以最简单的方式来接触一门新的技术,并且尽量抛弃新的(边缘)技术的介入,如果因为一些其他因素来导致学习树的不断扩大,会变得很低效,所以我们直击核心。以最常用的 windows 环境为例。
    这里以windows7+TensorFlow-gpu1.5+cuda8+cudnn6+anaconda5+python3.6为例。这里强烈推荐 GPU 版本,因为深度学习动辄几小时、几天、几周的运行市场,GPU 加速会节省你很多时间(甚至电费)。

    1. cuda_8.0.61_windows.exe http://developer2.download.nvidia.com/compute/cuda/8.0/secure/Prod2/local_installers/cuda_8.0.61_windows.exe: 从 NIVDIA 官网下载需要找到历史版本Legacy Releases。 tensorflow 代码引用的 cuda 库必须绝对匹配,比如 tensorflow1.3-1.5 都使用 cuda8 的库,目前( 2017-10-24 20:40:53 )不支持 cuda9 库。
      这里有一个关于 cuda8 的补丁,修复了 8.0 的一些 bughttp://developer2.download.nvidia.com/compute/cuda/8.0/secure/Prod2/patches/2/cuda_8.0.61.2_windows.exe
    2. cudnn-8.0-windows7-x64-v6.0.zip http://developer2.download.nvidia.com/compute/machine-learning/cudnn/secure/v6/prod/8.0_20170427/cudnn-8.0-windows7-x64-v6.0.zip
      和上面的原因一样,请匹配 6.0 版本。
    3. tensorflow https://github.com/tensorflow/tensorflow
      我之所以给出 github 的地址是因为 tensorflow 团队在 github 上每天 12:34 都有一次 build,并且 github 不受“种种”网络因素的影响。在 tensorflow 找到 python3.6 对应 gpu 版本build history,找到 whl 文件地址。
    4. Anaconda3-5.0.0-Windows-x86_64.exe https://www.anaconda.com/download/
      anaconda 有一个最大的好处就是安装各种 python 库比较方便。

    安装包关系

    anaconda 相当于 tensorflow 运行的容器。anaconda 可以创建多个“盒子”( environment ),每个盒子中的环境互不干扰,所以使用 anaconda 可以同时安装 python3.5/3.6,tensorflow1.3/1.5。
    cuda 和 cudnn 是 tensorflow 调用 gpu 所需要的库。也就是说 tensorflow 必须通过 cuda 和 cudnn 来调用电脑的 gpu。 图片描述 #安装#

    安装 anaconda、anaconda、cuda、cudnn

    1. anaconda、cuda、cudnn 安装即可。在安装过程中会自动配置环境变量。
    2. 不过需要手动将 cuda 的 development 目录配置到CUDA_HOME中。
    3. 将 cudnn 解压后,把文件复制到 cuda 对应目录。

    安装 tensorflow

    1. 启动 anaconda,点击environments(环境),点击create(新建),命名tensorflow-gpu,选取3.6版本。
    2. 点击 tensorflow-gpu 启动Open Terminal,输入activate tensorflow-gpu。这时,anaconda 下名字叫做 tensorflow-gpu 的环境已经启动了。下面我们才真正开始安装 tensorflow。
    3. 输入
      pip install --ignore-installed --upgrade http://ci.tensorflow.org/view/tf-nightly/job/tf-nightly-windows/M=windows-gpu,PY=36/lastSuccessfulBuild/artifact/cmake_build/tf_python/dist/tf_nightly_gpu-1.5.0.dev20171024-cp36-cp36m-win_amd64.whl 稍等片刻 tensorflow 就安装成功了。

    测试 tensorflow 环境

    1. 点击 anaconda 下我们创建的环境tensorflow-gpu启动Open With Python
    2. 输入import tensorflow如果不报错就说明安装成功了。

    常见错误

    1. ImportError: DLL load failed: 找不到指定的模块。 这个错误通常是 cuda 或者 cudnn 与 tensorflow 的版本对应错误。推荐下载 cuda8+cudnn6。
      当然,随着时间推移这些版本会被淘汰,但本教程依然适用。在 github 上找到 tensorflow 项目,在项目内搜索TF_CUDA_VERSIONTF_CUDNN_VERSION会看到当前 tensorflow 对应的是哪个 cuda 和 cudnn 版本。
    2. 其他错误。
      除 1 的错误外我暂时没碰到其他错误,如果出现排错的思路是,确认版本-->确认库是否包含在 path 中。如果依然无法解决,可以加我微信takeurhand讨论。

    运行 mnist 例子

    1. mnist 例子运行需要安装 matplotlib 库,这时候 anaconda 的方便之处就得以体现了。点击 anaconda 下tensorflow-gpu环境,再右侧搜索 matplotlib,勾选并点击 apply 即可。
    2. 下载 github 上 mnist 教程例子https://github.com/martin-gorner/tensorflow-mnist-tutorial,并解压。
    3. 启动 anaconda 下tensorflow-gpu环境Open Terminal,输入activate tensorflow-gpu,cd 到步骤 2 解压目录。
    4. 执行python mnist_xx.py 图片描述
    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     887 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:56 PVG 04:56 LAX 13:56 JFK 16:56
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86