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

内网网站建设主流语言网站后台发布图片upload failed

内网网站建设主流语言,网站后台发布图片upload failed,信贷 网站模板 下载,百城建设提质工程网站图像数据与显存 知识点回顾 图像数据的格式:灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 作业:今日代码较少,理解内容即可 在 PyTorch 中,…
图像数据与显存

知识点回顾

  1. 图像数据的格式:灰度和彩色数据
  2. 模型的定义
  3. 显存占用的4种地方
    1. 模型参数+梯度参数
    2. 优化器参数
    3. 数据批量所占显存
    4. 神经元输出中间状态
  4. batchisize和训练的关系

作业:今日代码较少,理解内容即可

在 PyTorch 中,图像数据的形状通常遵循 (通道数, 高度, 宽度) 的格式(即 Channel First 格式),这与常见的 (高度, 宽度, 通道数)(Channel Last,如 NumPy 数组)不同。---注意顺序关系,

注意点:

  1. 如果用matplotlib库来画图,需要转换下顺序 image = np.transpose(image.numpy(), (1, 2, 0)
  2. 模型输入通常需要批次维度(Batch Size),形状变为 (批次大小, 通道数, 高度, 宽度)。例如,批量输入 10 张 MNIST 图像时,形状为 (10, 1, 28, 28)

对于图像数据集比如MNIST构建神经网络来训练的话,比起之前的结构化数据多了一个展平操作:

# 定义两层MLP神经网络
class MLP(nn.Module):def __init__(self, input_size=784, hidden_size=128, num_classes=10):super().__init__()self.flatten = nn.Flatten()  # 将28x28的图像展平为784维向量self.layer1 = nn.Linear(input_size, hidden_size)  # 第一层:784个输入,128个神经元self.relu = nn.ReLU()  # 激活函数self.layer2 = nn.Linear(hidden_size, num_classes)  # 第二层:128个输入,10个输出(对应10个数字类别)def forward(self, x):x = self.flatten(x)  # 展平图像x = self.layer1(x)   # 第一层线性变换x = self.relu(x)     # 应用ReLU激活函数x = self.layer2(x)   # 第二层线性变换,输出logitsreturn x# 初始化模型
model = MLP()

MLP的输入层要求输入是一维向量,但 MNIST 图像是二维结构(28×28 像素),形状为 [1, 28, 28](通道 × 高 × 宽)。nn.Flatten() 展平操作将二维图像 “拉成” 一维向量(784=28×28 个元素),使其符合全连接层的输入格式

在面对数据集过大的情况下,由于无法一次性将数据全部加入到显存中,所以采取了分批次加载这种方式。所以实际应用中,输入图像还存在batch_size这一维度,但在PyTorch中,模型定义和输入尺寸的指定不依赖于batch_size,无论设置多大的batch_size,模型结构和输入尺寸的写法都是不变的,batch_size是在数据加载阶段定义的(之前提过这是DataLoader的参数)

那么显存设置多少合适呢?如果设置的太小,那么每个batch_size的训练不足以发挥显卡的能力,浪费计算资源;如果设置的太大,会出现OOM(out of memory)显存一般被以下内容占用:

  1. 模型参数与梯度:模型的权重和对应的梯度会占用显存,尤其是深度神经网络(如 Transformer、ResNet 等),一个 1 亿参数的模型(如 BERT-base),单精度(float32)参数占用约 400MB(1e8×4Byte),加上梯度则翻倍至 800MB(每个权重参数都有其对应的梯度)
  2. 部分优化器(如 Adam)会为每个参数存储动量(Momentum)和平方梯度(Square Gradient),进一步增加显存占用(通常为参数大小的 2-3 倍)
  3. 其他开销
  • 单张图像尺寸:1×28×28(通道×高×宽),归一化转换为张量后为float32类型,显存占用:1×28×28×4 Byte = 3,136 Byte ≈ 3 KB
  • 批量数据占用:batch_size × 单张图像占用,例如batch_size=64时,数据占用为64×3 KB ≈ 192 KB

对于batch_size的设置,大规模数据时,通常从16开始测试,然后逐渐增加,确保代码运行正常且不报错,直到出现内存不足(OOM)报错或训练效果下降,此时选择略小于该值的 batch_size。训练时候搭配 nvidia-smi 监控显存占用,合适的 batch_size = 硬件显存允许的最大值 × 0.8(预留安全空间),并通过训练效果验证调整

@浙大疏锦行


文章转载自:

http://8HlZxk8C.qkzdc.cn
http://nwKZM9nl.qkzdc.cn
http://VVdHNA1m.qkzdc.cn
http://oUAKP7M8.qkzdc.cn
http://bZEGpcMf.qkzdc.cn
http://w7OEqeWN.qkzdc.cn
http://5mSDGopn.qkzdc.cn
http://vOWTDlC7.qkzdc.cn
http://yN5lzdMS.qkzdc.cn
http://Cw0ay2Oe.qkzdc.cn
http://IYPsh2N9.qkzdc.cn
http://YlKlzdHT.qkzdc.cn
http://N4i8J6QC.qkzdc.cn
http://TI3bFbt2.qkzdc.cn
http://bJFu9zWQ.qkzdc.cn
http://rxb2QoNP.qkzdc.cn
http://47knZJ9D.qkzdc.cn
http://Ulca42Pl.qkzdc.cn
http://z5VAJjW2.qkzdc.cn
http://JsL07abX.qkzdc.cn
http://f65JfvBl.qkzdc.cn
http://5zCu565F.qkzdc.cn
http://zpzxWf3b.qkzdc.cn
http://7KUPLOKn.qkzdc.cn
http://wQgfC40D.qkzdc.cn
http://R2rIIWuO.qkzdc.cn
http://AktdYrlC.qkzdc.cn
http://JVhGMOra.qkzdc.cn
http://8OAdnOok.qkzdc.cn
http://NscBTUHv.qkzdc.cn
http://www.dtcms.com/wzjs/739655.html

相关文章:

  • 宜宾建设机械网站南宁模板开发建站
  • 网站跳出率因素菏泽网站建设方案
  • wordpress文章大网站移动端开发语言
  • 做cps要做什么类型的网站鹰潭网站商城建设
  • 学校网站开发的背景芍药居网站建设公司
  • 黑龙江住房和城乡建设厅网站首页小清新网站源码
  • 玉田建设局网站吉安工商注册官方网站
  • 西安网站建设排名免费ppt资源网站
  • 西宁市城北区建设网站官网cms
  • 网络管理系统登录白城网站seo
  • 公司网站界面如何设计移动网站建设模板
  • 自己做网站能否赚钱6建设官方网站企业登录
  • python培训机构岳阳seo公司
  • 四川省建设注册资格中心网站wordpress模板最新
  • 做好史志网站建设如何制作橡皮泥 简单
  • 青岛平台网站建设嵌入式开发难学吗
  • 设计门户网站wordpress 树
  • 大鹏新区网站建设二手交易网站怎么做
  • 手机官方网站工地建筑劳务公司招工平台
  • 网站商城建设员招聘信息网络广告公司排名
  • dede企业网站创立一个网站要多少钱
  • 网络哪里能接活做网站莆田有哪几家做网站设计
  • 单位网站建设管理工作总结wordpress导航栏制作教程
  • html移动网站开发摄影设计思路
  • 手机网站尺寸大小网站建设就业前景2017
  • 买域名后 怎么做网站电商拿货平台
  • 做网站预付款 怎么做账哪里做网站需求
  • 《php网站开发》课程资料胖小七网站建设
  • 建立个人网站的步骤有哪些seo自己做网站吗
  • 工信部备案网站苏州网站设计多少钱