不同的交叉熵函数 cross_entropy

softmax_cross_entropy_with_logits

输入 [batch, num_classes], labels应该和输入维数一样,一般需要进行one-hot编码。

sparse_softmax_cross_entropy_with_logits

省去了softmax_cross_entropy_with_logits labels必须进行one-hot编码的需要,内部进行类似的one-hot编码。

tf.nn.seq2seq.sequence_loss_by_example

输入为[batch * n_step, n_hidden] 的n_hidden维序列,label是一维的序列[batch * n_step],每一行和label的对应值进行sparse_softmax_cross_entropy_with_logits的交叉熵,结果得到的batch_size个结果的序列。

得到一个序列的交叉熵结果

#Define the loss
loss = seq2seq.sequence_loss_by_example([self._logits], [tf.reshape(self._inputTargetsY, [-1])], [tf.ones([self.config.batch_size * self.config.sequence_size])], self.vocabularySize)
self._cost = tf.div(tf.reduce_sum(loss), self.config.batch_size)

参考:

https://blog.csdn.net/ZJRN1027/article/details/80199248

https://blog.csdn.net/xyz1584172808/article/details/83056179

 

你可能感兴趣的:(python)