windows安装TensorFlow和Keras遇到的问题及其解决方法
安装TensorFlow在Windows上,真是让我心力交瘁,想死的心都有了,在Windows上做开发真的让人发狂。
首先说一下我的经历,本来也就是起初,网上说python3.7不支持TensorFlow环境,而且使用Anaconda最好,所以我将我之前Windows上所有的python环境卸载掉!!!,对没错,是所有,包括Anaconda环境,python环境,pycharm环境也卸载掉了。而且我丧心病狂的在电脑上找几乎所有关于python的字眼,全部删除掉,统统不留。只是为了铁了心在Windows上成功安装一个TensorFlow环境。
之前在Linux上环境都有,但是总是切换Linux和Windows比较麻烦,但是这个原因解释起来也比较麻烦,就不多说了。总之,就是必须在Windows上安装TensorFlow!这次是铁了心的,因为去年在Windows上没有安装成功,我就避而远之,没弄,但是现在不得不再来,我决定遇到问题不再躲避,要直面挫折,即使浪费很长的时间,也必须完成(其实是正好这段时间不太忙)。
然后听到同事说,很简单啊,就是安装一个Anaconda对应python3.6版本的就行,后面直接pip install 就OK了。当然我们希望是这样,可是事与愿违,简直是气死我了,这一天安装anaconda就安装了三次,你说累不累,除了安装这个,还要安装对应的包,真的是卸了又安,安了又卸。
而打算最后一次尝试,竟然是安装的python3.7成功了(各位盆友,记住,只是安装成功了!!),哈哈哈,真的我觉得我这笑是无奈的笑。
下图是anaconda的版本和python的版本:
下图是TensorFlow和keras安装成功的见证:
但是,使用的时候还是报错!!!下图是在python3.7的情况下:
唉,难受,那最最后一次尝试,就是在python3.6版本下安装,终于成功了!!包括测试成功,上图:
所以,我的总结就是,安装python3.6 还是python3.7的什么都不重要,最重要的是遇到问题,解决问题。无论用哪个版本,只要TensorFlow支持这个版本,我们就可以按照成功!!!,但是前提是必须官方支持的版本
好了,牢骚发完了,废话也说完了,下面说说安装注意的坑。
1,anaconda安装要注意的问题
话不多说,先上anaconda的下载地址。
镜像下载地址:清华镜像源
官方下载地址:https://repo.anaconda.com/archive/
那anaconda按照要注意的问题是什么呢?
1.1,安装到这一步,配置所有的User,选择第二个!!
如果选择第一个,可能会出现,下面报错,也就是PermissionError,权限不足,所以就是安装不成功,即使我使用了管理员权限进入了cmd,但是还是没有任何用处。
当然,有可能你们有用,那么如何进入管理员身份运行,如下:
到C:\Windows\System32目录下,右键单击cmd.exe文件以管理员身份运行。如下
运行结果如下:
1.2,安装到这一步,最好√上第一个,让anaconda自己配置环境变量
当然,不让anaconda自己配置环境变量也可以,那就是我们自己去我的电脑配置。
如何确保已经配置好环境变量了呢?
我们打开cmd,直接输入pip list 或者 conda list,如果出现anaconda安装的包,则说明没有问题,如果出现,无此命令,则环境变量没有配置好。
我第一次没有打 √ ,选择自己配置的环境变量。
配置环境变量就是根据安装时的路径找到以下几个路径用于环境配置,我放在E盘里,以下为我安装时的路径。
- E:\anaconda3
- E:\anaconda3\Scripts
- E:\anaconda3\Library\bin
配置环境:回到桌面,右击‘我的电脑’,然后点击属性-高级系统设置-右下角点击环境变量,点击系统变量下方新建,如下图所示,依次将上面的三个路径输入,路径间用英文状态下的分号隔开,点击确定并应用。
然后设置环境变量:
检测是否安装成功
打开命令提示符(按住田字键和R键)输入cmd,输入conda和python,检测是否安装成功。
好啦~安装完成啦!
2,安装TensorFlow中报错cannot uninstall wrapt
报错如下:
Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot
accurately determine which files belong to it which would lead to only a partial
uninstall.
导致错误的原因:Wrapt issue when installing package
解决方法:
pip install wrapt --upgrade --ignore-installed wrapt
强行升级,然后安装TensorFlow和Keras,成功了!!
# GPU 版本
>>> pip install --upgrade tensorflow-gpu # CPU 版本
>>> pip install --upgrade tensorflow # Keras 安装
>>> pip install keras
安装成功,是成功了,但是无法使用,依旧会报错。
3,使用Keras中报错TensorFlow错误
导入Keras,发现报错了,报错信息如下:
本以为是版本的问题,然后卸载了keras和TensorFlow:
最好将其依赖一同卸载掉:
然后尝试安装了TensorFlow更低的版本(版本如下面所示):
结果无济于事,没用!!!
迫不得已,我决定降低python版本,尝试python3.6,大家都说3.6好,那就用呗。
4,在anaconda中降低python版本,尝试python3.6
使用以下命令创建新环境:
conda create -n env_name list of packages
其中 -n 代表 name,env_name 是需要创建的环境名称,list of packages 则是列出在新环境中需要安装的工具包。
我现在的python版本是3.7,但是我想安装一个python 3.6的环境,则在anaconda prompt输入:
conda create -n python36 python=3.6
控制台会输出:
输入y:
下面我们激活这个环境:
conda activate python36
然后安装keras和TensorFlow,最后在python环境中验证,发现新的错误:
讲道理,现在的我已经麻木了,感觉自己把该犯的错全犯了,运气怎么这么差呢?
百度,改错方法如下:
5,使用TensorFlow,keras出现错误:modulenotfounderror: no module named tensorflow.python
真的是遇到问题,解决问题,我已经麻木了。
可能是因为tensorflow作为后端对keras的支持不够好,但是keras的backend 同时支持tensorflow和theano,并且默认是tensorflow,因此在win本上需要更改backend为theano才能运行。
在keras安装目录里(在安装环境的目录里有Lib\site-packages\keras),找到Lib\site-packages\keras\backend__init__.py文件。
将 _BACKEND = 'tensorflow' 改为 _BACKEND = 'theano'
然后在C:\Users\Administrator\下有个文件夹.keras,里面有keras.json文件,修改里面的内容,原来是:
{
"floatx": "float32",
"epsilon": 1e-07,
"backend": "tensorflow",
"image_data_format": "channels_last"
} 修改为 {
"floatx": "float32",
"epsilon": 1e-07,
"backend": "theano",
"image_data_format": "channels_last"
}
那这个只解决了Keras的问题,但是TensorFlow的问题仍然没有解决:
从下面代码来看,我们的Keras确实可以运行。但是TensorFlow仍然报错。
python使用TensorFlow报错 ModuleNotFoundError:No module named 'tensorflow.python
python使用TensorFlow报错 ModuleNotFoundError:No module named 'tensorflow.python
我去我同事能使用的TensorFlow的安装包site_packages下的tensorflow包里面查看,发现别人的环境都是这样的:
而我的环境中没有python,example include这几个文件夹,终于知道问题出在哪里了,所以我打算将别人的这个文件夹复制下来,但是于此同时在网上看到一个安装方法,反正折腾一天了,这个复制还在进行当中,我就先尝试了一下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ https://mirrors.tuna.tsinghua.edu.cn/tensorflow/windows/cpu/tensorflow-1.3.0rc0-cp36-cp36m-win_amd64.whl
然后等了好久,安装成功了:
我也就不报希望,但是还是例行公事的在python环境中验证了一下:
不知道大家看到了什么,对,安装成功了!!!!
此时此刻,我的内心已经毫无波澜了,一丝喜悦感都没有了。
为了测试到底能不能用,我又将keras的后端环境由theano换成了TensorFlow(如何改回去,上面有代码,大家可以自己改,这里不再重复了)。
然后测试,成功!!!,上图:
今天真的是,哈哈哈哈哈。既然这个舒服,那我就再在python3.7上测试安装keras和tensorflow,看看是否成功,但是去清华大学镜像仓库,发现没有python3.7版本的tensorflow。
下面记录一下去清华大学镜像仓库下载并安装对应版本的tensorflow,一方面记录正确的安装过程,另一方面,证明确实没用python3.7对应的TensorFlow版本。
6,一次安装成功TensorFlow过程
直接去清华大学镜像仓库,查看对应版本的tensorflow:地址:https://mirrors.tuna.tsinghua.edu.cn/
寻找找tensorflow,并点进去:
那查找自己对应的电脑系统:
我安装的是CPU版本的:
点进去,发现,目前只有python3.5 和 python3.6的:
然后,下载对应python版本的轮子,直接安装即可。
7,不信邪,尝试python3.7版本安装TensorFlow,最终放弃
为什么这样说呢?,因为我在常下载轮子的地方发现了python3.7版本对应的TensorFlow,真的。
(下载轮子的地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/)
上图:
反正都失败这么多次了,也不差这一回,我就继续安装了一下python3.7版本的:
pip install tensorflow-1.9.0-cp37-cp37m-win_amd64.whl
显示,安装成功:
此时,内心窃喜,测试一下:
心里有很多脏话,不值当讲不当讲,还是没有用。
所以目前决定放弃在python3.7版本安装tensorflow!!反正在python3.6版本上已经安装成功了,可以用就行了。
8,彩蛋
哈哈哈,很高兴,看到我这篇文章的盆友,能看到这里,这里我分享一下我这次拨开乌云见彩虹的坎坷历程。
讲道理,这两天的无数次尝试,最终成功,让我明白一个道理,就是遇到问题并不可怕,可怕的是自己脆弱的心,不断想放弃的想法。
记得去年十月份的时候,我在Windows上尝试安装tensorflow失败了。我就对深度学习这块避而远之,即使训练模型也在Linux服务器上做, 麻烦是麻烦了点,但是就是不愿意面对这个麻烦。但是从上个月开始,当我看到同事完成了一件事后,我决定安装tensorflow(因为最近确实用的比较多,切换太频繁也比较麻烦),她的那锲而不舍精神打动了我,什么事情呢? 先说一下背景,她是学习java的,虽然说编程语法大相径庭,但是不同点依旧很多,而需要她使用python一个web框架flask做一个东西。她虽然不会,但是不断尝试,不断尝试,可以说是遇到了很多很多麻烦,挫折,我也天天听到了她的抱怨(可惜我帮不上),但是终于听到了她说“yes”。我知道她成功了。所以,我决定不放弃,一定要安装成功,最后也确实安装成功了。
那其实,很多人说,没这么麻烦,我在Windows上直接pip install 就成功了啊,也确实是,但是我确实遇到了很多麻烦。希望我这次经历能帮到需要帮助的盆友。
windows安装TensorFlow和Keras遇到的问题及其解决方法的更多相关文章
- windows 安装tensorflow
原文知乎:https://zhuanlan.zhihu.com/p/25778703 前言 看到Rstudio中开始支持Tensorflow,本人是欣喜若狂的,同时TensorFlow官网从16年9月 ...
- win10+anaconda安装tensorflow和keras遇到的坑小结
win10下利用anaconda安装tensorflow和keras的教程都大同小异(针对CPU版本,我的gpu是1050TI的MAX-Q,不知为啥一直没安装成功),下面简单说下步骤. 一 Anaco ...
- PHP XAMPP windows环境安装扩展redis 致命错误: Class 'Redis' not found解决方法
PHP XAMPP windows环境安装扩展redis 致命错误: Class 'Redis' not found解决方法 1.电脑需要先安装redis服务端环境,并在安装目录下打开客户端redis ...
- python2在安装pywin32后出现ImportError: DLL load failed 解决方法
python2在安装pywin32后出现ImportError: DLL load failed 解决方法 在python2中有时候会出现: import win32api ImportError ...
- windows无法启动MySQL服务报错1067的解决方法是怎样?
方法一: 1.打开my.ini文件,找到default-storage-engine=InnoDB这一行,把它改成default-storage-engine=MyISAM.2.删除在MySQL安装目 ...
- 排错-Loadrunner添加Windows Resource计数器提示“找不到网络路径”解决方法
Loadrunner添加Windows Resource计数器提示“找不到网络路径”解决方法 by:授客 QQ:1033553122 1.启动windows相关服务 win->services. ...
- 新安装的win7/win10系统,所有驱动都没安装,插入U盘也无法识别解决方法
我是使用老毛挑安装的系统,结果安装好之后,才发现所有驱动都没有安装,例如usb,网卡驱动等 解决方法就是先把驱动下载到系统安装盘里面,然后再次进入安装系统界面,相当于重新安装系统,但实际上我们不需要. ...
- 排错-windows平台下访问oracle em出现空白的解决方法
排错-windows平台下访问oracle em出现空白的解决方法 by:授客 QQ:1033553122 问题描述 IE浏览器本地访问oem,出现空白页面,就左上角有一行字符 http://loca ...
- windows下使用GNU make命令报错的解决方法
windows下使用GNU make命令报错的解决方法=> 错误信息:make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x ...
随机推荐
- WPF绘制深度不同颜色的3D模型填充图和线框图
原文:WPF绘制深度不同颜色的3D模型填充图和线框图 在机械测量过程中,测量的数据需要进行软件处理.通常测量一个零件之后,需要重建零件的3D模型,便于观察测量结果是否与所测工件一致. 重建的3D模型需 ...
- wpf datagrid设置右键菜单打开时选中项的背景色
原文:wpf datagrid设置右键菜单打开时选中项的背景色 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/artic ...
- WPF利用VisualTreeHelper遍历寻找对象的子级对象或者父级对象
原文:WPF利用VisualTreeHelper遍历寻找对象的子级对象或者父级对象 简介 本文将完整叙述我利用VisualTreeHelper实现题述功能的全部过程,想直接看函数实现的朋友可以跳到函数 ...
- sql Left right join 多表 注意表的连接顺序
多表左/右连接,表的连接顺序也可以影响查询速度 左连接时,应该把小表放在前面连接例子:A.B.C三表左连接情况1:A先和B连接,得到100条记录100条记录再和C左连接情况2:A先和C连接,得到50条 ...
- WPF 视图导航
<Window x:Class="ViewExam.MainWindow" xmlns="http://schemas.microsoft.com/w ...
- jquery模拟飞秋
<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- C#基于用户和角色的验证,服务端web 客户端wpf
应用程序服务 <?xml version="1.0"?> <!-- For more information on how to configure your ...
- delphi中获取memo鼠标所在位置的行和列(通过EM_GETRECT消息取得Rect后,自己算一下)
也是看别人写的,但是不容易找到,就转发一篇delphi版本的 function GetLine(X, Y: integer): TPoint;var OldFont : HFont; Hand : ...
- WPF常见内存泄露
Event handlers leak This type of leak occurs when subscribing an object (let's call it listener) to ...
- SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)
原文:SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容 ...