Python使用keras和tensorflow遇到的問題及解決
腳本文件取名keras報錯
keras已經(jīng)被pip安裝好了,但是仍然無法繼續(xù)使用,嘗試添加函數(shù), 重新安裝keras都沒能成功,最后看到一篇文章上寫的是腳本命名問題,經(jīng)過嘗試后,解決好了這個問題。
具體報錯記錄如下:
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 發(fā)現(xiàn)對應模塊和安裝包都在,但是無法調(diào)用該模塊
思考過是該包缺少什么函數(shù)或是缺少什么依賴
后在網(wǎng)上找到說是包的版本過高
兼容性問題導致,因此將該包進行了升級
解決了該包模塊無法找到的問題
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
解決辦法:
將包卸載,找keras和tensorflow匹配版本的包,這里我是將keras的包進行了升級解決
tensorflow-gpu安裝
之前使用過CPU的tensorflow,這次的目的是使用GPU版本的,并要對tensorflow的可視化進行一個新的展示,完成自己之前在tensorflow的BP和卷積神經(jīng)網(wǎng)絡的驗證。
tensorflow的gpu版本安裝,我先卸載了cpu的tensorflow,理由是網(wǎng)上說如果不刪除,python程序?qū)⒛J使用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的案例運行
下面代碼是摘自網(wǎng)絡,成功運行如下:
import numpy as np
import os
import tensorflow
from keras.models import Sequential
from keras.layers import Dense
# 隨機生成一組數(shù)據(jù)
data = np.random.random((1000,100))
# 隨機生成標簽
labels = np.random.randint(2,size=(1000,1))
model = Sequential()
# 添加一層神經(jīng)網(wǎng)絡
model.add(Dense(32,
activation='relu',
input_dim=100))
# 添加激活函數(shù)(activate function)
model.add(Dense(1, activation='sigmoid'))
# 構(gòu)建模型,定義優(yōu)化器及損失函數(shù)
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
# 模型與數(shù)據(jù)一鍵fit
model.fit(data,labels,epochs=10,batch_size=32)
predictions = model.predict(data)

通過上面的損失函數(shù)的最終結(jié)果,可以看出模型的效果并不是很好。
Tensorflow的GPU設置運行
電腦顯卡類型不支持,暫時未進行驗證,后續(xù)持續(xù)驗證
http://m.fzitv.net/python/318776btb.htm
繪制損失函數(shù)
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) # 參數(shù):loc設置顯示的位置,0是自適應;ncol設置顯示的列數(shù) plt.show()

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用Python實現(xiàn)給企業(yè)微信發(fā)送消息功能
本文將介紹如何使用python3給企業(yè)微信發(fā)送消息,文中有詳細的圖文解說及代碼示例,對正在學習python的小伙伴很有幫助,需要的朋友可以參考下2021-12-12
Python服務器創(chuàng)建虛擬環(huán)境跑代碼
本文主要介紹了Python服務器創(chuàng)建虛擬環(huán)境跑代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07
Pyhthon中使用compileall模塊編譯源文件為pyc文件
這篇文章主要介紹了Pyhthon中使用compileall模塊編譯源文件為pyc文件,需要的朋友可以參考下2015-04-04
關于np.meshgrid函數(shù)中的indexing參數(shù)問題
Meshgrid函數(shù)在二維與三維空間中用于生成坐標網(wǎng)格,便于進行圖像處理和空間數(shù)據(jù)分析,二維情況下,默認使用笛卡爾坐標系,而三維meshgrid則涉及不同的坐標軸取法,在三維情況下,可能會出現(xiàn)坐標軸排列序混亂2024-09-09

