问题描述:
如下图,在使用torch.nn.Sigmoid非线性激活时报错
源代码:
class testrelu(nn.Module): def __init__(self): super().__init__() self.sigmoid = Sigmoid() def forward(self, input): output = self.sigmoid(input) return output writer = SummaryWriter("./logs") dataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(), download=True) dataloader = DataLoader(dataset, batch_size=64) step = 0 for data in dataloader: img, target = data writer.add_images("input_ReLU", img, step) output = testrelu(img) writer.add_images("output_ReLU", output, step) step = step + 1 writer.close()
testrelu
类的 __init__
方法没有接收任何参数,但是在创建类的实例时,尝试传递了一个参数。这是导致 TypeError
的原因。
问题解决:
要解决这个问题,需要确保在创建 testrelu
类的实例时不传递任何参数。以下是修改后的代码:
tr = testrelu() for data in dataloader: img, target = data writer.add_images("input_ReLU", img, step) output = tr(img) writer.add_images("output_ReLU", output, step) step = step + 1