Python Tensorflow和tensorboard:具有多个模型拟合运行的可视化图形
我已经开始使用tensorboard进行实验,我发现tensorboard中显示的和图形之间存在一些不一致之处 在不报告笔记本中导入的所有LIB的情况下,我有一个用于构建、编译和拟合简单模型的函数:Python Tensorflow和tensorboard:具有多个模型拟合运行的可视化图形,python,keras,graph,tensorflow2.0,tensorboard,Python,Keras,Graph,Tensorflow2.0,Tensorboard,我已经开始使用tensorboard进行实验,我发现tensorboard中显示的和图形之间存在一些不一致之处 在不报告笔记本中导入的所有LIB的情况下,我有一个用于构建、编译和拟合简单模型的函数: def train_and_fit(): logdir = "training_logs/scalars/" + datetime.now().strftime("%Y%m%d-%H%M%S") tensorboard_callback = Tens
def train_and_fit():
logdir = "training_logs/scalars/" + datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = TensorBoard(log_dir=logdir)
print(f"Model run logs stored at: {logdir}")
mdl = tf.keras.Sequential([
embedding_layer,
GlobalAveragePooling1D(),
Dropout(0.2),
Dense(3, activation="softmax")]
)
mdl.compile(
optimizer="adam",
loss="categorical_crossentropy",
metrics=["accuracy"],
)
mdl.fit(
train_ds,
validation_data=val_ds,
epochs=5,
callbacks=[tensorboard_callback],
)
我可以多次调用此函数,并获得一个不同的日志目录(每次),该目录以一种整洁的方式组织我的跑步(这使得在Tensorboard的Scalars视图中更容易可视化):
这适合模型并打印已编译模型本身的摘要:
Model: "sequential_6"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
embedding (Embedding) (None, None, 100) 1195200
_________________________________________________________________
global_average_pooling1d_6 ( (None, 100) 0
_________________________________________________________________
dense_6 (Dense) (None, 3) 303
=================================================================
Total params: 1,195,503
Trainable params: 303
Non-trainable params: 1,195,200
第一次我调用train_and_fit()
函数时,我在张力板中绘制了一个图形,如下所示:
这对我来说很有意义,因为它符合我的mdl.summary()
第二次我调用train_and_fit()
函数,在张力板中显示一个图形,如下所示:
这对我来说毫无意义,因为它不是我笔记本中显示的内容
因此,tensorboard在多次运行train\u和_fit()
时覆盖了多个图形。如果我在两者之间调用tf.keras.backend.clear_session()
,tensorboard中的这种重叠不会发生,我想我理解为什么
这里我主要关心的是:如何确保我训练的模型与mdl.summary()
输出相对应,而不是与tensorboard中显示的图形相对应
我可能用错了tensorboard,但感觉tensorboard如何从不同的运行中创建图形,这方面可以做一些改进
Model: "sequential_6"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
embedding (Embedding) (None, None, 100) 1195200
_________________________________________________________________
global_average_pooling1d_6 ( (None, 100) 0
_________________________________________________________________
dense_6 (Dense) (None, 3) 303
=================================================================
Total params: 1,195,503
Trainable params: 303
Non-trainable params: 1,195,200