1. 程式人生 > >python資料分析與挖掘實戰筆記二:第99頁神經網路訓練出現的錯誤'Some keys in session_kwargs are not supported at this time: %s'

python資料分析與挖掘實戰筆記二:第99頁神經網路訓練出現的錯誤'Some keys in session_kwargs are not supported at this time: %s'

在使用神經網路模型預測銷量高低時,系統指出模型訓練時出現錯誤:

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'])