标签等级(收到1)应等于logits等级减1(收到4)

时间:2017-03-27 16:00:51

标签: tensorflow

我有一个名为data_queue的tf.RandomShuffleQueue定义如下:

self.data_queue = tf.RandomShuffleQueue(capacity=1024,
                                                    min_after_dequeue=21,
                                                    dtypes=[tf.float32,
                                                            tf.int32],
                                                    shapes=[[221, 221, 3], []],
                                                    name="data_queue")

我能够成功地将数据项排入其中。

出列操作定义如下:

        [self.batch_images, self.batch_labels] = self.data_queue.dequeue_up_to(self.batchsize)

在上面的代码段self.batchsize中是一个恒定的张量。

问题现在开始如下:

我想将这些直接推送到我的图表中。为清楚起见,我的图表的第一层如下:

conv1 = tf.layers.conv2d(self.batch_images, filters=96, kernel_size=7,
                                     strides=2,
                                     activation=tf.nn.relu,
                                     kernel_regularizer=tf
                                     .random_uniform_initializer,
                                     name='conv1')

引用错误的最后几行是:

drop2 = tf.layers.dropout(fc2, name='drop2')
cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(
                logits=drop2,
                                                        labels=self.batch_labels,
                                                                  name="cross_entropy_per_example")

我收到的错误是:

line 1709, in sparse_softmax_cross_entropy_with_logits
    (labels_static_shape.ndims, logits.get_shape().ndims))
ValueError: Rank mismatch: Rank of labels (received 1) should equal rank of logits minus 1 (received 4).
  1. 当我检查tf.rankself.images的{​​{1}}时,我得到了以下内容:

    标签 张量("等级:0",形状=(),dtype = float32) 图片 张量(" Rank_1:0",shape =(),dtype = int32)

  2. 它是什么原因?

    注意 我不想使用self.labelstf.placeholder。我想将feed_dict直接连接到图表。

1 个答案:

答案 0 :(得分:1)

我自己找到了解决方案。如果其他人在将来需要帮助,请将其发布在此处。

卷积层的输出必须重新整形,保持批量大小相同。这很重要,否则完全连接的计算没有意义。 不幸的是,tf.layers.dense here的文档在这方面非常模糊,并没有做适当的重塑。

我使用tf.contrib.layers.flatten进行了整形,它就像一个魅力