带有矩阵输入和向量输出形状问题的CNN模型

时间:2021-07-25 05:36:00

标签: python pytorch conv-neural-network

这是我第一次遇到矩阵输入和向量输出的情况,这里有些混乱。

我需要的 CNN 结构如下所示: enter image description here

层描述在这里:

enter image description here

batch size为200,因此输入为tensor(200*[2*list[]]表示的2 * 24矩阵,预期输出为tensor(200*[4*list[]])表示的4 * 1矩阵,我目前拥有的模型代码:< /p>

class BNN_P1(nn.Module):
    def __init__(self):
        super(BNN_P1,self).__init__()
        self.conv1=nn.Conv2d(1,8,kernel_size=3,stride=1,padding=1,bias=True) #layer 2, convolutional 
        self.bn1=nn.BatchNorm2d(8,eps=1e-03, momentum=0.99)       #layer 3,batch normalization
        self.conv2=nn.Conv2d(8,8,kernel_size=3,stride=1,padding=1,bias=True)  #layer 5,convolutional
        self.bn2=nn.BatchNorm2d(8,eps=1e-03, momentum=0.99)       #layer 7,batch normalization
        self.fc=nn.Linear(?,?)                                     #layer 9,fully connected
        self.sigmoid=nn.Sigmoid()                               #layer 10,sigmoid
        
    def forward(self,x):
        batch_size=x.size(0)
        x=F.relu(self.bn1(self.conv1(x)))              #layer 4,ReLU
        x=F.relu(self.bn2(self.conv2(x)))              #layer 6,ReLU
        x=x.view(batch_size,-1)                          #layer 8,flatten
        x=self.fc(x)
        x=self.sigmoid(x)
        
        return x

我的问题是我应该如何确定线性输入和输出设置以获得正确答案?如果可能的话,有人能解释一下在这个过程中形状的变化吗?

0 个答案:

没有答案