09 2020 档案
摘要:参考:https://www.cnblogs.com/darkknightzh/p/12000809.html
阅读全文
摘要:1. 针对KNN回归算法,挑选了3500张无漏定位的面单条码样本,计算全局灰度均值、全局Ostu值作为样本的训练特征,以之前(c++)统计样本面单明暗度特征分布统计,定位面单时的算法(C++)确定的最佳分割阈值作为标签(已验证,可准确定位面单区域);3000张作为训练样本,500张作为测试样本,统计
阅读全文
摘要:前面几节的网络骨架, 如VGGNet和ResNet等, 虽从各个角度出发提升了物体检测性能, 但究其根本是为ImageNet的图像分类任务而设计的。 而图像分类与物体检测两个任务天然存在着落差, 分类任务侧重全图的特征提取, 深层的特征图分辨率很低; 而物体检测需要定位出物体位置, 特征图分辨率不宜
阅读全文
摘要:为了增强语义性, 传统的物体检测模型通常只在深度卷积网络的最后一个特征图上进行后续操作, 而这一层对应的下采样率(图像缩小倍数) 通常又比较大, 如16、 32, 造成小物体在特征图上的有效信息较少, 小物体的检测性能会急剧下降, 这个问题也被称为多尺度问题. 解决多尺度问题的关键在于如何提取多尺度
阅读全文
摘要:1. 漏定位的面单样本训练+测试统计 人工标注面单最佳分割阈值表 线性回归模型 表1-2 注: 1)100个人工标注的样本训练,每个样本包含4个特征(依次:原样本灰度图的灰度均值和全局Otsu值,强光修复后灰度图像的灰度均值及全局Otsu值); 2)测试的数据是从训练样本中随机挑选的5组样本,目的是
阅读全文
摘要:上一节的ResNet通过前层与后层的“短路连接”(Shortcuts) , 加强了前后层之间的信息流通, 在一定程度上缓解了梯度消失现象, 从而可以将神经网络搭建得很深。 更进一步, 本节的主角DenseNet最大化了这种前后层信息交流, 通过建立前面所有层与后面层的密集连接, 实现了特征在通道维度
阅读全文
摘要:1. VGGNet网络结构的改进点总结: 1)使用了更小的3*3卷积核,和更深的网络。两个3*3卷积核的堆叠相对于5*5卷积核的视野,三个3*3卷积核的堆叠相当于7*7卷积核的视野。这样一方面可以有更少的参数(3个堆叠的3*3结构只有7*7结构参数数量的(3*3*3)/(7*7)=55%);另一方面
阅读全文
摘要:VGGNet与Inception出现后, 学者们将卷积网络不断加深以寻求更优越的性能, 然而随着网络的加深, 网络却越发难以训练, 一方面会产生梯度消失现象; 另一方面越深的网络返回的梯度相关性会越来越差,接近于白噪声, 导致梯度更新也接近于随机扰动。 ResNet(Residual Network
阅读全文
摘要:一般来说, 增加网络的深度与宽度可以提升网络的性能, 但是这样做也会带来参数量的大幅度增加, 同时较深的网络需要较多的数据, 否则容易产生过拟合现象。 除此之外, 增加神经网络的深度容易带来梯度消失的现象。 在2014年的ImageNet大赛上, 获得冠军的Inception v1(又名GoogLe
阅读全文
摘要:delivery_analyze.csv文件中提供了4个输入数据,一个标签数据; 1 49.986721,50,48.862217,49,34 2 23.480339,63,22.087894,23,45 3 47.97068,121,38.859943,44,74 4 61.894985,117,
阅读全文
摘要:参考: https://blog.csdn.net/shareviews/article/details/83040730
阅读全文
摘要:1. 走向深度:VGGNet 随着AlexNet在2012年ImageNet大赛上大放异彩后, 卷积网络进入了飞速的发展阶段, 而2014年的ImageNet亚军结构VGGNet(Visual Geometry Group Network) 则将卷积网络进行了改良, 探索了网络深度与性能的关系, 用
阅读全文
摘要:1. 深入理解感受野 感受野(Receptive Field) 是指特征图上的某个点能看到的输入图像的区域, 即特征图上的点是由输入图像中感受野大小区域的计算得到的。 举个简单的例子, 如图3.10所示为一个三层卷积网络, 每一层的卷积核为3×3, 步长为1, 可以看到第一层对应的感受野是3×3,
阅读全文
摘要:1. 池化层 在卷积网络中, 通常会在卷积层之间增加池化(Pooling) 层, 以降低特征图的参数量, 提升计算速度, 增加感受野, 是一种降采样操作。池化是一种较强的先验, 可以使模型更关注全局特征而非局部出现的位置, 这种降维的过程可以保留一些重要的特征信息, 提升容错能力, 并且还能在一定程
阅读全文
摘要:神经网络如果仅仅是由线性的卷积运算堆叠组成, 则其无法形成复杂的表达空间, 也就很难提取出高语义的信息, 因此还需要加入非线性的映射, 又称为激活函数, 可以逼近任意的非线性函数, 以提升整个神经网络的表达能力。 在物体检测任务中, 常用的激活函数有Sigmoid、ReLU及Softmax函数。 1
阅读全文
摘要:当前的物体检测算法虽然各不相同, 但第一步通常是利用卷积神经网络处理输入图像, 生成深层的特征图, 然后再利用各种算法完成区域生成与损失计算, 这部分卷积神经网络是整个检测算法的“骨架”, 也被称为Backbone。 Backbone是物体检测技术的基础, 其中也涌现出了多种经典的结构, 如VGGN
阅读全文
摘要:数据对于深度学习而言是至关重要的, 丰富、 完整、 规范的数据集往往能训练出效果更佳的网络模型。 本节将首先介绍当前较为主流的公开数据集, 然后从数据的加载、 数据的GPU加速、 数据的可视化3个方面介绍PyTorch的使用方法。 1. 主流公开数据集 深度学习能够取得快速发展的一个原因是建立在大量
阅读全文
摘要:参考:https://blog.csdn.net/haitaobiyao/article/details/106438397 参考:https://blog.csdn.net/DD_PP_JJ/article/details/102960704
阅读全文
摘要:模型是神经网络训练优化后得到的成果, 包含了神经网络骨架及学习得到的参数。 PyTorch对于模型的处理提供了丰富的工具, 本节将从模型的生成、 预训练模型的加载和模型保存3个方面进行介绍。 1. 网络模型库: torchvision.models 对于深度学习, torchvision.model
阅读全文
摘要:在上述介绍中, nn.Module模块提供了网络骨架, nn.functional提供了各式各样的损失函数, 而Autograd又自动实现了求导与反向传播机制, 这时还缺少一个如何进行模型优化、 加速收敛的模块, nn.optim应运而生。 nn.optim中包含了各种常见的优化算法, 包括随机梯度
阅读全文
摘要:在深度学习中, 损失反映模型最后预测结果与实际真值之间的差距, 可以用来分析训练过程的好坏、 模型是否收敛等, 例如均方损失、交叉熵损失等。 在PyTorch中, 损失函数可以看做是网络的某一层而放到模型定义中, 但在实际使用时更偏向于作为功能函数而放到前向传播过程中。 PyTorch在torch.
阅读全文
摘要:--Xshell1. 删除非空文件夹以及子目录下全部内容:rm -rf 目录名字;2. 创建文件夹:mkdir 文件名;3. 复制文件夹dir1到文件夹dir2:cp -r dir1 dir2;4. 删除文件:rm 文件名;5. 执行文件:vi 文件名.cc6. 查看当前的文件所在目录:pwd7.
阅读全文
摘要:torch.autograd库虽然实现了自动求导与梯度反向传播, 但如果我们要完成一个模型的训练, 仍需要手写参数的自动更新、 训练过程的控制等, 还是不够便利。 为此, PyTorch进一步提供了集成度更高的模块化接口torch.nn, 该接口构建于Autograd之上, 提供了网络模组、 优化器
阅读全文
摘要:基本数据Tensor可以保证完成前向传播, 想要完成神经网络的训练, 接下来还需要进行反向传播与梯度更新, 而PyTorch提供了自动求导机制autograd, 将前向传播的计算记录成计算图, 自动完成求导。在PyTorch 0.4版本之前, Tensor仅仅是对多维数组的抽象, 使用自动求导机制需
阅读全文
摘要:1. 索引操作与NumPy非常类似, 主要包含下标索引、 表达式索引、 使用torch.where()与Tensor.clamp()的选择性索引。 1 import torch 2 3 a = torch.Tensor([[0,1],[2,3]]) 4 print(a, a.size()) 5 >>
阅读全文
摘要:Tensor在使用时可以有不同的数据类型, 如表2.1所示, 官方给出了7种CPU Tensor类型与8种GPU Tensor类型, 在使用时可以根据网络模型所需的精度与显存容量, 合理地选取。 16位半精度浮点是专为GPU上运行的模型设计的, 以尽可能地节省GPU显存占用, 但这种节省显存空间的方
阅读全文
摘要:Tensor的创建与维度查看 1 import torch 2 import numpy as np 3 4 # 最基础的Tensor()函数创建方法, 参数为Tensor的每一维大小 5 a = torch.Tensor(2,2) 6 print(a) 7 >> tensor([[1.0965e-
阅读全文
摘要:Tensor的组合与分块 组合操作是指将不同的Tensor叠加起来, 主要有torch.cat()和torch.stack()两个函数。 cat即concatenate的意思, 是指沿着已有的数据的某一维度进行拼接, 操作后数据的总维数不变, 在进行拼接时, 除了拼接的维度之外, 其他维度必须相同。
阅读全文