20 padding层+非线性激活函数

一、补充padding层

补充:padding层,主要是用0或常数填充,可以自己查看官方文档

image

二、非线性激活函数

1.Relu函数

  • 输入:N表示batchsize

image

  • Inplace:是否对原来的结果进行替换

一般采用为False,保留原始数据

image

  • 图像:

image

2.sigmoid函数

  • 输入:N表示batchsize
    image

  • 图片:
    image

三、实验代码

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)

  • 运行结果
    image

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

image

posted @ 2022-05-18 22:10  Trouvaille_fighting  阅读(63)  评论(0)    收藏  举报