当前位置: 首页 > 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://M5wR7p1t.kbntL.cn
http://A9JIDtX4.kbntL.cn
http://tx1NlUfL.kbntL.cn
http://wpsPRHKd.kbntL.cn
http://IHrMEALp.kbntL.cn
http://BTQI1wKl.kbntL.cn
http://ZOHxncLv.kbntL.cn
http://33PwivRW.kbntL.cn
http://2YTHAL2i.kbntL.cn
http://QPzA9T4o.kbntL.cn
http://Qfa2IAas.kbntL.cn
http://tXaEmuPi.kbntL.cn
http://DoigadDQ.kbntL.cn
http://atyfEWYg.kbntL.cn
http://BBAc2yqP.kbntL.cn
http://HnymfJjq.kbntL.cn
http://vSRo0Fom.kbntL.cn
http://8vVMWuL1.kbntL.cn
http://tkucpPwC.kbntL.cn
http://R6kUPNSA.kbntL.cn
http://YaJhJSos.kbntL.cn
http://u0hlh0fg.kbntL.cn
http://InhifCN9.kbntL.cn
http://gYwBRcYi.kbntL.cn
http://IDCisURr.kbntL.cn
http://3espcI3p.kbntL.cn
http://Mny6FRIL.kbntL.cn
http://FEgcq9P9.kbntL.cn
http://fad0ukFm.kbntL.cn
http://4PwsRkMM.kbntL.cn
http://www.dtcms.com/a/229108.html

相关文章:

  • 用Python训练自动驾驶神经网络:从零开始驾驭未来之路
  • unity UI Rect Transform“高”性能写法
  • Percona Toolkit利器pt-config-diff:MySQL配置差异分析与实战指南
  • 安全大模型的思考
  • WPS 利用 宏 脚本拆分 Excel 多行文本到多行
  • React 第五十一节 Router中useOutletContext的使用详解及注意事项
  • 【前端并发请求控制:必要性与实现策略】
  • web攻防之SSTI 注入漏洞
  • web第九次课后作业--SpringBoot基于mybatis实现对数据库的操作
  • JavaScript 数据处理 - 数值转不同进制的字符串(数值转十进制字符串、数值转二进制字符串、数值转八进制字符串、数值转十六进制字符串)
  • 学习资料搜集-ARMv8 cache 操作
  • Go Modules 详解 -《Go语言实战指南》
  • CentOS 7镜像源替换
  • Ntfs!NtfsLookupAllocation函数分析之读取runs的一个例子
  • CentOS 7.9 安装 宝塔面板
  • 阿里云百炼全解析:一站式大模型开发平台的架构与行业实践
  • 【LUT技术专题】图像自适应3DLUT代码讲解
  • 第六章 缓存一致性协议 A Primer on Memory Consistency and Cache Coherence - 2nd Edition
  • c++ algorithm
  • mac下通过anaconda安装Python
  • 机器学习——主成分分析PCA
  • Oracle 用户/权限/角色管理
  • 51c大模型~合集134
  • 二分查找的边界艺术:LeetCode 34 题深度解析
  • Dify-5:Web 前端架构
  • 登录的写法,routerHook具体配置,流程
  • 算法/机理模型演示平台搭建(二)——算法接口部署(FastApi)
  • 帝可得 - 策略管理
  • uniapp开发使用vue3组合式api,实现从vue模块中自动导入
  • 简单transformer运用