gpt4 book ai didi

tensorflow - keras 的 model.fit 中没有 tf.Print 的结果

转载 作者:行者123 更新时间:2023-12-04 02:22:57 26 4
gpt4 key购买 nike

我写了那个损失(用于测试 keras 中的自定义损失):

def loss(y_true, y_pred):
loss = -tf.reduce_sum(y_true * tf.log(y_pred))
loss = tf.Print(loss, [loss], 'loss = ')
return loss

然后:

model.compile(loss=loss, 
optimizer=keras.optimizers.Adadelta(),
metrics=['accuracy'])
model.fit(x_train, y_train)

并且没有 tf.Print 结果:

Epoch 1/12 
60000/60000 [==============================] - 12s 198us/step - loss: 25.3197 - acc: 0.9384 - val_loss: 5.6927 - val_acc: 0.9857
Epoch 2/12
60000/60000 [==============================] - 11s 187us/step - loss: 8.7803 - acc: 0.9798 - val_loss: 4.6938 - val_acc: 0.9888

为什么?

最佳答案

我想您是在 Jupyter Notebook 中运行它。 tf.Print()打印到 调用 Jupyter Notebook 的终端。看看那里,看看是否有输出。

请参阅 tf.Print() 处的蓝色注释手册页。

来自下面 Evgeniya 的评论:您可以编写自己的 tf.Print() 版本打印你想要的数据(代码 Vihari Piratla ):

"""
The default tf.Print op goes to STDERR
Use the function below to direct the output to stdout instead
Usage:
> x=tf.ones([1, 2])
> y=tf.zeros([1, 3])
> p = x*x
> p = tf_print(p, [x, y], "hello")
> p.eval()
hello [[ 0. 0.]]
hello [[ 1. 1.]]
"""
def tf_print(op, tensors, message=None):
def print_message(x):
sys.stdout.write(message + " %s\n" % x)
return x

prints = [tf.py_func(print_message, [tensor], tensor.dtype) for tensor in tensors]
with tf.control_dependencies(prints):
op = tf.identity(op)
return op

关于tensorflow - keras 的 model.fit 中没有 tf.Print 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com