Допустим, у меня есть двухслойная сверточная модель, такая как
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 МБ.Интересно, что вызвало рост этой модели?