import tensorflow as tf
a = tf.get_variable('w1',[3,3],tf.float32,tf.ones_initializer())
b = tf.get_variable('w2',[3,3],tf.float32,tf.ones_initializer())
bb=a+b
c = tf.layers.dense(bb,5, activation=None,name='add') #获取网络层的输出只更改最后一维
g = tf.get_default_graph()
t = g.get_tensor_by_name('w1:0')
n = g.get_tensor_by_name('add:0') #获取网络层的输入
n1 = g.get_tensor_by_name('add/kernel:0') #获取网络层的权重
print(a)
print(t)
print(c)
print(n)
print(n1)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(a))
print(sess.run(t))
print(sess.run(c)) #输出FC结果
print(sess.run(n)) #打印add的输入
print(sess.run(n1)) #打印add的权重
print(n1.eval()) #tf.Tensor.eval() 功能:当默认的会话被指定之后可以通过其计算一个张量的取值。
print(sess.run(tf.matmul(n,n1))) # =c
##对应输出:
Tensor("w1:0", shape=(3, 3), dtype=float32_ref)
Tensor("add_1/BiasAdd:0", shape=(3, 5), dtype=float32)
Tensor("add:0", shape=(3, 3), dtype=float32)
Tensor("add/kernel:0", shape=(3, 5), dtype=float32_ref)
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[[-1.3647698 -2.8054194 -1.7050204 3.338818 2.5336776]
[-1.3647698 -2.8054194 -1.7050204 3.338818 2.5336776]
[-1.3647698 -2.8054194 -1.7050204 3.338818 2.5336776]]
[[2. 2. 2.]
[2. 2. 2.]
[2. 2. 2.]]
[[-0.65962625 -0.769727 0.24005729 0.7080906 0.10090774]
[ 0.29028767 -0.5869036 -0.6289141 0.6177673 0.43807036]
[-0.31304634 -0.04607916 -0.4636534 0.3435511 0.72786075]]
[[-0.65962625 -0.769727 0.24005729 0.7080906 0.10090774]
[ 0.29028767 -0.5869036 -0.6289141 0.6177673 0.43807036]
[-0.31304634 -0.04607916 -0.4636534 0.3435511 0.72786075]]
[[-1.3647698 -2.8054194 -1.7050204 3.338818 2.5336776]
[-1.3647698 -2.8054194 -1.7050204 3.338818 2.5336776]
[-1.3647698 -2.8054194 -1.7050204 3.338818 2.5336776]]