“是骡子是马,拉出来溜溜”。上述安装是否成功,需要测试一下才知道。下面我们就用大名鼎鼎的“HelloWorld”程序,来测试TensorFlow是否安装成功。

在终端输入python(请注意,在Mac/Linux环境下“python”全部小写),进入Python的交互模式(Python shell)。然后依次输入如下4条语句。

01    >>> import tensorflow as tf

02    >>> hello = tf.constant("Hello World, TensorFlow!")

03    >>> sess = tf.Session()

04    >>> print(sess.run(hello))

b'Hello World,TensorFlow!'

我们暂不去解释上述语句,在后文讲解TensorFlow语法时,会详细介绍。在交换模式下,如果输入第01行代码没有提示信息,那么恭喜你,TensorFlow安装成功。

但通常是“好事多磨”。由于我们“追新”,Python当前的最新版本是3.6,而TensorFlow的最新官方编译版还停留在(Python3.5),所以会导致如下警告信息:

/home/yhilly/anaconda3/envs/tensorflow/lib/python3.6/importlib/_bootstrap.py:219:RuntimeWarning: compiletime version 3.5of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6return f(*args, **kwds)

在GitHub上,这是一个留名的(known)的问题,网上吐槽一片。TensorFlow的维护者倒是非常大方的承认,目前所谓的TensorFlow的Python 3.6编译版,是拿3.5的编译版“滥竽充数”的。或许读者朋友看到这本书的时候,这个问题已是过去式了,因为TensorFlow的维护者已腾出手修复了这个问题。

上述警告信息,其实并不影响输出结果(这或许也是TensorFlow维护者并不着急解决这个小问题的原因之一)。如果有“代码洁癖”的读者,可重新利用conda创建一个Python3.5的环境,下载安装图11-15倒数第5个安装包(即tensorflow-1.4.0-cp35-cp35m-manylinux1_x86_64.whl),问题就可以迎刃而解。然后,在命令行终端输入如下指令:

conda create -ntensorflow35 python=3.5           #创建Python3.5的环境tensorflow35source activatetensorflow35                      # 激活环境tensorflow35pip3 installtensorflow-1.4.0-cp35-cp35m-manylinux1_x86_64.whl   #安装Python 3.5 编译包

在解决第01条语句的报警问题之后,在输入第03条语句时,TensorFlow也可能会给出如下警告:

Itensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supportsinstructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2AVX AVX2 FMA

这个问题的出现,是源于TensorFlow的默认发布版并没有构建于CPU的扩展版指令之上。这样做的目的在于,它可以兼容更多类型的CPU,尽量寻求支持各类CPU型号的最大交集,所以诸如SSE(StreamingSIMD Extensions,单指令多数据流扩展)、AVX(AdvancedVector Extensions,高级向量扩展指令集)、FMA(FusedMultiply–Add,积和熔加运算)等提高CPU效率的“个性化”高级指令,默认发布版是不支持的。而对于机器学习任务来说,这些并行化或向量化编程,能大大提升机器学习的效率。

处理这类警告信息,有两种策略。第一种策略就是“鸵鸟策略”——对警告信息“视而不见,听而不闻”,因为毕竟是“警告信息”,而非错误信息,TensorFlow程序照样可以正常运行。但这样做的坏处在于,明明你的CPU性能很好,可健步如飞,却非要像“打折了腿”一般行路,好不委屈!

为了避免这类情况,自然还需要我们再“折腾”一番,下载TensorFlow的源码,放到自己的机器上编译一下。热爱“折腾”,是上进程序员的优秀品质之一。下面我们就再接着折腾一番,介绍TensorFlow的第三种安装方式——下载源码编译。

------《待续》-------------

节选自 张玉宏《深度学习之美》部分章节,电子工业出版社,博文视点,2018年7月出版

TensorFlow学习系列之六:测试TensorFlow是否安装成功相关推荐

  1. java mysql jsp分页代码_JAVA/JSP学习系列之六(MySQL翻页例子)

    JAVA/JSP学习系列之六(MySQL翻页例子) 更新时间:2006年10月13日 00:00:00   作者: 一.运行前准备 下载了mysql的jdbc驱动(一个jar文件)并加载在CLASSP ...

  2. libev学习系列之三:libev编译安装

    libev学习系列之三:libev编译安装 版本说明 版本 作者 日期 备注 0.1 ZY 2019.5.31 初稿 目录 文章目录 libev学习系列之三:libev编译安装 版本说明 目录 源码结 ...

  3. 测试Python是否安装成功—python在Windows上的配置测试

    测试Python是否安装成功 Pyhon 安装成功后,需要检测 Python 是否真的安装成功.在 Windows系统中检测 Python是否真的安装成功,可以单击 Windows 系统的" ...

  4. Hadoop安装配置,并使用Hadoop计算圆周率测试Hadoop是否安装成功

    一.实验目的 掌握如何安装.配置和运行Hadoop,并使用Hadoop计算圆周率测试Hadoop是否安装成功. 二.实验环境 (1)Linux Ubuntu 16.04 (2)jdk-8u162-li ...

  5. 01_Win10下CUDA的安装、查看并升级Nvidia显卡驱动、安装CUDA、设置环境变量、测试CUDA是否安装成功

    1.1.Win10下CUDA的安装(此部分只是记录一下安装过程,和上面版本可能不对应) 以下部分来自:https://blog.csdn.net/weixin_41762173/article/det ...

  6. tensorflow学习笔记:查看tensorflow可配置运算资源以及配置使用GPU运算

    查看tensorflow可配置运算资源以及配置使用GPU运算 因为还用不到分布式的tensorflow,自己没有尝试过所以就不写分布式tensorflow的使用了(等自己用上了再说),这里记录一下在跑 ...

  7. TensorFlow学习笔记之一(TensorFlow基本介绍)

    文章目录 TensorFlow计算模型---计算图 计算图的使用 TensorFlow数据模型---张量 TensorFlow运算模型---会话 使用tf.InteractiveSession在交互式 ...

  8. TensorFlow学习笔记01:TensorFlow入门

    文章目录 一.TensorFlow基本概念 1.TensorFlow的Hello World 2.TensorFlow的概念 3.计算图&#

  9. CUDA安装失败-Nsight compute安装失败-如何测试CUDA是否安装成功?Reason: VS** was not found

    一.安装背景 CUDA11.1版本,本人的电脑显卡是GTX 1650,显存4GB:第一次安装前下载了vs2017版本并安装成功. 二.安装过程-如何一步步地解决错误? 第一次安装:精简安装,也就是把所 ...

最新文章

  1. 正则表达式获取TABLE里的内容
  2. 好好学python · 内置函数(range(),zip(),sorted(),map(),reduce(),filter())
  3. 【tensorflow】——tensorboard可视化计算图以及参数曲线图loss图
  4. 百度如何使用Go语言重构日请求量千亿级别的系统?
  5. 十大简单易用的免费在线HTML编辑器
  6. 用python打印平行四边形_shell脚本实现图形打印(三角形 平行四边形等)
  7. cargo test 报错 STATUS_DLL_NOT_FOUND
  8. 实验吧 ctf题目 天下武功唯快不破
  9. JN项目-qq昵称含有表情无法进行第三方登录
  10. Matlab 自定义colormap
  11. H5点击图片保存本地
  12. oracle查询列出24小时,ORACLE日期相关操作
  13. [算法和数据结构入门][Day2]python 直接替换列表中的元素几种方法
  14. LeetCode报错:Line 923: Char 9: runtime error: reference binding to null pointer of type ‘std::__cxx11:
  15. 新视野大学英语(第三版)视听说4答案
  16. 未来计算机打蜡机,瀚海狼山:利润惊人的未来行业——卫星打蜡、上油、翻新!...
  17. 使用IDEA运行OnlyOffice的Java示例
  18. 游戏Flappy Bird走红启示:没人知道玩家想要什么
  19. net core站点部署到ubuntu,错误信息System.TypeInitializationException: The type initializer for 'Gdip' threw an
  20. 半双工 Wi-Fi 无线局域网讲解

热门文章

  1. 怎样求FIRST集与FOLLOW集
  2. matlab中axes显示,求助:在matlab的axes控件中显示图像
  3. 开发者必须知道的HTML5十五大新特性
  4. Nginx简介配置及高可用详解
  5. Win11麦克风权限的开启方法
  6. JTAG/SPI/ISP/ICSP 接口电路
  7. 解决eureka client出现“No instances available for eureka-server”的问题
  8. mac for intel 使用个人账号免费使用vmware
  9. centos7安装在两块硬盘上_win10下利用Hyper-V安装centos7
  10. 东方财富网新版A股数据爬取