我在训练中使用了交叉熵和单热真值标签的Tensorflow分类器。这是否容易受到虚拟变量陷阱的影响?如果是这样,我应该删除其中一个类?如果不是,那么tf.nn.softmax_cross_entropy_with_logits
是否对虚拟变量陷阱免疫?代码:
batch_size = tf.shape(truthLabels_placeholder)[0]
indices = tf.expand_dims(tf.range(0, batch_size), 1)
labels = tf.expand_dims(truthLabels_placeholder, 1)
concated = tf.concat(axis=1, values=[indices, labels])
onehot_labels = tf.sparse_to_dense(concated, tf.stack([batch_size,shared.nClasses]), 1.0, 0.0)
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=onehot_labels)
loss = tf.reduce_mean(cross_entropy)
答案 0 :(得分:1)
不,它不受虚拟变量陷阱的影响。这些注释使用交叉熵和softmax函数激励创建分类的损失函数:http://cs231n.github.io/linear-classify/#softmax。