在TensorFlow模型中的隐藏层之间打印值

时间:2019-04-12 07:59:46

标签: python tensorflow deep-learning

我已经在Python中建立了一个tensorflow模型来进行图像识别,但是我想更好地了解我的模型是如何工作的。我想在模型的每一层之间打印值。

我正在使用TensorFlow 1.13.1和Python 3.6.8。

# model with 2 hidden layers
print("Creating model and adding layers...")
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(256, activation='relu'))
model.add(tf.keras.layers.Dense(128, activation='relu')) # would like to know values before this layer
model.add(tf.keras.layers.Dense(2, activation='softmax'))

预先感谢

2 个答案:

答案 0 :(得分:0)

最好的方法(即使不是很轻巧)是使用Tensorboard,它是专门为此目的而设计的。 您应该创建图像摘要并输入所需的张量(获取所需张量的一种方法可能是:tensor = model.layers[1].output,如here所述)。

使用张量板,您可以在训练过程中直接显示模型的权重,激活量和任何度量。有关实现的详细信息,请参阅上面链接中的教程。

答案 1 :(得分:0)

如果只需要在终端中快速验证某个数字,则可以在热切模式下使用tf.print,该模式只打印张量的值。

如果您在会话中显式运行图形,请使用tf.Print。它在图形中创建一个标识节点,当计算通过该节点时,它将打印您提供的值。