对于operation操作的理解

本文探讨了在TensorFlow中如何处理函数复用情况下的操作命名,通过实例展示了当同一函数多次调用时,操作名如何自动更改为add_1、add_2等。同时,介绍了如何获取和打印特定操作的输出,为构建复杂神经网络提供了实用的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#如果存在函数复用的情况 比如add用了好几次 那么后面的operation名字是什么样子的呢
import tensorflow as tf
def calu(a,b):
    out = tf.add(a,b,name='add')
    return out
   
a = tf.get_variable('w1',[1],tf.float32,tf.ones_initializer())
b = tf.get_variable('w2',[1],tf.float32,tf.ones_initializer())
#c = tf.add(a,b,name='add')
m1 = calu(a,b)
m2 = calu(m1,b)
m3 = tf.add(m2,b,name='hhh')

g = tf.get_default_graph()
m = g.get_operation_by_name('add_1').outputs[0]
n = g.get_tensor_by_name('add:0')
t = g.get_tensor_by_name('w1:0')
op = g.get_operations()
print(op)
print(a)
print(t)
print(m)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    #print(sess.run(c))
    print(sess.run(m))
    print(sess.run(n))
    print(sess.run(t))

#结果如下:
[<tf.Operation 'w1/Initializer/ones' type=Const>, <tf.Operation 'w1' type=VariableV2>, <tf.Operation 'w1/Assign' type=Assign>, <tf.Operation 'w1/read' type=Identity>, <tf.Operation 'w2/Initializer/ones' type=Const>, <tf.Operation '
w2' type=VariableV2>, <tf.Operation 'w2/Assign' type=Assign>, <tf.Operation 'w2/read' type=Identity>, <tf.Operation 'add' type=Add>, <tf.Operation 'add_1' type=Add>, <tf.Operation 'hhh' type=Add>]
#就是说明第一个叫add 第二个叫add_1以此类推即可 
#通过这种方式 对于复用某些函数的神经网络 我们也可以print到对应的输出

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值