张量流:未显示张量



我有一个关于未显示张量的问题。我按如下方式编码,我希望有张量的名称为"ttt"、"l1a"或"l1_maxpool",但在通过函数查看时tf.all_variables没有。但是通过切换位置上的断点来查看,它们存在。

是否有原因不显示它们或我应该修改代码的其他原因?提前谢谢。

import tensorflow as tf
def init_weights(shape, name):
    return tf.Variable(tf.random_normal(shape, stddev=0.01), name=name)
X = tf.placeholder("float", [None, 28, 28, 1])
Y = tf.placeholder("float", [None, 10])
w = init_weights([3, 3, 1, 32], 'w')
w2 = init_weights([3, 3, 32, 64], 'w2')
w3 = init_weights([3, 3, 64, 128], 'w3')
w4 = init_weights([128 * 4 * 4, 625], 'w4')
w_o = init_weights([625, 10], 'w_o')
ttt = tf.nn.conv2d(X, w, strides=[1, 1, 1, 1], padding='SAME', name='ttt')
l1a = tf.nn.relu(ttt, name='l1a')
l1 = tf.nn.max_pool(l1a, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME', name='l1_maxpool')
with tf.Session() as sess:
    tf.initialize_all_variables().run()
    z_ttt = tf.get_default_graph().get_tensor_by_name(ttt.name)
    z_l1 = tf.get_default_graph().get_tensor_by_name(l1.name)    
    tensors = tf.all_variables()
    for k in range(len(tensors)):
        print tensors[k].name
    kk = 0;
变量

和操作之间是有区别的。卷积、relu 和 max_pool 是您对变量执行的操作。如果您可视化图形(https://www.tensorflow.org/how_tos/graph_viz/(,您可以看到您添加的操作确实在那里!

希望这有帮助!

最新更新