如题,初学者,看官网的 tutorials 中的 quick start ,它是定义了一个长相为这样的网络
self.linear_relu_stack = nn.Sequential(
nn.Linear(28*28, 512),
nn.ReLU(),
nn.Linear(512, 512),
nn.ReLU(),
nn.Linear(512, 10)
)
输出类别为 10 类,然后反向传播的代码是
pred = model(X)
loss = loss_fn(pred, y)
# Backpropagation
optimizer.zero_grad()
loss.backward()
optimizer.step()
loss_fn 是nn.CrossEntropyLoss()
交叉熵,那么这个输出类别似乎是没有通过 softmax 直接就输入交叉熵了吗?
如果要 softmax+交叉熵的话,是应该在定义网络的时候,在最后的 fc 后面再加一个 nn.Softmax(),还是说写成下面这样:
pred = nn.Softmax(model(X))
loss = loss_fn(pred, y)
这个样子?谢谢大家
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.