我的AI之路(4)--在Anaconda3 下安装Tensorflow 1.8

14 篇文章 1 订阅

      在Anaconda3安装好后,有一个默认的base(root)环境,你可以打开Anaconda Navigator后点左边列表中的Environments可以看到,或者在command窗口中输入conda activate或者activate,这时激活的默认环境就是base。

    这个base(root) env实际上是融合于Anaconda本身的环境,也就是说如果在base环境里安装tensorflow或其他软件包的话,都会安装在Anaconda本身的包库路径下,比如C:\Anaconda3\Lib\site-packages\,这么做有一个好处就是安装tensorflow过程非常快,因为C:\Anaconda3\Lib\site-packages\下面已经安装了大量支持包,无需再下载安装,除非版本不对,坏处就是把Anaconda本身的环境搞乱了。

   如果想创建一个自己的独立的隔离环境,那么可以用conda创建一个新的,比如执行:

   conda create -n tensorflow pip python=3.6

   然后回车确认,Anaconda就会给你在C:\Anaconda3\envs\下创建一个独立的tensorflow目录,并把python3.6和相关支持包都安装到C:\Anaconda3\envs\tensorflow下。然后执行

   conda activate tensorflow 或 activate tensorflow

   激活进入这个新创建的tensorflow env,然后就可以开始安装tensorflow了:

   先把依赖包安装了(这些依赖包有些tensorflow 1.8 不会自动去下载安装,但是会以红字提示,为了一次性安装好无问题,最好先把依赖包先安装了):

   python -m pip install html5lib bleach ipykernel

   python -m pip install --ignore-installed --upgrade pip setuptools

   安装完上面的包后,安装tensorflow1.8,一般书上或网上说的去https://storage.googleapis.com/tensorflow/去下载跟你的操作系统和python版本对应的wheel文件安装,或者执行 git clone https://github.com/tensorflow/tensorflow下载源码然后在本地执行configure和bazel命令编译出wheel文件再安装,前者的缺点是你需要指定跟你的操作系统和python版本对应的准确的wheel文件名,而且https://storage.googleapis.com/国内下载文件比较慢,后者是下载文件不仅很慢很难一次性成功下载到全部源码文件,而且build出wheel的过程中可能会出现未知的你一下不清楚如何解决的问题,除非你的环境很特殊确实需要根据环境build出wheel文件,或者你有大把时间想弄着玩玩熟悉一下tensorflow的build过程,那么你可以一边自个去好好玩大笑

   其实国内清华提供了一个镜像网站https://pypi.tuna.tsinghua.edu.cn,上面有很多开源项目的好东东,包括tensorflow,下载文件速度很快,而且能根据你的操作系统和python版本给你自动选择对应的wheel文件下载安装,很省事,执行:

   python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow

   python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu

   即可快速安装tensorflow CPU或GPU版(当前清华镜像网站上的Tensorflow版本已经是1.10.1版),安装完后,执行python进入python命令行,然后写几行简单代码测试一下:

   import tensorflow as tf

   c=tf.constant("A.C., you have done a good job")

   s=tf.Session()

   s.run(c)

   如果无错误能打印出"A.C., you have done a good job",这表明安装成功了。

   对于CPU版tensorflow,如果安装完后在执行import tensorflow as tf这句时报错:ImportError: DLL load failed: 找不到指定的模块,或者直接提示:

Could not load 'msvcp140.dll'. TensorFlow requires that this DLL be

installed in a directory that is named in your %PATH% environment variable.

You may install this DLL by downloading Microsoft Visual C++ 2015 Redistributable Update 3

from this URL: https://www.microsoft.com/en-us/download/details.aspx?id=53587

   这是因为你的C:\Windows\System32\下缺少一个msvcp140.dll文件,需要安装VC++ 2015 redistribute,到https://www.microsoft.com/en-us/download/details.aspx?id=53587下载跟你Windows位数对应的vc_redist.x64.exe或vc_redist.x86.exe文件并安装即可解决。

 

   如果你的电脑有NVidia GPU卡,想安装GPU版tensorflow,则执行

   python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu

   安装完后,还不能立即像上面那样执行测试代码,还需要安装CUDA和CUDNN等支持NVidia GPU卡作并行计算的运行库环境,否则会在import tensorflow时报错,给出大意是找不到cuda库之类的提示。安装了跟tensorflow1.8相对应的正确版本的CUDA和CUDNN后在执行测试代码无代码错误的话即可看到打印输出。

   关于如何选择和正确安装跟tensorflow版本对应的CUDA和CUDNN版本,这点很重要,CUDA和CUDNN安装弄错了会让你抓狂,tensorflow会出这样那样的莫名错误,不知道具体原因几下解决不了的,会让你郁闷到深夜大笑,这话题需要单独写一篇文章才能说完,请参见我的下一篇文章。

    另外,https://github.com/tensorflow/tensorflow/上有说明,还提供了Tensorflow nightly build的这种下载安装方式,这种安装方式很简单,只需执行

    pip install tf-nightly 或 pip install tf-nightly-gpu

我试过,这种安装方式能自动根据你的机器的操作系统和python版本,自动选择对应的最新的nightly版本下载安装,这种安装方式好处是简单,缺点是下载慢,网速不快的整个过程需要等不少时间,另外nightly build可能有不稳定的一面。

     此外,Anaconda Navigator提供了图形化界面安装tensorflow或其他包的功能。

 点击下方+号可以创建一个新的隔离环境,注意选择Python的版本(如果需要的话,还可以选择R语言的版本):

   打开Terminal:

 

   然后在Terminal里设置清华的镜像网站作为源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

 

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

 

conda config --set show_channel_urls yes

     或者手工在<home>/.condarc文件(Windows里是在C:\Users\<username>\下面)里手工添加:

     channels:
       - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
       - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

       - defaults
    ssl_verify: true
    show_channel_urls: true

    然后在分类栏选择All,在Search Packages栏输入tensorflow,然后在显示出来的列表中勾选tensorflow或tensorflow-gpu,然后点击右下方的Apply按钮:

   在弹出窗口中点击Apply即开始安装

   可以看到,cudatookit和cudnn以及vc2005_runtime等支持库都会自动安装,但是这窗口里的显示的各个软件的版本都非常老了,tensorflow还是1.1版,说明镜像库这个路径下很久没有提供更新了,所以不推荐这种安装方式,需要找到提供比较新的版本的镜像源,目前我没找到,以后找到再回头修改上面的源设置。

 

    安装完tensorflow后,从http://yann.lecun.com/exdb/mnist把四个测试/验证数据集文件下载到D:\AI\dataset\mnist,然后顺便使用tensorflow提供的mnist example代码跑一下训练和试用体验一下tensorboard,执行以下命令:

     cd D:\Anaconda3\Lib\site-packages\tensorflow\examples\tutorials\mnist

   #对于Windows环境下,一定要指定 log_dir 和data_dir参数,因为如果不指定路径,这些代码默认都是试图去创建以linux的/tmp为路径开始的log和data目录,那样会出错导致停止,因为Windows下根本没有/tmp

     python mnist_with_summaries.py --log_dir=.\log --data_dir=d:\AI\dataset\mnist

   执行上面的命令开始训练后,如果报错:

     F T:\src\github\tensorflow\tensorflow\stream_executor\lib\statusor.cc:34] Attempting to fetch value instead of handling error Failed precondition: could not dlopen DSO: cupti64_90.dll; dlerror: cupti64_90.dll not found

     这是因为cupti64_90.dll在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64下,但这个目录路径没有加入到path环境变量中,在系统环境变量设置里把这个C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64加入到path变量中即可。

      训练完后,执行:

    tensorboard --logdir=.\log

可以看到如下输出:

   D:\Anaconda3\Lib\site-packages\tensorflow\examples\tutorials\mnist>tensorboard --logdir=.\log
d:\anaconda3\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
TensorBoard 1.10.0 at http://fychen-T470P:6006 (Press CTRL+C to quit)

在Chrome浏览器里输入地址http://fychen-T470P:6006即可打开tensorboard页面。

 

Windows下跑word2vec example:

cd D:\Anaconda3\Lib\site-packages\tensorflow\examples\tutorials\word2vec

修改word2vec_basic.py (因为代码默认使用linux的/tmp路径,Windows下必须修改):

def maybe_download(filename, expected_bytes):
  """Download a file if not present, and make sure it's the right size."""
  #local_filename = os.path.join(gettempdir(), filename)
  local_filename = "D:\\AI\\dataset\\text8\\" + filename

然后执行:

python word2vec_basic.py --log_dir=.\log

训练完毕后,在.\log\下再创建log文件夹,然后把训练生成的metadata.tsv文件移到这个log目录里去(这是Tensorboard的bug,不然找不着这个文件!),然后执行:

tensorboard --logdir=.\log

输出:

D:\Anaconda3\Lib\site-packages\tensorflow\examples\tutorials\word2vec>tensorboard --logdir=.\log
d:\anaconda3\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
TensorBoard 1.10.0 at http://fychen-T470P:6006 (Press CTRL+C to quit)

在chrome浏览器里输入地址http://fychen-T470P:6006,进入页面点projector面板即可看到很炫酷的三维效果展示(分PCA和T-SNE方法,还可以custom):

点击上方的A按钮,可以把立体三维点云图切换成text显示模式:

 

我的AI之路(1)--前言

我的AI之路(2)--安装Fedora 28

我的AI之路(3)--安装Anaconda3 和Caffe

我的AI之路(4)--在Anaconda3 下安装Tensorflow 1.8

我的AI之路(5)--如何选择和正确安装跟Tensorflow版本对应的CUDA和cuDNN版本

我的AI之路(6)--在Anaconda3 下安装PyTorch

我的AI之路(7)--安装OpenCV3_Python 3.4.1 + Contrib以及PyCharm

我的AI之路(8)--体验用OpenCV 3的ANN进行手写数字识别及解决遇到的问题

我的AI之路(9)--使用scikit-learn

我的AI之路(10)--如何在Linux下安装CUDA和CUDNN

我的AI之路(11)--如何解决在Linux下编译OpenCV3时出现的多个错误

我的AI之路(12)--如何配置Caffe使用GPU计算并解决编译中出现的若干错误

我的AI之路(13)--解决编译gcc/g++源码过程中出现的错误

我的AI之路(14)--Caffe example:使用MNIST数据集训练和测试LeNet-5模型

我的AI之路(15)--Linux下编译OpenCV3的最新版OpenCV3.4.1及错误解决

我的AI之路(16)--云服务器上安装和调试基于Tensorflow 1.10.1的训练环境

我的AI之路(17)--Tensorflow和Caffe的API及Guide

我的AI之路(18)--Tensorflow的模型安装之object_detection

我的AI之路(19)--如何在Windows下安装pycocotools PythonAPI

我的AI之路(20)--用Tensorflow object_detection跑raccoon数据集

我的AI之路(21)--用Tensorflow object_detection跑PASCAL VOC 2012数据集

我的AI之路(22)--使用Object_Detection_Tensorflow_API

我的AI之路(23)--在Windows下编译Bazel和使用Bazel编译tensorflow

 

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arnold-FY-Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值