Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Tensorflow时代如何获取信息_Python 3.x_String_Tensorflow_Command Line - Fatal编程技术网

Python 3.x Tensorflow时代如何获取信息

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(…)。这会将每个历元

因此,如果我通过python UI运行tensorflow 2.0代码,我可以看到各个时代打印到命令行。如何“获取或访问”该信息(最好是在其运行时),以便将字符串放入文本字段中

我知道这是什么使输出

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()])
通过这种方式,您可以在每个历元结束时获得损失和验证损失的输出,而不仅仅是在培训结束时,因为您希望跟踪每个历元的培训进度,而不是只在培训结束时看到结果