tensorflow对Linux及MacOS系统十分友好,官网和各大论坛有着极其详细的介绍。本人最近在安装tensorflow时发现网上关于Windows系统下安装教程少而且杂,便写此篇博客,总结一下本人安装tensorflow走过的弯路。
1.开发环境
(1)Windows10
(2)vs2017+Anaconda(电脑是64位就装64位版本)
2.1创建虚拟环境安装(推荐)
打开cmd命令行
(1)安装virtualenv包(创建虚拟环境)
输入 pip3 install -U pip virtualenv
(2)创建一个新的虚拟环境,方法是选择 Python 解析器并创建一个 ./venv 目录来存放它:
输入 virtualenv --system-site-packages -p python3 ./venv
(3)激活虚拟环境:
输入 .\venv\Scripts\activate
(4)在不影响主机系统设置的情况下,在虚拟环境中安装软件包。首先升级 pip:
输入 pip install --upgrade pip
输入 pip list # show packages installed within the virtual environment
(5)安装tensorflow
输入: pip install --upgrade tensorflow
(6)验证
输入:python -c “import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))”
(7)退出virtualenv环境
输入: deactivate # don’t exit until you’re done using TensorFlow
2.2win10系统下安装
(1)首先升级 pip:
输入 pip install --upgrade pip
输入 pip list *# show packages installed within the virtual environment
(2)安装tensorflow
输入: pip3 install --user --upgrade tensorflow # install in $HOME
(3)验证
输入:python3 -c “import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))”
小插曲:
安装完测试后,大概率会出现如图所示情形
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
意思是:你的CPU支持AVX2而你的tensorflow版本不支持AVX2(手动滑稽)有两种解决办法:
1.只是一个警告而已,没什么大问题,自己忽略就好了。或者加代码忽略,眼不见心不烦。
(完全可以,因为某些教程上也会出现这一句warring)
2.彻底解决,寻找适合我们系统的tensorflow版本:(1)卸载原来版本的tensorflow
pip3 uninstall tensorflow
pip list #检查是否删除成功
(2)github走一波(能找到这个项目真的是走运!)
https://github.com/fo40225/tensorflow-windows-wheel
根据自己的配置寻找合适的包下载至本地
(3)将相应的包放置合适的位置,否则如图所示:
ERROR后面的路径即为合适的位置。
(4)pip install + 文件名下载
(其实从tensorflow官网可以得到,我第一次下载的是不知道配合谁的1.14.0版本,并不能很好的配合我的电脑配置)
最终,没有提示啦!成功!!
但此时,仍无法使用我们好用的VS进行tensorflow代码的编译,为什么呢?我们在命令行中看一下tensorflow包的位置,是不是恍然大悟?包在刚刚那个目录下面而根本没有在Anaconda的目录下。
此时只需要将tensorflow包移动到Anaconda相应目录下即可啦。移动后,目录如图所示:
在VS中编译一波:
终于用VS进行编译啦,开心!小提醒:
1.若在pip过程中出现timeout而下载中止,如图
则先输入命令行:
pip3 --default-timeout=100 install -U 库名
再输入命令行:
pip3 install 库名
2.部分情况下会出现pip3命令无法使用,此时将pip3改为pip即可。
3.同时下载tensorflow–gpu版本后,编译时默认先使用gpu版本。