【问题标题】:pytorch torch segmentation model syntax error in jupyter notebookjupyter notebook中的pytorch火炬分割模型语法错误
【发布时间】:2020-12-17 02:09:24
【问题描述】:

我得到了错误:

nn.MaxPool2d(kernel_size=2, stride=2), ^ SyntaxError: 无效语法

使用以下代码:

import torch
import torch.nn as nn
import torch.nn.functional as F

class CNNSEG(nn.Module): # Define your model
    def __init__(self, num_classes=1):
        super(CNNSEG, self).__init__()
        #Adds one extra class to stand for the zero-padded pixels
        self.num_classes = num_classes + 1

        self.conv1 = nn.Sequential(
            nn.Conv2d(in_channels=1, out_channels=32, kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2, stride=2),
            nn.LocalResponseNorm(size=5, alpha=1e-4, beta=0.75),
        )

        self.conv2 = nn.Sequential(
            nn.Conv2d(in_channels=32, out_channels=256, kernel_size=5, stride=1, padding=2, groups=2),
            nn.ReLU(),j
            nn.MaxPool2d(kernel_size=2, stride=2),
            nn.LocalResponseNorm(size=5, alpha=1e-4, beta=0.75),
        )
        
        self.conv3 = nn.Sequential(
            nn.Conv2d(in_channels=256, out_channels=512, kernel_size=5, stride=1, padding=2, groups=2),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=3, stride=2),
            nn.LocalResponseNorm(size=5, alpha=1e-4, beta=0.75),
        )        

        self.score_conv = nn.Conv2d(in_channels=512, out_channels=num_classes, kernel_size=1, padding=0)
        self.deconv = nn.ConvTranspose2d(in_channels=num_classes, out_channels=num_classes, 
            kernel_size=16, stride=8, bias=False)
        self.out_activation = nn.Softmax((num_classes, 4))

    def forward(self, x):
        out1 = self.conv1(x)
        out2 = self.conv2(out1)
        out3 = self.conv3(out2)
        out_score = self.score_conv(out3)
        out_deconv = self.deconv(out_score)
        return out_deconv
    
model = CNNSEG(num_classes=4) # We can now create a model using your defined segmentation model
print(model)

据我所知,我没有任何开括号,我看不出这里有什么问题?谢谢

【问题讨论】:

  • 原始代码中 self.conv2 下那行末尾的“j”是吗?它不应该在那里。 nn.ReLU(),j

标签: python jupyter-notebook pytorch


【解决方案1】:

在ReLu之后设置第二层(self.conv2)时,你一定打错了一个“j”。 这就是你得到无效语法的原因。

【讨论】:

    猜你喜欢
    • 2020-02-09
    • 2019-02-14
    • 2018-06-27
    • 2022-11-17
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    相关资源
    最近更新 更多