Keras BUG (持續更新)
記錄在使用keras中出現的各種問題以及解決方法
keras multiple_gpu_model causes “Can’t pickle module object” error
多GPU運行模型,其中使用 ModelCheckpoint
回調函數在每個epoch後保存模型,如果參數中沒有添加save_weights_only=True
則會在第一個epoch運行結束後出現如題錯誤
解決方法:
在ModelCheckpoint
函數中添加save_weights_only=True
參數
from keras.callbacks import ModelCheckpoint
callbacks_list = [ModelCheckpoint(filepath, monitor='val_loss',
verbose=1, save_best_only=True, save_weights_only=True)]
could not convert BatchDescriptor to cudnn tensor descriptor: CUDNN_STATUS_BAD_PARAM
在一個epoch還沒有訓練完成的中途出現該error,可能是因爲數據量n
和GPU的數量num_gpu
以及batch_size
的大小關係不符合:
n % batch_size > num_gpu
解決方法:
減少或增加數據 or 改變`batch_size`的大小
以符合n % batch_size > num_gpu