读书笔记5

1 基础知识

1)torchvision

独立于pytorch,专门用来处理图像,通常用于计算机视觉领域。

torchvision主要包含三部分:

models:提供深度学习中各种经典的网络结构以及预训练好的模型,例如VGG、ResNet等。

datasets:提供常用的数据集,包括MNIST、CIFAR10/100等。

transforms:数据预处理操作,主要包括对Tensor以及PIL Image对象的操作。

2)卷积神经网络

卷积神经网络(Convolutional Neural Networks,简称CNN)是一种监督学习的神经网络,主要是通过一个个的过滤器,不断提取特征,从局部的特征到总体的特征,从而进行图像识别。CNN的基本结构由输入层、隐藏层、输出层构成。其中隐藏层又包括卷积层、池化层、全连接层。

3)卷积计算

一种有效提取图像特征的方法,一般用一个正方形的卷积核,按照指定步长,在输入特征图上滑动,卷积核会与输入特征图出现重合区域,重合区域对应元素相乘、求和再加上偏置项,得到输出特征的一个像素点。执行卷积计算时,卷积核里的参数是固定的,在每次反向传播时,这些参数会被梯度下降法更新。卷积是利用立体卷积核实现了参数的空间共享。图像卷积可以实现很多不同的效果,例如模糊、边缘提取、浮雕等。

4)nn.Conv2d( )

nn.Conv2d()PyTorch中用于卷积操作的方法。

torch.nn.Conv2d(in_channelsout_channelskernel_sizestride=1padding=0dilation=1groups=1bias=Truepadding_mode='zeros'device=Nonedtype=None)
参数介绍

  • in_channels:输入数据的通道数。
  • out_channels:输出数据的通道数,也就是卷积核的数量。
  • kernel_size:卷积核的大小。可以是单一的整数(如 3),表示卷积核的高度和宽度都是 3;也可以是一个元组(如 (3, 3)),分别表示卷积核的高度和宽度。
  • stride:卷积核滑动的步长,默认是 1。
  • padding:在输入数据的边缘填充的零的层数,这通常用于控制输出数据的大小,默认是 0。
  • bias:是否添加偏置项,默认是 True。

5)nn.MaxPool2d( )

最大池化,池化处理也叫作降采样处理,是对不同位置的特征进行聚合统计。通常是取对应位置的最大值(最大池化)、平均值(平均池化)等。

池化的优点:降维、克服过拟合、在图像识别领域,池化还能提供平移、旋转不变性。

torch.nn.MaxPool2d(kernel_sizestride=Nonepadding=0dilation=1return_indices=Falseceil_mode=False)
参数介绍

  • kernel_size:池化窗口的大小。
  • stride:池化操作的步长。
  • padding:在输入数据的边缘填充的零的层数,用来控制输出数据的大小,默认是 0。
  • dilation:控制池化窗口中元素之间的间距,默认是 1。
  • ceil_mode:当设置为 True 时,将使用向上取整来计算输出形状,默认是 False。

6)nn.Linear( )

nn.Linear是 PyTorch 中用于创建全连接层,输入经过卷积层、激活函数和池化层等操作后,得到的输出是卷积网络学习到的,关于原始数据的高级特征。全连接层是特征提取到分类的桥梁,它将学到的特征表示映射到样本的标记空间。神经网络的隐含层可以自动学习数据的特征。在全连接神经网络中,隐含层中的每个节点与它前面一层的所有节点相连接,能最大程度保留输入数据中的所有信息,不会漏掉每个维度贡献的信息。

torch.nn.Linear(in_featuresout_featuresbias=Truedevice=Nonedtype=None)

参数介绍

  • in_features:输入数据的特征数,即输入张量的第一个维度的大小。
  • out_features:输出数据的特征数,即输出张量的第二个维度的大小。
  • bias:布尔值,表示是否要为此层添加偏置项,默认为 True。
  • device:设备对象,表示该层应该在哪个设备上计算(例如 CPU 或 GPU),默认为 None,表示使用与输入数据相同的设备。
  • dtype:输出数据的期望数据类型,默认为 None,表示使用与输入数据相同的数据类型。

7)torch.max(inputs, dim)

在PyTorch中,torch.max() 用于计算张量 inputs 在指定维度 dim 上的最大值。当 dim 设置为1(即第二维,索引从0开始)时,该函数会返回每一行的最大值以及对应的最大值的索引。

_, predicted:忽略第一个返回值,只保留第二个返回值。这些索引通常用于分类任务中,表示模型对每个类别的预测概率最高的那个类别的索引。

2 多标签分类部分评估指标:

1)平均准确率torchvision

当所有标记均预测正确时,准确率为1。评估过于严格,导致指标偏低。

:表示类别标签,-1或1

2)汉明损失Hamming loss

衡量预测标记与样本实际标记之间不一致程度的指标。它关注的是那些具有标记的样本未能被正确识别的情况。汉明损失 = (预测为正的实际为负的样本数 + 预测为负的实际为正的样本数) / 总样本数。汉明损失越小,说明模型预测的准确性越高。

N :是样本的数量。

 :标签的数量。

 : 第 i 个样本的第 j 个标签的真实值。

: 第 i 个样本的第 j 个标签的预测值。

xor:异或操作,不同为1,相同为0。

3)覆盖率Coverage

N :样本的数量,这里为1

: 标签ln的预测概率,按照所有预测概率从大到小排序的位置,如果样本不包含标签ln ,那么, 会被更新为0。

4)错误率(OneError

N :样本的数量,这里为1

 index funtion,即统计满足括号里的条件的次数。

5)排序损失(RankingLoss)

:样本包含的标签集

:样本 不包含的标签集

6)平均精确率(AveragePrecision)

3 多标签图像分类器

多标签图像分类涉及将图像分配到多个标签或类别中,适用于处理复杂的场景和多主题图像。

思路:

设计卷积神经网络,首先从训练集中取出样本,输入网络,经过逐级变换,传送到输出层,计算输出层和样本标签之间的差,反向传播误差,采用梯度下降法更新权值,最小化损失,反复迭代,在网络收敛,并达到预期精度结束训练。

过程:

 

 核心代码:

运行结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值