簡體   English   中英

如何在 Keras 的自定義批量訓練中獲得每個時期的損失?

[英]How to get the loss for each epoch in custom batch training in Keras?

我正在用 AI 進行一些試驗,我有一個 model,我想在其中分批訓練它,這些批次是先前選擇的並且具有不規則的形狀。

這是我所擁有的:

model = create_model(units_vector, (inp_shape,), lr)
for i in range(epochs):
    for batch in batches:
        model.fit(batch[0], batch[1], epochs=1, verbose=0)

function create_model定義了一個簡單的 model (僅密集層)並使用mseAdam編譯它。

batches是存儲輸入和輸出的元組列表(在 numpy 數組中)。

我想要一種在每個時代結束時打印 model 實驗的損失的方法。 或者通過某種方式來檢查 model 是否正在學習某些東西(不必在每批中打印一條消息,因為垃圾郵件太多)。

這是一種在每個時期結束時打印損失的簡單方法。 您可以通過model.history.history訪問損失。 也可以根據需要修改消息

epochs = 5
n_batches = 20
n_features = 10
batches = [[np.random.uniform(0,1, (1,n_features)), np.random.uniform(0,1, (1,1))] for _ in range(n_batches)]

inp = Input((n_features,))
x = Dense(32)(inp)
out = Dense(1)(x)
model = Model(inp, out)
model.compile('adam', 'mse')

for i in range(epochs):
    for batch in batches:
        model.fit(batch[0], batch[1], epochs=1, verbose=0)
    print(f"EPOCH {i}", model.history.history)

output 示例:

EPOCH 0 {'loss': [0.9013449549674988]}
EPOCH 1 {'loss': [0.7315107583999634]}
EPOCH 2 {'loss': [0.5937882661819458]}
EPOCH 3 {'loss': [0.5331881046295166]}
EPOCH 4 {'loss': [0.47262871265411377]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM