系列文章目录
- pytorch学习1-数据加载以及Tensorboard可视化工具
- pytorch学习2-Transforms主要方法使用
- pytorch学习3-torchvisin和Dataloader的使用
- pytorch学习4-简易卷积实现
- pytorch学习5-最大池化层的使用
- pytorch学习6-非线性变换(ReLU和sigmoid)
- pytorch学习7-序列模型搭建
- pytorch学习8-损失函数与反向传播
- pytorch学习9-优化器学习
- pytorch学习10-网络模型的保存和加载
- pytorch学习11-完整的模型训练过程
一、非线性变换(ReLU和sigmoid)
import torch
import torchvision.datasets
from torch import nn
from torch.nn import ReLU, Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
input=torch.tensor([
[1,-0.5],
[-1,3]
])
output=torch.reshape(input,(-1,1,2,2))
print(output.shape)
dataset=torchvision.datasets.CIFAR10("./data6",train=False,transform=torchvision.transforms.ToTensor(),download=True)
dataloader=DataLoader(dataset,batch_size=64)
class Mynn(nn.Module):
def __init__(self):
super(Mynn,self).__init__()
self.relu1=ReLU()#使用ReLU激活函数,inplace参数代表是不是覆盖原始数据,默认为False
self.sigmoid=Sigmoid()##使用sigmoid激活函数
# def forward(self,input):
# output=self.relu1(input)
# return output
def forward(self,input):
output=self.sigmoid(input)
return output
mynn=Mynn()
writer=SummaryWriter("logs6")
step=0
for data in dataloader:#dataloader的每一批次,既包含图像又包含标签,所以要他们分出来单独处理
imgs,taiget=data
writer.add_images("我是输入",imgs,step)
output=mynn(imgs)
writer.add_images("我是输出",output,step)
step+=1
writer.close()
总结
以上就是今天要讲的内容,非线性变换(ReLU和sigmoid)