当前位置: 首页 > news >正文

PyTorch——非线性激活(5)

        非线性激活函数的作用是让神经网络能够理解更复杂的模式和规律。如果没有非线性激活函数,神经网络就只能进行简单的加法和乘法运算,没法处理复杂的问题。

        非线性变化的目的就是给我们的网络当中引入一些非线性特征


Relu 激活函数


Relu处理图像

# 导入必要的库
from os import close
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# 加载CIFAR-10测试数据集,将图像转换为Tensor格式
dataset = torchvision.datasets.CIFAR10("./data", train=False, download=True,transform=torchvision.transforms.ToTensor())# 创建数据加载器,设置批量大小为64
dataloader = DataLoader(dataset, batch_size=64)# 定义神经网络模型TY
class TY(nn.Module):def __init__(self):super(TY, self).__init__()# 定义ReLU激活函数层self.relu1 = ReLU()# 定义Sigmoid激活函数层(当前未在forward中使用)self.sigmod1 = Sigmoid()def forward(self, input):# 前向传播过程,对输入数据应用ReLU激活函数output = self.relu1(input)return output# 实例化模型
ty = TY()# 创建TensorBoard写入器,用于可视化数据
writer = SummaryWriter("./logs_relu")# 初始化步数计数器
step = 0
# 遍历数据加载器中的每个批次
for data in dataloader:# 获取图像数据和对应的标签imgs, target = data# 向TensorBoard添加原始输入图像writer.add_images("input", imgs, step)# 将图像数据输入模型,得到经过ReLU处理后的输出output = ty(imgs)# 向TensorBoard添加处理后的输出图像writer.add_images("output", output, step)# 步数计数器递增step += 1# 关闭TensorBoard写入器,释放资源
writer.close()

ReLU处理图像,效果不是很明显


Sigmoid激活函数

from os import close
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 SummaryWriterdataset = torchvision.datasets.CIFAR10("./data",train=False,download=True,transform=torchvision.transforms.ToTensor())dataloader = DataLoader(dataset,batch_size=64)class TY(nn.Module):def __init__(self):super(TY,self).__init__()self.relu1=ReLU()self.sigmoid1 = Sigmoid()def forward(self,input):output = self.sigmoid1(input)return outputty = TY()writer = SummaryWriter("./logs_relu")step = 0
for data in dataloader:imgs,target=datawriter.add_images("input",imgs,step)output = ty(imgs)writer.add_images("output",output,step)step+=1writer.close()

http://www.xdnf.cn/news/791839.html

相关文章:

  • Linux系统下Google浏览器无法使用中文输入的临时解决方案
  • AIGC学习笔记(9)——AI大模型开发工程师
  • OD 算法题 B卷【代码编辑器】
  • 第十一章 注解
  • AI数据集构建:从爬虫到标注的全流程指南
  • 使用ArcPy生成地图系列
  • 0518蚂蚁暑期实习上机考试题3:小红的字符串构造
  • 如何爬取google应用商店的应用分类呢?
  • Java-redis实现限时在线秒杀功能
  • 【RAG最新总结】检索增强生成最新进展2024-2025
  • 解决FreePBX 17初始配置时网页无响应
  • CCF CSP 第37次(2025.03)(3_模板展开_C++)(哈希表+stringstream)
  • 【AI学习从零至壹】基于深度学习的⽂本分类任务
  • C++算法训练营 Day6 哈希表(1)
  • 《仿盒马》app开发技术分享-- 个人中心关于逻辑完善(端云一体)
  • Java 文件操作 和 IO(5)-- 综合案例练习 -- 示例三
  • 移动端测试岗位高频面试题及解析
  • 左值引用和右值引用
  • 【C++篇】STL适配器(下篇):优先级队列与反向迭代器的底层奥秘
  • Splitting Items
  • torch.nn中的各种组件
  • element级联地址选择器
  • java类的生命周期
  • Make All Equal
  • 2.2.2 06年T3
  • LeetCode 152. 乘积最大子数组 - 动态规划解法详解
  • 集成学习三种框架
  • C++中的指针参数传递与引用参数传递详解
  • 5985/wsman 是什么?
  • 一、基础环境配置