为什么 Flatten 层在 tensorboard 中有两个输入
Why Flatten layer has two input in tensorboard
这是一个重现问题的简单示例:
model = keras.models.Sequential()
model.add(keras.layers.Flatten(input_shape=[784,]))
model.add(keras.layers.Dense(300, activation="relu"))
model.add(keras.layers.Dense(10, activation="softmax"))
import numpy as np
X_train = np.random.normal(size=(100, 784))
y_train = np.random.randint(low=0, high=10, size=(100,))
X_valid = np.random.normal(size=(50, 784))
y_valid = np.random.randint(low=0, high=10, size=(50,))
model.compile(optimizer=tf.keras.optimizers.Adam(),
loss='sparse_categorical_crossentropy',)
tensorboard_cb = tf.keras.callbacks.TensorBoard(
log_dir='logs', histogram_freq=0, write_graph=True, write_images=False,
update_freq='epoch', profile_batch=0, embeddings_freq=0,
embeddings_metadata=None)
history = model.fit(X_train, y_train, epochs=20, validation_data=(X_valid, y_valid), callbacks=tensorboard_cb)
这是张量板上的结果:
我重新运行 你的代码,发现模型图表上只有 1 个输入。也没有 dense_2
层。也许您将 logs 目录用于不止 1 个模型,所以这让 Tensorboard 感到困惑?
尝试重新运行模型,从干净的日志目录开始(更改名称或删除 运行 之前的旧目录)。
这是一个重现问题的简单示例:
model = keras.models.Sequential()
model.add(keras.layers.Flatten(input_shape=[784,]))
model.add(keras.layers.Dense(300, activation="relu"))
model.add(keras.layers.Dense(10, activation="softmax"))
import numpy as np
X_train = np.random.normal(size=(100, 784))
y_train = np.random.randint(low=0, high=10, size=(100,))
X_valid = np.random.normal(size=(50, 784))
y_valid = np.random.randint(low=0, high=10, size=(50,))
model.compile(optimizer=tf.keras.optimizers.Adam(),
loss='sparse_categorical_crossentropy',)
tensorboard_cb = tf.keras.callbacks.TensorBoard(
log_dir='logs', histogram_freq=0, write_graph=True, write_images=False,
update_freq='epoch', profile_batch=0, embeddings_freq=0,
embeddings_metadata=None)
history = model.fit(X_train, y_train, epochs=20, validation_data=(X_valid, y_valid), callbacks=tensorboard_cb)
这是张量板上的结果:
我重新运行 你的代码,发现模型图表上只有 1 个输入。也没有 dense_2
层。也许您将 logs 目录用于不止 1 个模型,所以这让 Tensorboard 感到困惑?
尝试重新运行模型,从干净的日志目录开始(更改名称或删除 运行 之前的旧目录)。