20 padding层+非线性激活函数
一、补充padding层
补充:padding层,主要是用0或常数填充,可以自己查看官方文档

二、非线性激活函数
1.Relu函数
- 输入:N表示batchsize

- Inplace:是否对原来的结果进行替换
一般采用为False,保留原始数据

- 图像:

2.sigmoid函数
-
输入:N表示batchsize

-
图片:

三、实验代码
1.relu函数
- 代码
点击查看代码
'''
RELU:小于0的部分返回0,大于0的部分返回本身的数值
'''
import torch
from torch import nn
from torch.nn import ReLU
# 1.输入
input=torch.tensor([[1,-0.2],
[-1,3]])
print(input)
# 2.调整输入的形式
input=torch.reshape(input,(-1,1,2,2))# -1:随机batchsize大小 1:channel 2 2:H W
print(input.shape)
# 3.模型定义
class Tudui(nn.Module):
def __init__(self):
super(Tudui, self).__init__()
self.relu1=ReLU() #默认inplace为false
def forward(self,input):
output=self.relu1(input)
return output
#4. 创建网络+使用网络
tudui=Tudui()
output=tudui(input)
print(output)
- 运行结果

2.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.输入
# 测试集
test_data=torchvision.datasets.CIFAR10(root="./CIFAR10_dataset",transform=torchvision.transforms.ToTensor(),train=False,download=True)
test_loader=DataLoader(dataset=test_data,batch_size=64)
print(input)
# 2.模型定义
class Tudui(nn.Module):
def __init__(self):
super(Tudui, self).__init__()
self.sigmoid1=Sigmoid()
def forward(self,input):
output=self.sigmoid1(input)
return output
# 3. 创建网络
tudui=Tudui()
# 4.使用网络
writer=SummaryWriter('./logs_20_2')
step=0
for data in test_loader:
imgs,targetd=data
writer.add_images("input",imgs,global_step=step)
output=tudui(imgs)
writer.add_images("output",output,global_step=step)
step+=1
writer.close()
- 运行结果
tensorboard --logdir=logs_20_2 --host=127.0.0.1


浙公网安备 33010602011771号