Трансферное обучение: в результате обучения по моей предварительно обученной модели получается модель большого размера - PullRequest
0 голосов
/ 08 февраля 2019

Допустим, у меня есть двухслойная сверточная модель, такая как

Input -> conv -> conv -> flatten -> softmax 10 classes (cross entropy cost function)

Я сохранил эту модель, используя

saver = tf.train.Saver(tf.global_variables()) 
....
# run session
saver.save(sess, checkpoint_path, global_step=training_step)

После сохранения размер файла данных модели составляет около 13 МБ.,

Далее я хочу использовать эту модель для выполнения трансферного обучения.Я удалил последний слой softmax (10 единиц) в предыдущей модели и добавил новый конв и новый слой softmax (6 единиц) в новой архитектуре модели.

sess = tf.InteractiveSession()

# load model trained in previous step
saver = tf.train.import_meta_graph(meta_file)
saver.restore(sess,tf.train.latest_checkpoint(model_dir))

graph = tf.get_default_graph()
output_after_conv = graph.get_tensor_by_name("flatten:0")
# freezed
flatten = tf.stop_gradient(output_after_conv )

saver = tf.train.Saver(tf.global_variables())

input = graph.get_tensor_by_name("input:0")

# constructed input to be feeded
# added a conv layer to the graph
# added softmax layer to the graph
# defined cost function
# defined optimizer

# ran the session then saved the model
saver.save(sess, checkpoint_path, global_step=training_step)  

На этот раз модель-данные-размер файла вырос до 300 МБ.Интересно, что вызвало рост этой модели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...