当前位置: 首页 > 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.lqws.cn/news/91927.html

相关文章:

  • Docker 插件生态:从网络插件到存储插件的扩展能力解析
  • SQL Indexes(索引)
  • 安全大模型的思考
  • JVM-内存结构
  • Flink 失败重试策略 :restart-strategy.type
  • React 第五十一节 Router中useOutletContext的使用详解及注意事项
  • NVIDIA DOCA 3.0:引领AI基础设施革命的引擎简析
  • 【Elasticsearch】search_after不支持随机到哪一页,只能用于上一页或下一页的场景
  • RAG优化知识库检索(5):多阶段检索与重排序
  • 苹果Mac系统如何彻底清理vscode插件Augment
  • 互联网大厂智能体平台体验笔记字节扣子罗盘、阿里云百炼、百度千帆 、腾讯元器、TI-ONE平台、云智能体开发平台
  • GLIDE论文阅读笔记与DDPM(Diffusion model)的原理推导
  • [特殊字符] Unity 性能优化终极指南 — Text / TextMeshPro 组件篇
  • 车载软件架构 --- 软件定义汽车开发模式思考
  • ABAP设计模式之---“高内聚,低耦合(High Cohesion Low Coupling)”
  • Java垃圾回收机制深度解析:从理论到实践的全方位指南
  • 项目课题——基于ESP32的智能插座
  • iOS 应用如何防止源码与资源被轻易还原?多维度混淆策略与实战工具盘点(含 Ipa Guard)
  • 云服务器部署Gin+gorm 项目 demo
  • Mac版本Android Studio配置LeetCode插件
  • 基于InternLM的情感调节大师FunGPT
  • 谷歌地图免费下载手机版
  • GPTBots在AI大语言模型应用中敏感数据匿名化探索和实践
  • Rust 函数
  • 15个基于场景的 DevOps 面试问题及答案
  • Celery 核心概念详解及示例
  • SpringBoot 系列之集成 RabbitMQ 实现高效流量控制
  • Vue 树状结构控件
  • 【Mysql】隐式转换造成索引失效
  • PopupImageMenuItem 无响应