Я создал свой собственный l oop, как показано в руководстве по миграции TF 2 здесь .
В настоящее время я могу видеть график только для раздела --- VISIBLE ---
кода ниже , Как сделать мою модель (определенную в разделе ---NOT VISIBLE---
) видимой на тензорной доске?
Если бы я не использовал пользовательское обучение l oop, я мог бы пойти с документированным model.fit approach
:
model.fit(..., callbacks=[keras.callbacks.TensorBoard(log_dir=logdir)])
В TF 1 этот подход был довольно простым:
tf.compat.v1.summary.FileWriter(LOGDIR, sess.graph)
В руководстве по миграции Tensorboard четко говорится ( здесь ) что:
Нет прямой записи tf.compat.v1.Graph - вместо этого используйте функции @ tf.function и trace
configure_default_gpus()
tf.summary.trace_on(graph=True)
K = tf.keras
dataset = sanity_dataset(BATCH_SIZE)
#-------------------------- NOT VISIBLE -----------------------------------------
model = K.models.Sequential([
K.layers.Flatten(input_shape=(IMG_WIDTH, IMG_HEIGHT, IMG_CHANNELS)),
K.layers.Dense(10, activation=K.layers.LeakyReLU()),
K.layers.Dense(IMG_WIDTH * IMG_HEIGHT * IMG_CHANNELS, activation=K.layers.LeakyReLU()),
K.layers.Reshape((IMG_WIDTH, IMG_HEIGHT, IMG_CHANNELS)),
])
#--------------------------------------------------------------------------------
optimizer = tf.keras.optimizers.Adam()
loss_fn = K.losses.Huber()
@tf.function
def train_step(inputs, targets):
with tf.GradientTape() as tape:
predictions = model(inputs, training=True)
#-------------------------- VISIBLE ---------------------------------------------
pred_loss = loss_fn(targets, predictions)
gradients = tape.gradient(pred_loss, model.trainable_variables)
optimizer.apply_gradients(zip(gradients, model.trainable_variables))
#--------------------------------------------------------------------------------
return pred_loss, predictions
with tf.summary.create_file_writer(LOG_DIR).as_default() as writer:
for epoch in range(5):
for step, (input_batch, target_batch) in enumerate(dataset):
total_loss, predictions = train_step(input_batch, target_batch)
if step == 0:
tf.summary.trace_export(name="all", step=step, profiler_outdir=LOG_DIR)
tf.summary.scalar('loss', total_loss, step=step)
writer.flush()
writer.close()
Существует аналог оставшийся без ответа вопрос , где ОП не смог увидеть ни одного графика.