Python使用keras和tensorflow遇到的問題

腳本文件取名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://blog.csdn.net/A632189007/article/details/77978058

繪製損失函數

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()

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章