【问题标题】:Tensorflow: What is the output node name in Cifar-10 model?Tensorflow:Cifar-10 模型中的输出节点名称是什么?
【发布时间】:2017-05-11 03:36:13
【问题描述】:

我正在尝试了解 Tensorflow,并且看到了官方示例之一,即 Cifar-10 模型。

cifar10.py的inference()中,可以看到以下几行:

with tf.variable_scope('softmax_linear') as scope:
    weights = _variable_with_weight_decay('weights', [192, NUM_CLASSES],
                                      stddev=1/192.0, wd=0.0)
    biases = _variable_on_cpu('biases', [NUM_CLASSES],
                          tf.constant_initializer(0.0))
    softmax_linear = tf.add(tf.matmul(local4, weights), biases, name=scope.name)
    _activation_summary(softmax_linear)

scope.name 应该是 softmax_linear,并且应该是节点的名称。我用以下几行保存了图形原型(它与教程不同):

with tf.Graph().as_default():
    global_step = tf.Variable(0, trainable=False)

    # Get images and labels
    images, labels = cifar10.distorted_inputs()


    # Build a Graph that computes the logits predictions from the
    # inference model.
    logits = cifar10.inference(images)

    # Calculate loss.
    loss = cifar10.loss(logits, labels)

    # Build a Graph that trains the model with one batch of examples and
    # updates the model parameters.
    train_op = cifar10.train(loss, global_step)

    # Create a saver.
    saver = tf.train.Saver(tf.global_variables())

    # Build the summary operation based on the TF collection of Summaries.
    summary_op = tf.summary.merge_all()

    # Build an initialization operation to run below.
    init = tf.global_variables_initializer()

    # Start running operations on the Graph.
    sess = tf.Session(config=tf.ConfigProto(
        log_device_placement=FLAGS.log_device_placement))
    sess.run(init)

    # save the graph
    tf.train.write_graph(sess.graph_def, FLAGS.train_dir, 'model.pbtxt')  

    ....

但我在 model.pbtxt 中看不到名为 softmax_linear 的节点。我究竟做错了什么?我只是想要输出节点的名称来导出图形。

【问题讨论】:

    标签: python machine-learning tensorflow neural-network


    【解决方案1】:

    操作员名称不会是"softmax_linear"tf.name_scope() 是运算符名称的前缀,由 / 分隔。每个运营商都有自己的名字。例如,如果你写

    with tf.name_scope("foo"):
       a = tf.constant(1, name="bar")
    

    那么常量的名称为"foo/bar"

    希望有帮助!

    【讨论】:

    • 谢谢!你是对的。 softmax_linear/softmax_linear 确实存在。
    猜你喜欢
    • 2018-06-28
    • 2021-12-06
    • 2017-02-23
    • 2018-11-08
    • 2012-06-02
    • 2019-08-29
    • 2018-02-28
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多