Windows10环境下TensorFlow安装及运行相关问题咨询
背景信息:
我使用Anaconda Python发行版以避免电脑存在多个Python版本,执行了以下安装命令:C:> conda create -n tensorflow python=3.6 C:> activate tensorflow (tensorflow)C:> pip install --ignore-installed --upgrade tensorflow运行测试代码时出现如下信息:
>>> import tensorflow as tf >>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session() 2018-01-23 02:44:09.201798: I C:\tf_jenkins\home\workspace\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2 >>> print(sess.run(hello)) b'Hello, TensorFlow!'
问题1:这是否意味着我的i7-6500U(2.59GHz)CPU不支持TensorFlow?
别担心,这完全不代表你的CPU不支持TensorFlow!这条提示只是个性能优化提醒:你的i7-6500U确实支持AVX/AVX2这些高级CPU指令集,但你安装的预编译TensorFlow包没有针对这些指令集做优化。
TensorFlow依然可以正常运行,只是没办法利用这些指令集来提升运算速度。如果你追求更高的性能,可以尝试从源码编译TensorFlow并开启这些指令集优化;如果只是日常开发或测试,完全可以忽略这条提示。
问题2:输出中的b'前缀是环境正常输出还是错误?
这是完全正常的输出,不是错误!在Python 3中,b'...'是字节字符串(bytes类型)的表示格式,TensorFlow返回字符串类型的张量结果时,默认会以字节字符串的形式输出。
如果你想得到普通的字符串格式,可以对结果进行解码:
print(sess.run(hello).decode('utf-8'))
这样就能输出不带b前缀的Hello, TensorFlow!了。
问题3:我发现CMD中的Python及Spyder程序里都看不到TensorFlow库,是否需要用pip再安装一份?还是TensorFlow需要激活对应环境才能调用?
完全不需要重复安装!这是Anaconda虚拟环境的特性导致的:你是在tensorflow这个虚拟环境中安装的TensorFlow,但你当前打开的CMD和Spyder是在默认的base环境(或者其他非tensorflow环境)中运行的,自然看不到这个环境里的库。
解决方法很简单:
- 在CMD中,先执行
activate tensorflow(Windows系统)激活虚拟环境,之后再启动Python或Spyder,就能正常导入TensorFlow了; - 如果使用Anaconda Navigator启动Spyder,记得在启动前选择
tensorflow环境,而不是默认的base环境。
另外补充一下:你看到的指南里推荐用pip install而非conda install安装TensorFlow是完全正确的——conda的TensorFlow包更新通常比官方pip包慢,用pip安装能获取到最新版本的TensorFlow。
内容的提问来源于stack exchange,提问作者Antares2018




