Python 3.x Tensorflow时代如何获取信息
因此,如果我通过python UI运行tensorflow 2.0代码,我可以看到各个时代打印到命令行。如何“获取或访问”该信息(最好是在其运行时),以便将字符串放入文本字段中 我知道这是什么使输出Python 3.x Tensorflow时代如何获取信息,python-3.x,string,tensorflow,command-line,Python 3.x,String,Tensorflow,Command Line,因此,如果我通过python UI运行tensorflow 2.0代码,我可以看到各个时代打印到命令行。如何“获取或访问”该信息(最好是在其运行时),以便将字符串放入文本字段中 我知道这是什么使输出 model.fit(......) 我正在为我的GUI使用pyqt5,希望将文本字段的文本设置为model.fit显示的内容(最好在运行时),这样命令行的输出和我的文本字段是相同的。要访问每个历元的损失,可以使用history=model.fit(…)而不是model.fit(…)。这会将每个历元
model.fit(......)
我正在为我的GUI使用pyqt5,希望将文本字段的文本设置为model.fit显示的内容(最好在运行时),这样命令行的输出和我的文本字段是相同的。要访问每个历元的损失,可以使用
history=model.fit(…)
而不是model.fit(…)
。这会将每个历元的损失信息保存到keras.callbacks.callbacks.History
对象中,在该对象中可以检索和打印损失。您可以通过修改keras.callbacks.callbacks
,进一步向历史记录中添加更多信息,以下是一些文档供参考:
以下是您可以在每个历元打印损失的方法:
history = model.fit(...)
loss_history = history.history["loss"] #type is list
for i in range(len(loss_history)):
print("Epoch %i :"%i, loss_history[i])
主要的想法是在训练期间获得损失,而不仅仅是在训练结束时。如果你训练200个赛程,每个赛程5小时,会怎么样?如果程序员只想在培训结束时检查,而不是在培训期间的每个历元结束时检查,则上述答案是合适的 以下几行将解决此问题:
class LossHistoryCallback(tf.keras.callbacks.Callback):
def on_epoch_end(self, batch, logs=None):
#logs['loss'] or logs['val_loss'] (the latter available only if you use validation data when model.fit()
# Use logs['loss'] or logs['val_loss'] for pyqt5 purposes
print('Loss is: logs['loss'], validation loss is: logs['val_loss']')
model.fit(x_train, y_train,
batch_size=64,
epochs=10,
steps_per_epoch=5,
verbose=1,
callbacks=[LossHistoryCallback()])
通过这种方式,您可以在每个历元结束时获得损失和验证损失的输出,而不仅仅是在培训结束时,因为您希望跟踪每个历元的培训进度,而不是只在培训结束时看到结果