Python Tensorflow和tensorboard:具有多个模型拟合运行的可视化图形

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

我已经开始使用tensorboard进行实验,我发现tensorboard中显示的和图形之间存在一些不一致之处

在不报告笔记本中导入的所有LIB的情况下,我有一个用于构建、编译和拟合简单模型的函数:

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