![](https://img-blog.csdnimg.cn/5609e76959a34829a80b2cd1d308d4cc.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
动手学深度学习(计算机视觉篇)
文章平均质量分 59
动手学深度学习pytorch版,计算机视觉基础
computer_vision_chen
个人简介:计算机视觉研究生,富士康深圳总部师三级别软件工程师。热爱编程,中医。努力提高计算机视觉算法,C++开发,嵌入式,立志成为嵌入式人工智能应用工程师。
展开
-
机器学习,深度学习,计算机视觉博客目录
CeleA是香港中文大学的开放数据,包含10177个名人身份的202599张图片,并且都做好了特征标记,这个数据集对人脸相关的训练来说是非常好用的数据集。原创 2024-01-10 11:47:59 · 623 阅读 · 0 评论 -
深度学习在训练时更新和保存最佳训练结果的方法(字典方法,本地保存方法,模型深拷贝方法)
copy模块可以用来创建一个对象的深拷贝。这意味着复制后的模型和原始模型是完全独立的,包括它们的参数。# 假设我们有一个模型实例nn.ReLU(),# 复制模型。原创 2023-12-04 18:22:27 · 1089 阅读 · 0 评论 -
深度学习数据集的划分代码解读(加载kaggle的dog数据,多gpu训练加载参数)待更新
取出一部分图片,这些图片属于训练的类。这部分数据集的图片属于的类,没有参与训练。原创 2023-12-03 18:07:56 · 550 阅读 · 0 评论 -
知识蒸馏测试,总结,项目代码(教师模型和学生模型分别是Resnet101和Resnet18,数据集ImageNet中的Dog Breed Identification数据集)
说明当学生网络和教师网络训练准确率相差不多时,要给hard_loss权重大一点。原创 2023-12-02 10:54:25 · 827 阅读 · 2 评论 -
深度学习训练模型时将每个epoch的结果输出到log文件中(涉及知识点loguru包的使用)
loguru是一个功能强大、简单易用的日志库,它提供了一种简单的方式来记录日志。原创 2023-12-01 11:25:56 · 858 阅读 · 0 评论 -
知识蒸馏代码实现(内容:知识蒸馏模型识别MNIST手写数字体,自定义MLP网络做为教师和学生网络,训练结果保存在log文件中,不同蒸馏损失计算方法得到的结果对比)
里面有12种最新的知识蒸馏算法。原创 2023-11-30 22:03:57 · 1917 阅读 · 0 评论 -
deepsort算法 & 卡尔曼滤波 & 匈牙利算法
目标追踪最核心的两个算法就是卡尔曼滤波和匈牙利算法算法。原创 2023-10-30 21:17:07 · 479 阅读 · 0 评论 -
yolo-nas使用教程
【代码】yolo-nas使用教程。原创 2023-10-28 15:43:25 · 315 阅读 · 0 评论 -
深度学习模型笔记(涉及知识点:保存和加载模型参数,当模型使用了nn.DataParallel时正确的加载方法,通用训练函数)
【代码】kaggle CIFAR-10图像分类笔记。原创 2023-10-25 15:59:31 · 528 阅读 · 0 评论 -
CV面试知识点总结
同时使用时性能降低。原创 2023-10-01 19:54:14 · 344 阅读 · 0 评论 -
目标检测中生成锚框函数详解
将设一张图片,宽和高为2,2。原创 2023-09-12 10:23:33 · 423 阅读 · 0 评论 -
13.10 语义分割 & 全卷积网络
语义分割是对图像的每个像素分类全卷积网络采用卷积神经网络实现从图像像素到像素类别的转换,全卷积网络将中间层特征的高和宽转换回输入图像的尺寸(引入转置卷积实现的)。最终的类别预测与输入图像在像素上一一对应。原创 2023-08-29 23:30:25 · 152 阅读 · 0 评论 -
详解转置卷积 & 代码实现
对卷积层下采样得到的特征图进行转置卷积可以得到与输入图像相同的图像,可以应用于语义分割。代入公式验证输出形状。原创 2023-08-29 10:52:32 · 249 阅读 · 0 评论 -
python二维索引转一维索引 & 多维索引转一维索引
原博客地址:https://blog.csdn.net/qq_42424677/article/details/123011642。原创 2023-08-28 09:05:47 · 191 阅读 · 0 评论 -
AttributeError: module ‘torchvision.io.image‘ has no attribute ‘ImageReadMode‘
【代码】AttributeError: module ‘torchvision.io.image‘ has no attribute ‘ImageReadMode‘原创 2023-08-26 10:01:27 · 358 阅读 · 0 评论 -
python将png格式的图片转换为jpg格式的图片
RGBA图像,具有4个通道(红色、绿色、蓝色和透明度),用于表示彩色图像以及透明度信息。只是简单的修改后缀,并不能将png格式图片改为jpg格式。原创 2023-08-25 22:03:34 · 1686 阅读 · 0 评论 -
激活函数总结
其中,a是一个小于1的常数,通常取0.01。当输入x大于0时,输出与输入相同;当输入x小于0时,输出为a乘以输入x的值。Leaky ReLU在输入小于0时会返回一个较小的负数,以保持一定的导数,使得信息可以继续向后传播。ReLU函数在输入大于0时返回输入值,否则返回0。原创 2023-08-25 08:27:08 · 102 阅读 · 0 评论 -
13.4 目标检测锚框标注 & 非极大值抑制
假设原图的高为,宽为。原创 2023-08-24 20:40:37 · 1125 阅读 · 0 评论 -
感受野解释 & 公式 & 例子
原创 2023-08-21 11:28:16 · 37 阅读 · 0 评论 -
13.3 目标检测和边界框
假设原图的高为,宽为。原创 2023-08-12 12:07:14 · 1089 阅读 · 0 评论 -
13.1.2 对CIFAR-10数据集使用图像增广来训练ResNet
ToTensor的作用是将导入的图片转换为Tensor的格式,1.导入的图片为PIL image 或者 numpy.nadrry格式的图片,其shape为(HxWxC)数值范围在[0,255],转换之后shape为(CxHxw)2.数值范围在[0,1],方法是直接 每个元素/255**Normalize()**作用是将图片在每个通道上做标准化处理,即将每个通道上的特征减去均值,再除以方差。这行代码的作用是将神经网络模型(net)包装成一个并行模型,以便在多个原创 2023-08-11 11:30:28 · 293 阅读 · 0 评论 -
13.1.1 翻转裁减,改变颜色,结合多种图像增广方法进行图像增广
示例中,我们随机更改图像的亮度,随机值为原始图像的 50%(1 − 0.5)到150%(1 + 0.5)之间。另一种增广方法是改变颜色。我们可以改变图像颜色的四个方面:亮度、对比度、饱和度和色调。原创 2023-08-11 10:29:42 · 141 阅读 · 0 评论 -
7.7 通俗易懂详解稠密连接网络DenseNet & 手撕稠密连接网络DenseNet
对于每一层,使用前面所有层的特征映射作为输入,并且其自身的特征映射作为所有后续层的输入。DenseNet的优点: 缓解了消失梯度问题,加强了特征传播,鼓励特征重用,并大大减少了参数的数量,改进了整个网络的信息流和梯度,这使得它们易于训练(这点与ResNet差不多)。原创 2023-08-10 17:28:45 · 412 阅读 · 0 评论 -
7.6 通俗易懂解读残差网络ResNet & 手撕ResNet
假设你正在学习如何骑自行车,并且想要骑到一个遥远的目的地。你可以选择,也可以选择在途中设置几个“”,每个中转站都会告诉你如何朝着目的地前进。在中,就好比只能选择。当你的时,可能会出现的情况,因为网络在训练过程中无法有效地传递信息,导致或。而ResNet则是在途中设置多个**“残差块”中转站**。每个残差块相当于一个中转站。原创 2023-08-10 14:38:27 · 564 阅读 · 0 评论 -
7.5 详解批量规范化 & 对某个维度取平均值代码解读
归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。比如有一个很重要的性质:线性变换不会改变原始数据的数值排序。原创 2023-08-09 17:22:07 · 578 阅读 · 0 评论 -
7.4 并行连接网路GoogLeNet
best_test_acc : .3f } ') # 取的好像是平均准备率 print(f' {best_test_acc : .3f } ') # 取的好像是平均准备率 print(f' {.3fbest_test_acc : .3f } ') # 取的好像是平均准备率 print(f' {best_test_acc : .3f } ') # 取的好像是平均准备率 print(f' {.3fbest_test_acc : .3f } ') # 取的好像是平均准备率 print(f' {原创 2023-08-09 16:08:55 · 172 阅读 · 0 评论 -
7.3 详解NiN模型--首次使用多层感知机(1x1卷积核)替换掉全连接层的模型
AlexNet和VGG对LeNet的改进在于如何扩大和加深这两个模块。他们都使用了全连接层,使用全连接层就可能完全放弃表征的空间结构。NiN放弃了使用全连接层,而是在每个像素的通道上分别使用多层感知机(相当于1x1卷积层)相当于将空间维度中的每个像素视为单个样本,将通道维度视为不用特征。:由一个输入层,一个或多个隐藏层和一个输出层组成。(至少有一个隐藏层,即至少3层):是MLP的一种特殊情况,每个节点都与前一层的所有节点连接,全连接层可以解决线性可分问题,无法学习到非线性特征。原创 2023-08-09 09:17:13 · 1382 阅读 · 0 评论 -
7.2 手撕VGG11模型 & 使用Fashion_mnist数据训练VGG
与AlexNet,LeNet一样,VGG网络可以分为两部分,第一部分主要由卷积层和汇聚层组成,第二部分由全连接层组成。VGG有5个卷积块,前两个块包含一个卷积层,后三个块包含两个卷积层。2 * 1 + 3 * 2 = 8个卷积层和后面3个全连接层,所以它被称为VGG11。原创 2023-08-08 21:02:24 · 691 阅读 · 0 评论 -
7.1 动手实现AlexNet
AlexNet引入了dropput层。原创 2023-08-08 11:28:08 · 566 阅读 · 0 评论 -
4.6 Dropout(暂退法)缓解过拟合详解
在前向传播过程中,计算每⼀内部层的同时注⼊噪声,这种方法被称为暂退法(dropout)。原创 2023-08-08 09:25:35 · 387 阅读 · 0 评论 -
sigmoid & ReLU 等激活函数总结
1.sigmoid有梯度消失问题:当sigmoid的输出非常接近0或者1时,区域的梯度几乎为0,而ReLU在正区间的梯度总为1。如果Sigmoid没有正确初始化,它可能在正区间得到几乎为0的梯度。使模型无法有效训练。2.sigmoid需要复杂的求幂运算。原创 2023-08-07 21:39:47 · 1173 阅读 · 0 评论 -
6.6 实现卷积神经网络LeNet训练并预测手写体数字
补充:isinstance(net,nn.Module)isinstance(net,nn.Module)是Python的内置函数,用于判断一个对象是否属于制定类或其子类的实例。如果net是nn.Module类或子类的实例,那么表达式返回True,否则返回False. nn.Module是pytorch中用于构建神经网络模型的基类,其他神经网络都会继承它,因此使用 isinstance(net,nn.Module),可以确定Net对象是否为一个有效的神经网络模型。 是一个用于初始化权重的函数,采用的是原创 2023-08-07 13:12:42 · 758 阅读 · 0 评论 -
6.5 池化层
是什么:池化层跟卷积层类似有个滑动窗口,用来取一个区域内的最大值或者平均值。卷积神经网络的最后的部分应该要看到整个图像的全局,通过池化(汇聚)操作,逐渐汇聚要取的像素,最终实现学习全局表示的目标。同时,卷积层的所有优势也被保留在了中间层。1.降低卷积层读对位置的敏感性2.降低对空间降采样表示的敏感性。3.池化层的输入通道和输出通道相同,如X的形状为[1,2,4,4],1代表样本数,第二个值:2,代表通道为2,所以输出的结果通道仍然为2,输出结果应该为[1,2,计算后的w,计算后的H]原创 2023-08-06 19:41:56 · 1295 阅读 · 0 评论 -
6.4.3 1x1卷积层
特点:1x1卷积层相当于全连接层作用:1x1卷积用于调整网络层的通道数量和控制模型复杂度输入形状:(通道,行,列) = (3,3,3)卷积核形状:(输出通道,输入通道,行,列) = (2,3,1,1)输出形状:(通道,行,列) = (2,3,3)原创 2023-08-06 13:50:08 · 192 阅读 · 0 评论 -
6.4 (通俗易懂)可视化详解多通道 & 多通道输入输出卷积代码实现
torch.Size([2,2]) 相当于 torch.Size([1,2,2]),是一通道的2x2矩阵。原创 2023-08-06 10:26:29 · 254 阅读 · 0 评论 -
6.3 填充和步幅 & 卷积层的输出形状公式
为了防止丢失边缘像素。如240240的像素图像,经过10层55卷积,图片变成了200*200。最常用的方法是填充0。假设填充p行(上面填充p/2行,下面填充p/2行),p列。相当于输出的高度和宽度直接增加p行和p列4.应用:使输入和输出具有相同的形状设置。原创 2023-08-06 02:31:24 · 244 阅读 · 0 评论 -
6.2 (课后题)转置输入矩阵和转置卷积核得到的结果
【代码】6.2(课后题)转置输入矩阵和转置卷积核得到的结果。原创 2023-08-06 00:50:18 · 69 阅读 · 0 评论 -
6.2 手写卷积类
【代码】6.2 手写卷积类。原创 2023-08-05 13:50:46 · 79 阅读 · 0 评论 -
6.1 手撕卷积操作
【代码】6.1 手撕卷积操作。原创 2023-08-05 13:16:12 · 151 阅读 · 0 评论