我试图在没有训练的情况下在 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, …Run Code Online (Sandbox Code Playgroud) 我的 python 版本 3.6.5
tensorflow 版本 2.3.0
简单的自定义模型
import tensorflow as tf
import tensorflow.keras as keras
class x(keras.layers.Layer):
def build(self, input_shape):
self.add_weight()
q = keras.layers.Input(1)
o = x()(q)
model = keras.models.Model(q, o)
model.save("temp_model")
Run Code Online (Sandbox Code Playgroud)
它失败了 AttributeError: 'NoneType' object has no attribute 'replace'
怎么了?
欲知详情,
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-160-d7ce2ee17e65> in <module>
6 o = x()(q)
7 qwer = keras.models.Model(q, o)
----> 8 qwer.save("qwer")
~\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\keras\engine\training.py in save(self, filepath, overwrite, include_optimizer, save_format, signatures, options)
1977 """
1978 save.save_model(self, filepath, overwrite, …Run Code Online (Sandbox Code Playgroud)