您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“pytorch卷積核大小的設置對全連接神經元有什么影響”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“pytorch卷積核大小的設置對全連接神經元有什么影響”這篇文章吧。
3*3卷積核與2*5卷積核對神經元大小的設置
#這里kerner_size = 2*5 class CONV_NET(torch.nn.Module): #CONV_NET類繼承nn.Module類 def __init__(self): super(CONV_NET, self).__init__() #使CONV_NET類包含父類nn.Module的所有屬性 # super()需要兩個實參,子類名和對象self self.conv1 = nn.Conv2d(1, 32, (2, 5), 1, padding=0) self.conv2 = nn.Conv2d(32, 128, 1, 1, padding=0) self.fc1 = nn.Linear(512, 128) self.relu1 = nn.ReLU(inplace=True) self.drop1 = nn.Dropout(0.5) self.fc2 = nn.Linear(128, 32) self.relu2 = nn.ReLU(inplace=True) self.fc3 = nn.Linear(32, 3) self.softmax = nn.Softmax(dim=1) def forward(self, x): x = self.conv1(x) x = self.conv2(x) x = x.view(x.size(0), -1) x = self.fc1(x) x = self.relu1(x) x = self.drop1(x) x = self.fc2(x) x = self.relu2(x) x = self.fc3(x) x = self.softmax(x) return x
主要看對稱卷積核以及非對稱卷積核之間的計算方式
#這里kerner_size = 3*3 class CONV_NET(torch.nn.Module): #CONV_NET類繼承nn.Module類 def __init__(self): super(CONV_NET, self).__init__() #使CONV_NET類包含父類nn.Module的所有屬性 # super()需要兩個實參,子類名和對象self self.conv1 = nn.Conv2d(1, 32, 3, 1, padding=1) self.conv2 = nn.Conv2d(32, 128, 1, 1, padding=0) self.fc1 = nn.Linear(3200, 128) self.relu1 = nn.ReLU(inplace=True) self.drop1 = nn.Dropout(0.5) self.fc2 = nn.Linear(128, 32) self.relu2 = nn.ReLU(inplace=True) self.fc3 = nn.Linear(32, 3) self.softmax = nn.Softmax(dim=1) def forward(self, x): x = self.conv1(x) x = self.conv2(x) x = x.view(x.size(0), -1) x = self.fc1(x) x = self.relu1(x) x = self.drop1(x) x = self.fc2(x) x = self.relu2(x) x = self.fc3(x) x = self.softmax(x) return x
針對kerner_size=2*5,padding=0,stride=1以及kerner_size=3*3,padding=1,stride=1二者計算方式的比較如圖所示
以上是“pytorch卷積核大小的設置對全連接神經元有什么影響”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。