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

茶叶网站建设的优势淘宝数据分析工具

茶叶网站建设的优势,淘宝数据分析工具,建设工程网站有哪些,上海装修公司排名前三境远知识点 图像数据的格式:灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 作业:今日代码较少,理解内容即可 一、图像数据的介绍 结构化数据(如表…
知识点
  1. 图像数据的格式:灰度和彩色数据
  2. 模型的定义
  3. 显存占用的4种地方
    1. 模型参数+梯度参数
    2. 优化器参数
    3. 数据批量所占显存
    4. 神经元输出中间状态
  4. batchisize和训练的关系

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

一、图像数据的介绍

结构化数据(如表格)的形状通常是 (样本数, 特征数)

图像数据的形状更复杂,需要保留空间信息(高度、宽度、通道),不能直接用一维向量表示。其中,颜色信息往往是最开始输入数据的通道的含义,因为每个颜色可以用红绿蓝三原色表示,因此一般输入数据的通道数是 3。

1.灰度图像

2.彩色图像

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

注意点:

1. 如果用matplotlib库来画图,需要转换下顺序,我们后续介绍

2. 模型输入还需要加入 批次维度(Batch Size),形状变为 (批次大小, 通道数, 高度, 宽度)。例如,批量输入 10 张 MNIST 图像时,形状为 (10, 1, 28, 28)。

二、图像相关神经网络定义

1.黑白图像

# 先归一化,再标准化
transform = transforms.Compose([transforms.ToTensor(),  # 转换为张量并归一化到[0,1]transforms.Normalize((0.1307,), (0.3081,))  # MNIST数据集的均值和标准差,这个值很出名,所以直接使用
])
import matplotlib.pyplot as plt# 2. 加载MNIST数据集,如果没有会自动下载
train_dataset = datasets.MNIST(root='./data',train=True,download=True,transform=transform
)test_dataset = datasets.MNIST(root='./data',train=False,transform=transform
)
# 定义两层MLP神经网络
class MLP(nn.Module):def __init__(self):super(MLP, self).__init__()self.flatten = nn.Flatten()  # 将28x28的图像展平为784维向量self.layer1 = nn.Linear(784, 128)  # 第一层:784个输入,128个神经元self.relu = nn.ReLU()  # 激活函数self.layer2 = nn.Linear(128, 10)  # 第二层: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()device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)  # 将模型移至GPU(如果可用)from torchsummary import summary  # 导入torchsummary库
print("\n模型结构信息:")
summary(model, input_size=(1, 28, 28))  # 输入尺寸为MNIST图像尺寸

 

图像MLP与之前结构化MLP的差异对比

(1)输入图像,需要展平操作

        MLP 的输入层要求输入是一维向量,但 MNIST 图像是二维结构(28×28 像素),形状为 [1, 28, 28](通道 × 高 × 宽)。

        通过nn.Flatten()展平操作,将二维图像 “拉成” 一维向量(784=28×28 个元素),使其符合全连接层的输入格式。其中不定义这个flatten方法,直接在前向传播的过程中用 x = x.view(-1, 28 * 28) 将图像展平为一维向量也可以实现

(2)输入数据的尺寸包含了通道数input_size=(1, 28, 28)

(3)参数的计算

         第一层 layer1(全连接层)

            权重参数:输入维度 × 输出维度 = 784 × 128 = 100,352

            偏置参数:输出维度 = 128

            合计:100,352 + 128 = 100,480

        第二层 layer2(全连接层)

           权重参数:输入维度 × 输出维度 = 128 × 10 = 1,280

            偏置参数:输出维度 = 10

            合计:1,280 + 10 = 1,290

- 总参数:100,480(layer1) + 1,290(layer2) = 101,770

2.彩色图像

class MLP(nn.Module):def __init__(self, input_size=3072, hidden_size=128, num_classes=10):super(MLP, self).__init__()# 展平层:将3×32×32的彩色图像转为一维向量# 输入尺寸计算:3通道 × 32高 × 32宽 = 3072self.flatten = nn.Flatten()# 全连接层self.fc1 = nn.Linear(input_size, hidden_size)  # 第一层self.relu = nn.ReLU()self.fc2 = nn.Linear(hidden_size, num_classes)  # 输出层def forward(self, x):x = self.flatten(x)  # 展平:[batch, 3, 32, 32] → [batch, 3072]x = self.fc1(x)      # 线性变换:[batch, 3072] → [batch, 128]x = self.relu(x)     # 激活函数x = self.fc2(x)      # 输出层:[batch, 128] → [batch, 10]return x# 初始化模型
model = MLP()device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)  # 将模型移至GPU(如果可用)from torchsummary import summary  # 导入torchsummary库
print("\n模型结构信息:")
summary(model, input_size=(3, 32, 32))  # CIFAR-10 彩色图像(3×32×32)

3.batch_size——批次维度

PyTorch 模型会自动处理 batch 维度(即第一维),无论 batch_size 是多少,模型的计算逻辑都不变。

class MLP(nn.Module):def __init__(self):super().__init__()self.flatten = nn.Flatten() # nn.Flatten()会将每个样本的图像展平为 784 维向量,但保留 batch 维度。self.layer1 = nn.Linear(784, 128)self.relu = nn.ReLU()self.layer2 = nn.Linear(128, 10)def forward(self, x):x = self.flatten(x)  # 输入:[batch_size, 1, 28, 28] → [batch_size, 784]x = self.layer1(x)   # [batch_size, 784] → [batch_size, 128]x = self.relu(x)x = self.layer2(x)   # [batch_size, 128] → [batch_size, 10]return x

 三、占用显存的主要部分

1. 模型参数与梯度:模型的权重(Parameters)和对应的梯度(Gradients)会占用显存,尤其是深度神经网络(如 Transformer、ResNet 等),一个 1 亿参数的模型(如 BERT-base),单精度(float32)参数占用约 400MB(1e8×4Byte),加上梯度则翻倍至 800MB(每个权重参数都有其对应的梯度)

2. 优化器:部分优化器(如 Adam)会为每个参数存储动量(Momentum)和平方梯度(Square Gradient),进一步增加显存占用(通常为参数大小的 2-3 倍)

3. 其他开销:数据批次、前向或反向传播过程中的中间变量

http://www.dtcms.com/wzjs/515935.html

相关文章:

  • 广西水利工程建设管理网站抖音广告投放代理商
  • wordpress主题 工作室seo薪资
  • 从零开始做网站推广产品最好的方式
  • 北京城乡建设学校网站网络广告营销案例
  • wordpress 独立图片服务器专业搜索引擎seo技术公司
  • 怎样让网站显示网站建设中关键词分为哪三类
  • 网络绿化网站建设哪家专业宁波网络建站模板
  • 如何做亚马逊国外网站seo厂商
  • 微信分享的h5网站开发百度营销登录入口
  • 网站推广哪个平台好百度联盟点击广告赚钱
  • 家装设计师网站seo优化轻松seo优化排名
  • 郑州建站公司网站郑州网络运营培训
  • 建基建设集团网站搜索引擎营销的基本方法
  • 无锡网站设计哪里靠谱自己怎么制作网页
  • 无锡网络公司网站建设关键词推广是什么
  • wordpress汉字seo网站优化培训要多少钱
  • wordpress 搜索报错优化推广服务
  • 设计型网站案例下载百度app最新版到桌面
  • 成都网络优化托管公司十大seo公司
  • 集约化模式建设党政机关网站如何进行搜索引擎的优化
  • 微信怎么做链接网站简述seo的基本步骤
  • wordpress 登录页美化短视频搜索seo
  • 丰台b2c网站制作价格推广策划书模板范文
  • 网站建设现在什么服务器比较好十堰seo
  • 网站建设数据库系统各大网站排名
  • 常州快速建站模板抖音营销
  • 苏州优化亚当上海搜索引擎优化公司排名
  • 网站建设年终总结bing搜索引擎国内版
  • 网站建设年终总结怎么写网站免费下载安装
  • 天津做网站贵吗百度浏览器下载