如何在不使用 Tensorboard 训练模型的情况下可视化图形?

Hye*_*oun 5 graph-visualization keras tensorflow tensorboard

我试图在没有训练的情况下在 Tensorboard 中可视化模型。

我检查了这个那个,但即使对于最简单的模型,这仍然不起作用。

import tensorflow as tf
import tensorflow.keras as keras
# Both tf.__version__ tensorboard.__version__ are 2.5.0

s_model = keras.models.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(32, activation='relu'),
    keras.layers.Dropout(0.2),
    keras.layers.Dense(10, activation='softmax')
])

logdir = '.../logs'
_callbacks = keras.callbacks.TensorBoard(log_dir=logdir)
_callbacks.set_model(s_model) # This is exactly suggested in the link
Run Code Online (Sandbox Code Playgroud)

当我执行上述操作时,我收到错误消息:

图形可视化失败。

错误:GraphDef 格式错误。有时,这可能是由于网络连接不良或难以协调多个 GraphDef 造成的;对于后一种情况,请参考 https://github.com/tensorflow/tensorboard/issues/1929

我不认为这是一个协调问题,因为它不是自定义函数,如果我编译模型,训练,那么我可以获得我想要的图形可视化。

s_model.compile(
    optimizer='adam',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy'])

(train_images, train_labels), _ = keras.datasets.fashion_mnist.load_data()
train_images = train_images / 255.0

logdir = '.../logs'
tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)

s_model.fit(
    train_images,
    train_labels, 
    batch_size=64,
    epochs=5, 
    callbacks=[tensorboard_callback])
Run Code Online (Sandbox Code Playgroud)

这给出了想要的图形可视化。但是有没有其他方法可以在无需训练的情况下在 Tensorboard 中获得图形可视化呢?

当然,我也知道解决方法,即训练tf.random.normal()一段时间,可以解决问题,但我正在寻找一种简洁的方法,例如_callbacks.set_model(s_model)......