随笔分类 -  pytorch基础

摘要:训练的数据集: 含有数据集的:链接:https://pan.baidu.com/s/1u8N_yRnxrNoIMc4aP55rcQ 提取码:6wfe 不含数据集的:链接:https://pan.baidu.com/s/1BNVj2XSajJx8u1ZlKadnmw 提取码:xrng model.py 阅读全文
posted @ 2022-10-31 20:04 赵家小伙儿 阅读(100) 评论(0) 推荐(0) 编辑
摘要:1. Pytorch的nn.DataParallel 参考:https://zhuanlan.zhihu.com/p/102697821 阅读全文
posted @ 2020-10-14 17:14 赵家小伙儿 阅读(350) 评论(0) 推荐(0) 编辑
摘要:1 import torch 2 import torchvision 3 import torch.nn as nn 4 import torch.utils.data as Data 5 import matplotlib.pyplot as plt 6 from torch.autograd 阅读全文
posted @ 2020-10-14 14:52 赵家小伙儿 阅读(188) 评论(0) 推荐(0) 编辑
摘要:前面几节的网络骨架, 如VGGNet和ResNet等, 虽从各个角度出发提升了物体检测性能, 但究其根本是为ImageNet的图像分类任务而设计的。 而图像分类与物体检测两个任务天然存在着落差, 分类任务侧重全图的特征提取, 深层的特征图分辨率很低; 而物体检测需要定位出物体位置, 特征图分辨率不宜 阅读全文
posted @ 2020-09-27 19:53 赵家小伙儿 阅读(433) 评论(0) 推荐(0) 编辑
摘要:为了增强语义性, 传统的物体检测模型通常只在深度卷积网络的最后一个特征图上进行后续操作, 而这一层对应的下采样率(图像缩小倍数) 通常又比较大, 如16、 32, 造成小物体在特征图上的有效信息较少, 小物体的检测性能会急剧下降, 这个问题也被称为多尺度问题. 解决多尺度问题的关键在于如何提取多尺度 阅读全文
posted @ 2020-09-25 20:00 赵家小伙儿 阅读(424) 评论(0) 推荐(0) 编辑
摘要:上一节的ResNet通过前层与后层的“短路连接”(Shortcuts) , 加强了前后层之间的信息流通, 在一定程度上缓解了梯度消失现象, 从而可以将神经网络搭建得很深。 更进一步, 本节的主角DenseNet最大化了这种前后层信息交流, 通过建立前面所有层与后面层的密集连接, 实现了特征在通道维度 阅读全文
posted @ 2020-09-23 20:50 赵家小伙儿 阅读(856) 评论(0) 推荐(0) 编辑
摘要:VGGNet与Inception出现后, 学者们将卷积网络不断加深以寻求更优越的性能, 然而随着网络的加深, 网络却越发难以训练, 一方面会产生梯度消失现象; 另一方面越深的网络返回的梯度相关性会越来越差,接近于白噪声, 导致梯度更新也接近于随机扰动。 ResNet(Residual Network 阅读全文
posted @ 2020-09-22 19:05 赵家小伙儿 阅读(454) 评论(0) 推荐(0) 编辑
摘要:一般来说, 增加网络的深度与宽度可以提升网络的性能, 但是这样做也会带来参数量的大幅度增加, 同时较深的网络需要较多的数据, 否则容易产生过拟合现象。 除此之外, 增加神经网络的深度容易带来梯度消失的现象。 在2014年的ImageNet大赛上, 获得冠军的Inception v1(又名GoogLe 阅读全文
posted @ 2020-09-17 20:18 赵家小伙儿 阅读(281) 评论(0) 推荐(0) 编辑
摘要:1. 走向深度:VGGNet 随着AlexNet在2012年ImageNet大赛上大放异彩后, 卷积网络进入了飞速的发展阶段, 而2014年的ImageNet亚军结构VGGNet(Visual Geometry Group Network) 则将卷积网络进行了改良, 探索了网络深度与性能的关系, 用 阅读全文
posted @ 2020-09-15 18:17 赵家小伙儿 阅读(304) 评论(0) 推荐(0) 编辑
摘要:1. 深入理解感受野 感受野(Receptive Field) 是指特征图上的某个点能看到的输入图像的区域, 即特征图上的点是由输入图像中感受野大小区域的计算得到的。 举个简单的例子, 如图3.10所示为一个三层卷积网络, 每一层的卷积核为3×3, 步长为1, 可以看到第一层对应的感受野是3×3, 阅读全文
posted @ 2020-09-14 19:57 赵家小伙儿 阅读(830) 评论(0) 推荐(1) 编辑
摘要:1. 池化层 在卷积网络中, 通常会在卷积层之间增加池化(Pooling) 层, 以降低特征图的参数量, 提升计算速度, 增加感受野, 是一种降采样操作。池化是一种较强的先验, 可以使模型更关注全局特征而非局部出现的位置, 这种降维的过程可以保留一些重要的特征信息, 提升容错能力, 并且还能在一定程 阅读全文
posted @ 2020-09-14 19:32 赵家小伙儿 阅读(7578) 评论(1) 推荐(2) 编辑
摘要:神经网络如果仅仅是由线性的卷积运算堆叠组成, 则其无法形成复杂的表达空间, 也就很难提取出高语义的信息, 因此还需要加入非线性的映射, 又称为激活函数, 可以逼近任意的非线性函数, 以提升整个神经网络的表达能力。 在物体检测任务中, 常用的激活函数有Sigmoid、ReLU及Softmax函数。 1 阅读全文
posted @ 2020-09-11 19:05 赵家小伙儿 阅读(462) 评论(0) 推荐(0) 编辑
摘要:当前的物体检测算法虽然各不相同, 但第一步通常是利用卷积神经网络处理输入图像, 生成深层的特征图, 然后再利用各种算法完成区域生成与损失计算, 这部分卷积神经网络是整个检测算法的“骨架”, 也被称为Backbone。 Backbone是物体检测技术的基础, 其中也涌现出了多种经典的结构, 如VGGN 阅读全文
posted @ 2020-09-11 18:43 赵家小伙儿 阅读(609) 评论(0) 推荐(0) 编辑
摘要:数据对于深度学习而言是至关重要的, 丰富、 完整、 规范的数据集往往能训练出效果更佳的网络模型。 本节将首先介绍当前较为主流的公开数据集, 然后从数据的加载、 数据的GPU加速、 数据的可视化3个方面介绍PyTorch的使用方法。 1. 主流公开数据集 深度学习能够取得快速发展的一个原因是建立在大量 阅读全文
posted @ 2020-09-10 20:41 赵家小伙儿 阅读(234) 评论(0) 推荐(0) 编辑
摘要:模型是神经网络训练优化后得到的成果, 包含了神经网络骨架及学习得到的参数。 PyTorch对于模型的处理提供了丰富的工具, 本节将从模型的生成、 预训练模型的加载和模型保存3个方面进行介绍。 1. 网络模型库: torchvision.models 对于深度学习, torchvision.model 阅读全文
posted @ 2020-09-09 20:21 赵家小伙儿 阅读(169) 评论(0) 推荐(0) 编辑
摘要:在上述介绍中, nn.Module模块提供了网络骨架, nn.functional提供了各式各样的损失函数, 而Autograd又自动实现了求导与反向传播机制, 这时还缺少一个如何进行模型优化、 加速收敛的模块, nn.optim应运而生。 nn.optim中包含了各种常见的优化算法, 包括随机梯度 阅读全文
posted @ 2020-09-09 20:02 赵家小伙儿 阅读(416) 评论(0) 推荐(0) 编辑
摘要:在深度学习中, 损失反映模型最后预测结果与实际真值之间的差距, 可以用来分析训练过程的好坏、 模型是否收敛等, 例如均方损失、交叉熵损失等。 在PyTorch中, 损失函数可以看做是网络的某一层而放到模型定义中, 但在实际使用时更偏向于作为功能函数而放到前向传播过程中。 PyTorch在torch. 阅读全文
posted @ 2020-09-09 19:14 赵家小伙儿 阅读(180) 评论(0) 推荐(0) 编辑
摘要:torch.autograd库虽然实现了自动求导与梯度反向传播, 但如果我们要完成一个模型的训练, 仍需要手写参数的自动更新、 训练过程的控制等, 还是不够便利。 为此, PyTorch进一步提供了集成度更高的模块化接口torch.nn, 该接口构建于Autograd之上, 提供了网络模组、 优化器 阅读全文
posted @ 2020-09-08 18:38 赵家小伙儿 阅读(227) 评论(0) 推荐(0) 编辑
摘要:基本数据Tensor可以保证完成前向传播, 想要完成神经网络的训练, 接下来还需要进行反向传播与梯度更新, 而PyTorch提供了自动求导机制autograd, 将前向传播的计算记录成计算图, 自动完成求导。在PyTorch 0.4版本之前, Tensor仅仅是对多维数组的抽象, 使用自动求导机制需 阅读全文
posted @ 2020-09-02 19:47 赵家小伙儿 阅读(243) 评论(0) 推荐(0) 编辑
摘要:1. 索引操作与NumPy非常类似, 主要包含下标索引、 表达式索引、 使用torch.where()与Tensor.clamp()的选择性索引。 1 import torch 2 3 a = torch.Tensor([[0,1],[2,3]]) 4 print(a, a.size()) 5 >> 阅读全文
posted @ 2020-09-01 19:19 赵家小伙儿 阅读(592) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示