七、神經網絡-非線性激活
非線性變換的主要目的:引入非線性能力,使模型能夠學習復雜的映射關系。如果沒有非線性激活,神經網絡本質上相當于一個線性變換,無法擬合復雜的數據分布。
以下是使用relu/sigmoid的例子:
dataset=torchvision.datasets.CIFAR10(root='./dataset', train=False, download=True,transform=torchvision.transforms.ToTensor())
dataloader=torch.utils.data.DataLoader(dataset,batch_size=64,shuffle=True)
class MM(torch.nn.Module):
def __init__(self):
super(MM, self).__init__()
self.relu1=ReLU()
self.sigmoid1=torch.nn.Sigmoid()
def forward(self,x):
output=self.sigmoid1(x)
return output
mm=MM()
writer=SummaryWriter(log_dir='./relu_logs')
step=0
for data in dataloader:
imgs,targets=data
writer.add_images("input",imgs,step)
output=mm(imgs)
writer.add_images("output",output,step)
step+=1
writer.close()
得到的結果如下所示:


浙公網安備 33010602011771號