tensorflow用定义的一个模型加载不同的训练模型

模型的加载:
  1. 利用tf.train.import_meta_graph来恢复模型
saver = tf.train.import_meta_graph('**.meta')
saver.restore(sess, tf.train.latest_checkpoint('./'))

note:

  • inport_meta_graph附加上了.meta文件之前定义的network到当前的graph里,会为你创建graph/network,但是我们还是需要在当前的graph里加载之前训练好的paramters的值
  1. 利用tf.saver来恢复模型
saver = tf.train.Saver()
saver.restore(sess, tf.train.get_checkpoint_state(path.model_checkpoint_path)
加载模型并增加更多的layers
import tensorflow as tf
sess=tf.Session()    

#First let's load meta graph and restore weights
saver = tf.train.import_meta_graph('my_test_model-1000.meta')
saver.restore(sess,tf.train.latest_checkpoint('./'))

# Now, let's access and create placeholders variables and
# create feed-dict to feed new data
graph = tf.get_default_graph()
w1 = graph.get_tensor_by_name("w1:0")
w2 = graph.get_tensor_by_name("w2:0")
feed_dict ={w1:13.0,w2:17.0}

#Now, access the op that you want to run. 
op_to_restore = graph.get_tensor_by_name("op_to_restore:0")

#Add more to the current graph
add_on_op = tf.multiply(op_to_restore,2)

print sess.run(add_on_op,feed_dict)
#This will print 120.
如何加载模型并改变原始模型的损失函数?
加载多个模型

问题:主要存在的问题就是“默认图”,会发生变量冲突的操作,导致无法工作。因为我们将所有变量都加载到当前会话采用的默认图中。
解决方案:可采用tf.Session(graph=MyGraph)来指定采用不同的已经创建好的图。加载多个模型时,将他们加载在不同的图,然后在不同的会话中使用他们。

Reference
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值