#如果存在函数复用的情况 比如add用了好几次 那么后面的operation名字是什么样子的呢
import tensorflow as tf
def calu(a,b):out = tf.add(a,b,name='add')return outa = 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到对应的输出