Hello guys,
I would like to know how to solve this type of problem? Assume that my code is:
class MyNet(nn.Module):
def __init__(self, extractor):
    super(MyNet, self).__init__()
    self.features = nn.Sequential(
            # Select Feature
            *list(extractor.children())[:-2]
    )
    self.maxpool1 = nn.MaxPool2d(2,2)
    self.conv1 = nn.Conv2d(512,1024,3,padding=1)
    self.batchNorm1 = nn.BatchNorm2d(1024)
    self.conv2 = nn.Conv2d(1024,512,1)
    self.batchNorm2 = nn.BatchNorm2d(512)
    self.conv3 = nn.Conv2d(512,1024,3,padding=1)
    self.batchNorm3 = nn.BatchNorm2d(1024)
    self.conv4 = nn.Conv2d(1024,512,1)
    self.batchNorm4 = nn.BatchNorm2d(512)
    self.conv5 = nn.Conv2d(512,1024,3,padding=1)
    self.batchNorm5 = nn.BatchNorm2d(1024)
    self.final = nn.Conv2d(1024,30,1)
    
def forward(self, input):
    output = self.features(input)
    output = self.maxpool1(output)
    output = f.leaky_relu(self.batchNorm1(self.conv1(output)),0.1)
    output = f.leaky_relu(self.batchNorm2(self.conv2(output)),0.1)
    output = f.leaky_relu(self.batchNorm3(self.conv3(output)),0.1)
    output = f.leaky_relu(self.batchNorm4(self.conv4(output)),0.1)
    output = f.leaky_relu(self.batchNorm5(self.conv5(output)),0.1)
    output = f.dropout(output, p = 0.5)
    output = self.final(output)
    output = f.sigmoid(output)
    return output

And here is a basic initialization of above class:
resnet18 = torchvision.models.resnet18(pretrained=True)
net = MyNet(resnet18)
for param in net.features.parameters():
    param.requires_grad = False
imageSize = (448,448)
nc = 3
input = V(torch.randn(1,nc,imageSize[0], imageSize[1]))
if cuda:
    net.cuda()
    input = input.cuda()
output = net(input)

But when run above code, I receive following error:
Traceback (most recent call last): File "MyCode.py", line 194, in <module> output = net(input) File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 206, in __call__ result = self.forward(*input, **kwargs) File "MyCode.py", line 110, in forward output = self.features(input) File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 206, in __call__ result = self.forward(*input, **kwargs) File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torch/nn/modules/container.py", line 64, in forward input = module(input) File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 206, in __call__ result = self.forward(*input, **kwargs) File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torch/nn/modules/container.py", line 64, in forward input = module(input) File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 206, in __call__ result = self.forward(*input, **kwargs) File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torchvision-0.1.8-py3.6.egg/torchvision/models/resnet.py", line 46, in forward File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 206, in __call__ result = self.forward(*input, **kwargs) File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py", line 43, in forward self.training, self.momentum, self.eps) File "/home/mlcmdeep/anaconda3/lib/python3.6/site-packages/torch/nn/functional.py", line 438, in batch_norm f = torch._C._functions.BatchNorm(running_mean, running_var, training, momentum, eps, torch.backends.cudnn.enabled) AttributeError: 'str' object has no attribute 'enabled'
Could you please help me?