在“8.5. 循环神经网络的从零开始实现”节,train_epoch_ch8计算交叉熵传入的两个参数是y_hat和y.long():
l = loss(y_hat, y.long()).mean()
y_hat是根据样本预测得到的softmax概率,形状为(batch_sizenum_steps, len(vocab)),
y.long()是形状为(batch_sizenum_steps),每个元素为字符对应的索引。
问题来了,第二个参数为什么不传入标签的独热编码?计算索引和softmax概率之间的交叉熵看起来怪怪的,就算利用广播机制将将单个索引扩展为向量也说不通。
谢谢!