亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

keras 回調列表生成錯誤:“元組”對象沒有屬性“set_model”

keras 回調列表生成錯誤:“元組”對象沒有屬性“set_model”

慕萊塢森 2022-06-02 16:25:57
我正在編寫一個 keras 模型,我想在其中使用一些內置的 keras 回調,但是我可能在某個我無法發現的地方犯了語法錯誤。給我帶來麻煩的代碼如下:from keras.callbacks import EarlyStopping, ModelCheckpoint, TensorBoard......es = EarlyStopping(monitor='val_loss', min_delta=0.01, verbose=1, patience=5)tb = TensorBoard(log_dir=logdir, write_graph=True, write_images=True, histogram_freq=0)mc = ModelCheckpoint(filepath=filepath, save_best_only=True, monitor='val_loss', mode='min')history = model.fit(X_train, y_train,                    batch_size=batch_size,                    epochs=n_epochs,                    verbose=1,                    validation_split=0.3,                    callbacks=[es, tb, mc])但是這樣做我得到了錯誤'tuple' object has no attribute 'set_model'。參考這個另一個問題,問題似乎是由es, tb每個 sé 已經是元組的事實產生的,因此將它們定位到一個列表中(在 call 中callbacks=[es, tb, mc])會引發錯誤。實際上print(type(es))print(type(tb))print(type(mc))<class 'tuple'><class 'tuple'><class 'keras.callbacks.ModelCheckpoint'>這就是說,我不明白如何解決它。EarlyStopping并TensorBoard返回元組,它們應該如何在 keras 回調列表中調用?
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

解包你的元組——在這種情況下,它很簡單:(object,)[0] == object——但一般來說,你可能有(object1, object2),等等,你可以通過callbacks=[*es, *tb, *mc].


解* 包迭代- 作為演示:


def print_unpacked(*positional_args):

    print(positional_args)

    print(*positional_args)

a = 1

b = ('dog',5)

print_unpacked(a,b)

# >> (1, ('dog',5))

# >> 1 ('dog',5)

print(a,b)

# >> 1 ('dog',5)

print(a,*b)

# >> 1 'dog' 5


查看完整回答
反對 回復 2022-06-02
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

您應該刪除上面發布的代碼中以下行末尾的逗號


es = EarlyStopping(monitor='val_loss', min_delta=0.01, verbose=1, patience=5),

tb = TensorBoard(log_dir=logdir, write_graph=True, write_images=True, histogram_freq=0),



查看完整回答
反對 回復 2022-06-02
  • 2 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號