理解张量板图像

Posted

技术标签:

【中文标题】理解张量板图像【英文标题】:Understanding tensorboard images 【发布时间】:2018-10-02 00:04:16 【问题描述】:

我想用keras+tensorboard。我的架构如下所示:

tbCallBack = TensorBoard(log_dir='./logs', histogram_freq=2, batch_size=32, write_graph=True, write_grads=True, write_images=True)

K.clear_session()
sess = tf.Session()
K.set_session(sess)

input_img = Input(shape=(augmented_train_data[0].shape[0], augmented_train_data[0].shape[1], 3))

x = Conv2D(8, (1, 1), padding='same', activation='relu', name="1x1_1")(input_img)
x = Conv2D(16, (3, 3), padding='same', activation='relu', name="3x3_1")(x)
x = Conv2D(32, (3, 3), padding='same', activation='relu', name="3x3_2")(x)
x = Conv2D(1, (1, 1), padding='same', activation='relu', name="1x1_2")(x)
x = Flatten()(x)
x = Dense(16, activation='relu')(x)


output = Dense(2)(x)

model = Model(inputs=input_img, outputs=output)
model.compile(optimizer='adam', loss='mean_squared_error')

#tbCallBack.set_model(model)
print(model.summary())

history = model.fit(augmented_train_data, augmented_train_label, validation_data=[augmented_validation_data, augmented_validation_label] ,epochs=20, batch_size=32, callbacks=[tbCallBack])

查看张量板图像选项卡时,它看起来像这样 不过,我不能完全解释这一点,我认为这个选项卡将显示我的卷积的权重在各个时期是如何发展的。那么,如何解释这些图像。还是我在设置张量板时做错了?

【问题讨论】:

你知道发生了什么吗?我之前也在这里问过这个问题,但也没有人回答。 很遗憾没有 如果还有log目录,可以上传到Aughie Boards吗?如果我可以通过交互式仪表板检查图像会更容易回答 不幸的是我没有它们了 【参考方案1】:

看起来这正是你得到的。图像的灰度显示权重。顶部的滑块可用于在 epoch 中来回移动,从而查看训练进度。

【讨论】:

但是为什么只有三个偏差(我原以为是八个,每个卷积一个),为什么偏差的场要大得多? 每个频道一个 但是对于每个内核3个偏差不应该还有8乘以3吗? Conv 2D 每个通道应该有一个。在 Keras 源代码中的 Conv2D 定义中,他们为每个通道定义了一个偏差 Conv2D source。因此,您看到的 3 个元素可能是其中一个过滤器的偏差。如果您愿意分享您的 TB logdir,我可以进一步查看,现在我所说的一切都只是基于通过查看静态屏幕截图得出的结论。此外,这不仅仅是 Tensorboard 如何翻译数据的问题,也是 Keras 如何编写图像的问题。这是特定于版本的。因此,您应该包含您正在使用的 Keras 和 TB 版本,以用于重现性和源代码参考。

以上是关于理解张量板图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Keras 中使用张量板显示输入张量

如何向 tensorboardX 添加图片标题?

在张量板中对数缩放 Y 轴

为啥我在张量板上只看到大约一百个边界框?

理解张量板:为啥要向优化器发送 12 个张量?

Tensorboard 上的“图像”选项卡显示啥?