16、非线性激活
1、常用的relu和sigmoid
relu:
![]()
relu函数对图像的作用不是很明显


sigmoid:

非线性激活就是能够保留图像中那些曲线特征
'''非线性激活'''
import torch
import torchvision
from torch import nn
from torch.nn import ReLU, Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
'''1、输入的一个二维矩阵'''
input=torch.tensor([[1,-0.5],
[-1,3]])
'''2、改变满足要求的尺寸,因为网络模型的输入要求是4维'''
input=torch.reshape(input,(-1,1,2,2))
print(input.shape)
'''3、公共数据集'''
dataset=torchvision.datasets.CIFAR10('../../dataset/CIFAR10',train=False,transform=torchvision.transforms.ToTensor(),download=True)
'''4、加载数据'''
dataloader=DataLoader(dataset,batch_size=64)
'''5、搭建网络模型'''
class nerual(nn.Module):
def __init__(self):
super().__init__()
self.relu1=ReLU()
self.sigmoid=Sigmoid()
def forward(self,input):
output=self.sigmoid(input) #进行sigmoid非线性变换
return output
'''6、初始化模型'''
Nerual=nerual()
writer=SummaryWriter('logs') #启用事件文件来进行查看
step=0
for data in dataloader:
imgs,targets=data
writer.add_images('input', imgs, step)
output=Nerual(imgs)
writer.add_images('output', output, step)
step+=1
writer.close()

浙公网安备 33010602011771号