python資料分析與挖掘實戰筆記二:第99頁神經網路訓練出現的錯誤'Some keys in session_kwargs are not supported at this time: %s'
阿新 • • 發佈:2019-01-25
在使用神經網路模型預測銷量高低時,系統指出模型訓練時出現錯誤:
ValueError Traceback (most recent call last)
<ipython-input-20-e46e29b76a5e> in <module>()
----> 1 model.fit(x, y, epochs=10, batch_size=10) #訓練模型
~/anaconda3/lib/python3.6/site-packages/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs)
1006 else:
1007 ins = x + y + sample_weights
-> 1008 self._make_train_function()
1009 f = self.train_function
1010
ValueError: ('Some keys in session_kwargs are not supported at this time: %s', dict_keys(['class_mode']))
實際上出現錯誤的地方是在模型編譯處,錯誤提示後面具體指出了是在self._make_train_function()當中,說明是模型的某個訓練方法出現了問題,而模型訓練程式碼中沒有關於模型訓練的方法的引數,而是在模型的編譯上。檢視keras官方文件可以知道編譯方法compile()方法只有三個引數,分別是優化器optimizer,損失函式loss和指標列表metrics,沒有class_mode這個引數,對於分類問題,用metrics設定為metrics=[‘accuracy’]即可。
所以要將模型編譯處的程式碼修改為以下內容:
model.compile(loss='binary_crossentropy', optimizer='adam', class_metrics=['accuracy'])