转移学习:从我的预训练模型中进行训练会生成大尺寸的模型

时间:2019-02-08 09:30:27

标签: tensorflow machine-learning transfer-learning

假设我有两层卷积模型

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 MB。

接下来,我想使用此模型执行转移学习。我删除了先前模型中的最后一个softmax层(10个单元),并在新模型体系结构中添加了一个新的conv和新的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 MB。我想知道是什么导致了模型尺寸的增长?

0 个答案:

没有答案