Вкладка графика, показывающая прошлые модели - PullRequest
0 голосов
/ 18 июня 2020

После запуска нескольких моделей подряд и когда я проверяю на панели инструментов, я вижу предыдущие модели, обученные на вкладке «График».

Я сохраняю в разных папках каждой модели.

Вот мой код (tensorflow2 в среде conda 3.7):

import tensorflow as tf

def create_model(num_model):
    '''
    Choose between two neural networks models
    :param num_model: Model number : 1 for model one and anything else for the second model
    :return: model architecture
    '''
    model = None
    if num_model == 1:
        model = tf.keras.models.Sequential([
            tf.keras.layers.Flatten(input_shape=(28, 28)),
            tf.keras.layers.Dense(128, activation='relu'),
            tf.keras.layers.Dropout(0.2),
            tf.keras.layers.Dense(10, activation='softmax')
        ])
    else:
        model = tf.keras.models.Sequential([
            tf.keras.layers.Flatten(input_shape=(28, 28)),
            tf.keras.layers.Dense(256, activation='relu'),
            tf.keras.layers.Dropout(0.5),
            tf.keras.layers.Dense(10, activation='softmax')
        ])
    return model

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

"""
Create and train the first model
"""
model1 = create_model(1)
model1.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy'])
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir="mnist\\first")
model1.fit(x_train, y_train, epochs=5, callbacks=[tensorboard_callback])
model1.evaluate(x_test, y_test, verbose=2)

"""
Create and train the second model
"""
model2 = create_model(2)
tensorboard_callback2 = tf.keras.callbacks.TensorBoard(log_dir="mnist\\second")
model2.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy'])
model2.fit(x_train, y_train, epochs=5, callbacks=[tensorboard_callback2])
model2.evaluate(x_test, y_test, verbose=2)

После обучения на терминале:

tensorboard --logdir mnist/first

Вкладка графика первой модели Нет проблем , на вкладке "График" я вижу правильную модель.


Но когда я проверяю вторую модель:

tensorboard --logdir mnist/second

Вкладка графика второй модели, которая включает первая Теперь в графической модели я вижу обе модели.

Как иметь только вторую модель в тензорном графике для второй модели?

1 Ответ

0 голосов
/ 22 июня 2020

Думаю, тензорборд показывает график по умолчанию для keras, который содержит все рабочие узлы, созданные в программе. Чтобы иметь только второй график на второй тензорной доске, попробуйте сбросить сеанс / график keras по умолчанию с помощью - tf.keras.backend.clear_session().

Если это не дает желаемого эффекта, попробуйте - tf.compat.v1.reset_default_graph().

Возможно, вам придется позвонить по номеру mnist.load_data() второй раз.

...