keras 報錯:“Sequential” object has no attribute “_in_multi_worker_mode”


在使用keras的回調函數時報錯

AttributeError: 'Sequential' object has no attribute '_in_multi_worker_mode'

代碼如下

# 3.參數搜索 RandomizedSearchCV

from sklearn.model_selection import RandomizedSearchCV
# RandomizedSearchCV參數說明,
# clf1設置訓練的學習器
# param_dist字典類型,放入參數搜索範圍
# scoring = 'neg_log_loss',精度評價方式設定爲"neg_log_loss"
# n_iter=300,訓練300次,數值越大,獲得的參數精度越大,但是搜索時間越長
# n_jobs = -1,使用所有的CPU進行訓練,默認爲1,使用1個CPU
# RandomizedSearchCV採用了cross-validation: 將訓練集分成n分,n-1訓練,最後一份驗證。默認cv=3
random_search_cv = RandomizedSearchCV(sklearn_model,
                                      param_distribution,
                                      cv = 3,
                                      n_iter = 10,
                                      n_jobs = -1)
# use call back function
callbacks = [
    # 目標指標不再有改善了,就可以提前終止
    # 
    keras.callbacks.EarlyStopping(monitor='acc', # 被檢測的模型的指標
                                  patience=2, # 沒有進步的訓練輪次爲2,在這之後訓練就會被停止
                                  # min_delta=1e-3
                                  ),
    # 保存模型
    keras.callbacks.ModelCheckpoint(filepath="model_{epoch:03d}-{val_acc:.4f}.h5",# 路徑
                                    monitor='val_acc',# 如果val_loss沒有改善就不覆蓋
                                    save_best_only=True)# 保持最佳模型

]

解決方法

keras.callbacks.EarlyStoppingkeras.callbacks.ModelCheckpoint
改爲

from keras.callbacks import ModelCheckpoint
from keras.callbacks import EarlyStopping

# 3.參數搜索 RandomizedSearchCV

from sklearn.model_selection import RandomizedSearchCV
from keras.callbacks import ModelCheckpoint
from keras.callbacks import EarlyStopping
# RandomizedSearchCV參數說明,
# clf1設置訓練的學習器
# param_dist字典類型,放入參數搜索範圍
# scoring = 'neg_log_loss',精度評價方式設定爲"neg_log_loss"
# n_iter=300,訓練300次,數值越大,獲得的參數精度越大,但是搜索時間越長
# n_jobs = -1,使用所有的CPU進行訓練,默認爲1,使用1個CPU
# RandomizedSearchCV採用了cross-validation: 將訓練集分成n分,n-1訓練,最後一份驗證。默認cv=3
random_search_cv = RandomizedSearchCV(sklearn_model,
                                      param_distribution,
                                      cv = 3,
                                      n_iter = 10,
                                      n_jobs = -1)
# use call back function
callbacks = [
    # 目標指標不再有改善了,就可以提前終止
    # 
    EarlyStopping(monitor='acc', # 被檢測的模型的指標
                                  patience=2, # 沒有進步的訓練輪次爲2,在這之後訓練就會被停止
                                  # min_delta=1e-3
                                  ),
    # 保存模型
    ModelCheckpoint(filepath="model_{epoch:03d}-{val_acc:.4f}.h5",# 路徑
                                    monitor='val_acc',# 如果val_loss沒有改善就不覆蓋
                                    save_best_only=True)# 保持最佳模型

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