Python Tensorboard在两个图形中显示验证数据和训练数据
我试图用Tensorboard以图形的形式显示我的网络的准确性和损失,但训练和验证数据以单独的运行方式显示。我在Tensorflow和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
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
)
下面是如何为我显示跑步记录
下面是如何向我显示图形的
两个图形都有两条曲线是完全正常的。每条曲线对应于训练数据或验证数据(图上分别为橙色和蓝色)。对于每个时代,您都会得到一个两步过程:
- 首先,使用梯度下降(即训练步骤)进行实际的模型参数调整。蓝色曲线表示您学到了一些东西(例如:对于给定的任务,模型是否足够复杂?)
- 其次,您需要确保经过训练的模型在未用于调整参数的数据上表现良好,这是验证步骤。红色曲线将告诉您离过度拟合的情况有多近(这意味着您在调整部分获得了良好的性能,但在输入“新数据”时,模型非常糟糕)