Python Tensorboard在两个图形中显示验证数据和训练数据

Python Tensorboard在两个图形中显示验证数据和训练数据,python,tensorflow,tensorboard,Python,Tensorflow,Tensorboard,我试图用Tensorboard以图形的形式显示我的网络的准确性和损失,但训练和验证数据以单独的运行方式显示。我在Tensorflow和Tensorboard方面还相对缺乏经验,所以我希望您能了解原因 这是我的密码: import os import time import pickle import tensorflow as tf from tensorflow import keras from tensorflow.keras.callbacks import TensorBoard p

我试图用Tensorboard以图形的形式显示我的网络的准确性和损失,但训练和验证数据以单独的运行方式显示。我在Tensorflow和Tensorboard方面还相对缺乏经验,所以我希望您能了解原因

这是我的密码:

import os
import time
import pickle
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.callbacks import TensorBoard

print("Loading Data via Pickel")
X = pickle.load(open("X.pickle", "rb"))
y = pickle.load(open("y.pickle", "rb"))

print(len(X))
print(len(y))

startTime = time.time()
hidden_dense_layers = [0,1,2]
hidden_dense_layer_size = [64, 128, 256, 512, 1024]

for dense_layer_ammount in hidden_dense_layers:
    for dense_layer_size in hidden_dense_layer_size:
        NAME = "{}-hidden_layers-{}-layersize".format(dense_layer_ammount, dense_layer_size)
        print("----------", NAME, "----------")

        print("Building Model")
        # model = keras.Sequential([
        #     keras.layers.Flatten(input_shape=(200, 200)),
        #     keras.layers.Dense(500, activation="relu"),
        #     keras.layers.Dense(1, activation="sigmoid")
        # ])

        model = keras.Sequential()

        model.add(keras.layers.Flatten(input_shape=(75, 75)))

        for i in range(dense_layer_ammount):
            model.add(keras.layers.Dense(dense_layer_size, activation="relu"))

        model.add(keras.layers.Dense(1, activation="sigmoid"))

        model.compile(loss='binary_crossentropy',
                      optimizer='adam',
                      metrics=['accuracy'])

        print("Creating Callbacks")

        print("Creating Checkpoint Callback")
        checkpoint_path = "training_2/cp-{epoch:04d}.ckpt"
        checkpoint_dir = os.path.dirname(checkpoint_path)

        # Create a callback that saves the model's weights
        checkpoint_callback = tf.keras.callbacks.ModelCheckpoint(
            filepath=checkpoint_path,
            save_weights_only=True,
            verbose=1
        )

        print("Creating Tensorboard Callback")
        tensorboard_callback = TensorBoard(log_dir="logs/{}".format(NAME))

        print("Training Model")
        model.fit(
            X,
            y,
            # batch_size=32,
            epochs=10,
            callbacks=[
                # checkpoint_callback,
                tensorboard_callback
            ],
            validation_split=0.3
        )
下面是如何为我显示跑步记录

下面是如何向我显示图形的


两个图形都有两条曲线是完全正常的。每条曲线对应于训练数据或验证数据(图上分别为橙色和蓝色)。对于每个时代,您都会得到一个两步过程:

  • 首先,使用梯度下降(即训练步骤)进行实际的模型参数调整。蓝色曲线表示您学到了一些东西(例如:对于给定的任务,模型是否足够复杂?)
  • 其次,您需要确保经过训练的模型在未用于调整参数的数据上表现良好,这是验证步骤。红色曲线将告诉您离过度拟合的情况有多近(这意味着您在调整部分获得了良好的性能,但在输入“新数据”时,模型非常糟糕)

感谢您的回复,但我知道这两个图表的意思,我只看过Tensorflow/Board 1.x版的教程,其中验证和培训数据列在单独的图表中(分别有vall_acc、vall_loss、train_acc和train_loss的图表),我想知道这在2.x版中是否起作用以及如何起作用,因为我觉得它更容易阅读。对不起,我没有正确地表达自己。