TypeError: torch.FloatTensor is not a Module subclass
这个错误搞了好久,竟然是一个括号的问题!记录一下
class Longtao(nn.Module):
def __init__(self):
super(Longtao, self).__init__()
self.model = nn.Sequential
(
# ↑ 括号导致报错
nn.Conv2d(3, 32, 5, 1, 2),
nn.MaxPool2d(2),
nn.Conv2d(32, 32, 5, 1, 2),
nn.MaxPool2d(2),
nn.Conv2d(32, 64, 5, 1, 2),
nn.MaxPool2d(2),
nn.Flatten(),
nn.Linear(64 * 4 * 4, 64),
nn.Linear(64, 10)
)
##该部分代码存在问题
class Longtao(nn.Module):
def __init__(self):
super(Longtao, self).__init__()
self.model = nn.Sequential(
# 括号导致报错 注意将这个括号放到上面去!!!
nn.Conv2d(3, 32, 5, 1, 2),
nn.MaxPool2d(2),
nn.Conv2d(32, 32, 5, 1, 2),
nn.MaxPool2d(2),
nn.Conv2d(32, 64, 5, 1, 2),
nn.MaxPool2d(2),
nn.Flatten(),
nn.Linear(64 * 4 * 4, 64),
nn.Linear(64, 10)
)
def forward(self, x):
x = self.model(x)
return x
if __name__ == '__main__':
longge = Longtao()
input = torch.ones((64, 3, 32, 32))
output = longge(input)
print(output.shape)
至此,修改完那个括号,,代码可以正常运行!