執行程式出現 fit() got an unexpected keyword argument ‘epoch‘的問題
阿新 • • 發佈:2021-02-10
執行下面程式碼塊:
from keras.models import Sequential from keras.layers.core import Dense, Activation from keras.optimizers import Adam model = Sequential() #層次模型 model.add(Dense(16,input_dim=input_size,init='uniform')) #輸入層,Dense表示BP層 model.add(Activation('relu')) #新增啟用函式 model.add(Dense(4,init='uniform')) #中間層 model.add(Activation('relu')) #新增啟用函式 model.add(Dense(1)) #輸出層 model.compile(loss='mean_squared_error', optimizer='Adam') #編譯模型 model.fit(X_train, y_train, nb_epoch = 50, batch_size = 256) #訓練模型nb_epoch=50次
出現這樣的問題:
AttributeError: module ‘tensorflow.python.framework.ops‘ has no attribute ‘_TensorLike‘
百度找答案,有的博主說是因為keras和tensorflow的版本不對應,但是我好不容易安裝好這兩個第三方庫,真的不捨得輕易解除安裝啊,而且也不知道這兩個版本是怎麼對應的,所以不能輕易就解除安裝了安裝的這兩個包,
然後有的是說因為keras和tensorflow.keras之間存在相容性問題,所以解決辦法是使用tensorflow.keras代替keras
然後嘗試之後出現這樣的問題:
ModuleNotFoundError: No module named 'tensorflow.keras.layers.core'
然後這個問題的解決辦法是:
參考連結:https://blog.csdn.net/aojue1109/article/details/83623927
在tensorflow的後面再加上python
然後繼續出現這樣的問題:
將裡面的init引數刪除,程式碼塊變成這樣的:
#建立bp模型 訓練 from tensorflow.keras.models import Sequential from tensorflow.python.keras.layers.core import Dense, Activation from tensorflow.keras.optimizers import Adam model = Sequential() #層次模型 model.add(Dense(16,input_dim=input_size)) #輸入層,Dense表示BP層 model.add(Activation('relu')) #新增啟用函式 model.add(Dense(4)) #中間層 model.add(Activation('relu')) #新增啟用函式 model.add(Dense(1)) #輸出層 model.compile(loss='mean_squared_error', optimizer='Adam') #編譯模型 model.fit(X_train, y_train, nb_epoch = 50, batch_size = 256) #訓練模型nb_epoch=50次
繼續報錯:
原來是這個引數是epochs,將程式改為:
model.fit(X_train, y_train, epochs = 50, batch_size = 256)
好啦,程式可以正常運行了。