变量的trick

首先是tf.get_variabletf.Variable:

    tf.get_variable通常和variable_scope一起使用管理变量命名空间,且通过reuse实现变量的复用,通过该方法获得变量必须指明变量名,否则报错。且name_scope对该方法无效,比如:

    

with name_scope('haha'):
    a = tf.get_variable(name='a',shape=(2))
sess.run(a.name)

"a:0"

    tf.Variable通常和name_scope 一起使用,name_scope会对tf.Variable起作用,且该方法获得变量时不用对变量命名,且命名重复时,会自动对其处理(variable_name:0,variable_name_1:0)


还有对加载模型(预训练模型),对参数的复用:


    保存,加载模型可以看这儿:tensorflow保存加载模型

    这儿主要是有个graph.get_tensor_by_name方法,这个方法通过变量名获取变量,那为什么可以通过op_name获得变量呢,发现这儿有答案:点击打开链接

    原来每个op的输出依次为op_name:0,op_name:1......所以通过graph.get_tensor_by_name(op_name:0)可以拿到op的第一个输出,而通过graph.get_operation_by_name()是拿不到输出的,因为op只是一个操作,是个“壳”,但是也可以通过graph.get_operation_by_name().outputs[0]拿到第一个输出。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值