關於pytorch cnn輸出層。

  统计/机器学习 Python 人工神经网络    浏览次数:690        分享
0

各位先進大家好:

最近在學pytorch,我在官網看tutorial發現一個問題

這是cnn的分類問題,想請教輸出的時候為何不需要指定activation function

照理說應該要用softmax輸出啊?

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        # 1 input image channel, 6 output channels, 3x3 square convolution
        # kernel
        self.conv1 = nn.Conv2d(1, 6, 3)
        self.conv2 = nn.Conv2d(6, 16, 3)
        # an affine operation: y = Wx + b
        self.fc1 = nn.Linear(16 * 6 * 6, 120) # 6*6 from image dimension
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)
    def forward(self, x):
        # Max pooling over a (2, 2) window
        x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
        # If the size is a square you can only specify a single number
        x = F.max_pool2d(F.relu(self.conv2(x)), 2)
        x = x.view(-1, self.num_flat_features(x))
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x
    def num_flat_features(self, x):
        size = x.size()[1:] # all dimensions except the batch dimension
        num_features = 1
        for s in size:
            num_features *= s
        return num_features


 

Warren Wang   2019-12-05 11:18



   2个回答 
2

是的,多元分类是需要softmax激活函数的。

但是,pytorch中的CrossEntropyLoss已经包含了softmax这个过程了,所以在pytorch中不需要softmax,直接用linear的结果就可以了。可以看下官方文档https://pytorch.org/docs/stable/nn.html#crossentropyloss


SofaSofa数据科学社区DS面试题库 DS面经

sasa   2019-12-05 15:47

0

謝謝,又學了一樣

SofaSofa数据科学社区DS面试题库 DS面经

Warren Wang   2019-12-05 22:26



  相关主题

pytorch里的new_ones有什么用?   2回答

pytorch里view(-1, 1)什么意思?   1回答

pytorch里ConvTranspose2d是什么意思?   0回答

常提到的LeNet是什么意思?   2回答

什么叫成本函数?它的作用是什么?   1回答

为什么最大值池化比均值池化好(更常用)?   1回答

Feed-Forward Network(FFN)是什么网络结构?   1回答

BP神经网络的疑问   1回答

反向传播(BP)神经网络和前馈神经网络是一回事吗   1回答

为什么神经网络模型需要大量的样本?   1回答

logit函数和sigmoid函数是什么关系?   2回答

图像分割的深度学习训练,把数据库格式从jpg改成png之后报错如图,求解。   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!