softmax简洁实现

注意到softmax的从零开始实现里,网络是一个‘矩阵向量乘’再加一个softmax,debug发现这样每个输入得出的y_hat为一个全正的10维向量,之和为1,符合理论上的要求。
但是softmax简洁实现里,网络直接是一个nn.Linear(784, 10)的全连接层,也就是相当于只有‘矩阵向量乘’而没有softmax,debug发现算y_hat的时候,确实是一个10维有正有负的向量。
请问为什么简洁实现softmax里没有softmax操作?

仔细debug了一下发现
自己实现softmax回归的时候,softmax操作是自己实现的,算loss的时候也是自己实现,可以理解
简洁实现softmax回归的时候,没有手动设置softmax,loss也是pytorch自带的交叉熵损失,train的时候貌似会自己调用一下log_softmax,这块debug跳来跳去的没太看懂,请问是pytorch默认的吗?做训练的时候发现什么条件就会自己调用log_softmax?

softmax是在loss里面实现的,输出就不需要了