簡體   English   中英

如何在TensorFlow 2.0中控制詳細程度

[英]How to control verbosity in TensorFlow 2.0

在TensorFlow 1.x中,我可以自由選擇在培訓期間以及何時打印准確性/損失得分的方式。 例如,如果我想每隔100個時間打印一次訓練損失,則可以在tf.Session()編寫:

if epoch % 100 == 0:
    print(str(epoch) + '. Training Loss: ' + str(loss))

TF 2.0(alpha)發行之后,Keras API似乎不得不堅持其標准輸出。 有沒有辦法恢復這種靈活性?

如果您不使用.fit Model方法( .fit.train_on_batch ,...),而是使用急切的執行編寫自己的訓練循環(並將其包裝在tf.function以將其轉換為圖形表示形式),可以像您在1.x中一樣控制詳細程度

training_epochs = 10
step = 0
for epoch in range(training_epochs)
    print("starting ",epoch)
    for features, labels in dataset:
        with tf.GradientTape() as tape:
            loss = compute_loss(model(features),labels)
        gradients = tape.gradients(loss, model.trainable_variables)
        optimizer.apply_gradients(zip(gradients, model.trainable_variables))
        step += 1
        if step % 10 == 0:
            # measure other metrics if needed
            print("loss: ", loss)
    print("Epoch ", epoch, " finished.")

暫無
暫無

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

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