Python使用keras和tensorflow遇到的问题及解决
作者:dltan
脚本文件取名keras报错
keras已经被pip安装好了,但是仍然无法继续使用,尝试添加函数, 重新安装keras都没能成功,最后看到一篇文章上写的是脚本命名问题,经过尝试后,解决好了这个问题。
具体报错记录如下:
No module named 'keras.datasets'; 'keras' is not a package
解决办法:
(1).修改项目脚本中的命名,脚本不能叫keras,否则报错。
(2).重新下载keras的包
pip install keras tensorflow==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --default-timeout=100
使用过程找不到对应包模块
使用pip list 发现对应模块和安装包都在,但是无法调用该模块
思考过是该包缺少什么函数或是缺少什么依赖
后在网上找到说是包的版本过高
兼容性问题导致,因此将该包进行了升级
解决了该包模块无法找到的问题
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
解决办法:
将包卸载,找keras和tensorflow匹配版本的包,这里我是将keras的包进行了升级解决
tensorflow-gpu安装
之前使用过CPU的tensorflow,这次的目的是使用GPU版本的,并要对tensorflow的可视化进行一个新的展示,完成自己之前在tensorflow的BP和卷积神经网络的验证。
tensorflow的gpu版本安装,我先卸载了cpu的tensorflow,理由是网上说如果不删除,python程序将默认使用cpu的tensorflow进行,在安装过程中尝试了30分钟
最终安装的解决方法如下:
使用安装命令为:
pip install tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple/ --default-timeout=100
D:\Python\python_data2_project>pip install tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple/ --default-timeout=100
tensorflow和keras的案例运行
下面代码是摘自网络,成功运行如下:
import numpy as np import os import tensorflow from keras.models import Sequential from keras.layers import Dense # 随机生成一组数据 data = np.random.random((1000,100)) # 随机生成标签 labels = np.random.randint(2,size=(1000,1)) model = Sequential() # 添加一层神经网络 model.add(Dense(32, activation='relu', input_dim=100)) # 添加激活函数(activate function) model.add(Dense(1, activation='sigmoid')) # 构建模型,定义优化器及损失函数 model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy']) # 模型与数据一键fit model.fit(data,labels,epochs=10,batch_size=32) predictions = model.predict(data)
通过上面的损失函数的最终结果,可以看出模型的效果并不是很好。
Tensorflow的GPU设置运行
电脑显卡类型不支持,暂时未进行验证,后续持续验证
https://www.jb51.net/python/318776btb.htm
绘制损失函数
hist=model.fit(data,labels,epochs=10,batch_size=32) plt.plot(hist.history['accuracy'],label="accuracy") plt.plot(hist.history['loss'],label="loss") plt.legend(loc=0, ncol=1) # 参数:loc设置显示的位置,0是自适应;ncol设置显示的列数 plt.show()
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。