Tensorflow tf.expand_dims

Tensorflow tf.expand_dims,tensorflow,Tensorflow,包含以下代码: batch_size = tf.size(labels) labels = tf.expand_dims(labels, 1) indices = tf.expand_dims(tf.range(0, batch_size, 1), 1) concated = tf.concat(1, [indices, labels]) onehot_labels = tf.sparse_to_dense(concated, tf.pack([batch_size, NUM_CLASSES])

包含以下代码:

batch_size = tf.size(labels)
labels = tf.expand_dims(labels, 1)
indices = tf.expand_dims(tf.range(0, batch_size, 1), 1)
concated = tf.concat(1, [indices, labels])
onehot_labels = tf.sparse_to_dense(concated, tf.pack([batch_size, NUM_CLASSES]), 1.0, 0.0)

第二行将标注添加到
标签
张量。但是,
标签
是通过提要字典传入的,因此它应该已经有了shape
[batch\u size,NUM\u CLASSES]
。如果是这样的话,为什么这里要使用
expand\u dims

那本教程已经很老了。您引用的是0.6版,而截至2016年11月20日的版本是0.11版。所以在v0.6的时候有很多不同的功能

无论如何,要回答你的问题:

mnist中的标签仅编码为数字0-9。然而,损失函数期望标签编码为一个热向量

标签不是
[batch\u size,NUM\u CLASSES]
在该示例中,它只是
[batch\u size]

这可以通过类似的numpy函数来实现。此外,他们还提供了从tensorflow中的mnist数据集中获取标签的函数,作为一个热向量,它已经具有您所述的形状