深度学习
文章平均质量分 56
活塞君
这个作者很懒,什么都没留下…
展开
-
快速上手-torchvision和opencv的预处理、图像增强方式
图像增强在深度学习的作用目的就是扩充数据集,opencv和torchvision中的transform只是提供一种手段,防止重复造轮子知道内核后,再去理解图像增强,才能具体情况具体对应torchvision.transform对于简单的图像旋转、拼接等处理可以直接用torchvision.transform下面介绍的功能都是在torchvision.transforms以及torchvision.transforms.functional.下可以用最短的代码达到标准预处理效果torchvisi原创 2021-10-19 13:13:10 · 2967 阅读 · 1 评论 -
pytorch源码解析系列-yolov5最核心技巧代码详解(1)-网络框架(对比v4)
yoloV5v5和v4没有很大的创新型改进,但是改进了很多tricks,这些tricks都是当前目标检测中比较流行或者有用的,而且高集成度让目标检测更加容易了!Yolov5模型先看理论知识,不然直接看代码会一头蒙v5对比v4出了4个基础模型,分别对应4个大小:s(mall),m(ediam),l(arge),x(吃我大X)实际上就是对几个关键位置加了深度,如果你看了前面yolov4的网络源码,你就会很清楚知道区别。偷张大白的图:可以看到前面backbone是不是有v4的影子,先别急,我们先原创 2021-09-26 18:04:52 · 1077 阅读 · 0 评论 -
pytorch源码解析系列-yolov4最核心技巧代码详解(5)- 其他tricks-CBN,SAT等
yolov4的pytorch源码我没有找到上述tricks的对应code只能去搜罗相似的代码了,yolo5如果有源码的话我今后会补充进来我觉得贴源码没什么意思,我就大白话说下这个是干啥的,有兴趣自己看下我贴的源码就好CBNCBN就是所谓的Cross-iterationBatchNormCBN就是batchNorm是对一批batch数据做归一化的,如果batch很小(比如目标检测任务中,图片太大加上GPU的限制,一般batch都设定的很小),BN的效果就不太好针对这个问题,提出的解决方案,就是每原创 2021-09-26 14:21:36 · 232 阅读 · 0 评论 -
pytorch源码解析系列-yolov4最核心技巧代码详解(3)- 数据处理以及图像增强
输入是啥?现在 我们知道了yolo的模型,知道了模型获取的推理输出,在进入训练代码之前,我们需要了解到yolo数据的处理方式,以及用了何种图像增强方法。(不然连输入是啥都不知道,你怎么看的懂训练过程呢)数据载入其实数据载入这块没有必要单独拿出来说的,但是学会如何写collate function是很重要的我们先看下数据源## 如果你多进程报错 num_workers要改成1 大部分CPU训练机器都会出这个问题## batchsize = batch // subdivisions 所以你就知道超原创 2021-09-26 12:53:30 · 638 阅读 · 2 评论 -
pytorch源码解析系列-yolov4最核心技巧代码详解(4)- 训练过程
补一下源码地址我们先从简单的开始说起,怎么判断loss?IOU(交并比)IOUyolov4用了CIOU_loss 和DIOU_LOSS简单说一下,有个具体了解,都是从左到右发展来的IOUGIOUDIOUCIOU作用主要考虑检测框和目标框重叠面积在IOU的基础上,解决边界框不重合时的问题在IOU和GIOU的基础上,考虑边界框中心点距离的信息在DIOU的基础上,考虑边界框宽高比的尺度信息具体实现交并比加了一个尺度相交(两个矩形外接最大矩形)GIOU+欧式距原创 2021-09-24 16:56:52 · 631 阅读 · 0 评论 -
pytorch源码解析系列-yolov4最核心技巧代码详解(2)- Anchorbox 和推理过程
yolo探测法说代码前 简单提一句,you only look once(yolo)这个英文名 是对标滑动窗口探测滑动窗口要看好几次,yolo只要看一次,因为yolo的特殊标注方式可以将目标检测问题简化为单步回归问题yolo的标签是:P:物体存在与否(置信度)xyxxyy:坐标和长宽c 类别置信度)Px,y,w,hc物体存在与否(置信度)坐标和长宽类别置信度所以一个类别(c=1) 的话 一个标签就有6个值,有多少个格子 多少个anchorbox(yolo一般是3原创 2021-09-24 13:23:43 · 765 阅读 · 0 评论 -
pytorch源码解析系列-yolov4最核心技巧代码详解(1)-网络结构
yoloV4关于YOLOV1-3自行参考百度,本文只用代码展现YOLOV4中核心部分实现方式1. CBM CBL以下代码部分参考源码内容,图片参考了江大白的知乎conv+batch+mish(Leaky relu)效果:就是leakly relu的效果,防止梯度为0结果:backbone用了mish,准确率提高了0.3%-0.9%class Conv_Bn_Activation(nn.Module): def __init__(self, in_channels, out_cha原创 2021-09-23 17:44:08 · 1122 阅读 · 0 评论 -
快速部署使用tensorRT加速推理(trt,onnx)
TensorRTnvidia推理框架,原理自行百度跑推理的时候用的两种方式第一种nvidia自家的转换这里拿pytorch做举例,其他的框架差不多torch2trt这里太简单了 我就把官方例子给一下import torchfrom torch2trt import torch2trtfrom torchvision.models.alexnet import alexnet# create some regular pytorch model...model = alexnet(p原创 2021-09-17 11:36:14 · 2699 阅读 · 0 评论 -
pytorch-NMS快速上手
NMS 非极大值抑制理论知识请自行百度 此处只用pytorch快速完成代码虚拟数据import numpy as npimport torchboxes=np.array([[100,100,210,210,0.72], [250,250,420,420,0.8], [220,220,320,330,0.92], [100,100,210,210,0.72], [230,240,325,330,0.81], [220,原创 2021-09-16 13:53:40 · 233 阅读 · 0 评论 -
pytorch统计网络深度与权重大小两种方式(pytorch-summary)
手撸代码keras有个model.summary() 查看网络结构参数pytorch没有一般用print(model)查看网络结构然后自己手写一个方法统计权重参数量def CustomCal(net): res = 0 for i in net: weight = i.weight.shape bias = i.bias.shape tmp=1 for j in weight: tmp *= j原创 2021-09-10 10:33:25 · 783 阅读 · 0 评论 -
pytorchDataLoader中调整数据长度不一致问题(lstm等)
数据长度不一致用pytorch做rnn的时候,如果输入数据不一样长,可以用两种方式解决。一种是自定义collate方法,#自定义collate_fndataloader.DataLoader(dataset,4,True,collate_fn=my_collate)然后里面写数据和标签载入方式即可def my_collate(batch): data = [item[0] for item in batch] target = [item[1] for item in batc原创 2021-09-08 17:58:04 · 6919 阅读 · 0 评论 -
pytorch快速上手-使用自动标注软件Openlabeling和yolov5快速完成目标检测
安装自行github下载:openlabelingyolov5自动标注软件openlabeling实际上就是标注软件里面,给你内嵌一个追踪算法,可以是光流的,也可以是边缘检测的安装的时候记得在里面放个DaSiamRPN(其他也行,自己看readme)DaSiamRPN然后你标注前几张 按P 就能自动标注了,甚至标注完格式什么的都是不用改的直接就用yolov5pytorch版的yolov5集成度很高了基本上就加一个配置yaml就行了data里新建一个你的配置文件,改下path标注数据原创 2021-09-07 10:59:31 · 1616 阅读 · 0 评论 -
pytorch快速上手-几行代码完成人脸识别验证
安装本文注重快速落地,有不懂的另行百度首先安装facenetpip install facenet_pytorch验证数据库构造先用mtcnn提取脸部图片import cv2from facenet_pytorch import MTCNN,InceptionResnetV1resnet=InceptionResnetV1(pretrained='vggface2').eval()mtcnn = MTCNN(keep_all='true') #如果只图片只有一个人 这个true要去掉 然原创 2021-09-07 10:40:36 · 662 阅读 · 0 评论 -
【快速上手】pytorch 使用迁移学习(fine tuning微调),以及使用钩子函数快速计算
迁移学习不多赘述了,不了解你也不会搜到这个文章pytorch中冻结网络方式两种直接在forward方法中使用比如def forward(self,): with torch.no_grad: self.fc1=………………, 这边的网络层是你要冻结的 self.fc2 = ………………,这边的网络是你要训练的第二种就是直接拿着别人的模型改改##先把所有层冻结mymodel = 某某net() #别人的网络for param in mymodel.parameters():原创 2021-09-03 16:25:39 · 256 阅读 · 0 评论 -
快速上手-在pytorch使用tensorboardX可视化
安装不啰嗦先装tensorflow,然后安装同样版本的tensorboardpip install tensorflow2.2.0pip install tensorboard2.2.0导入使用tensorboardX这里用最简单最常用的summary举例,其他的看官方文档就行了from tensorboardX import SummaryWriter然后实例化writer = SummaryWriter() #不填默认在当前目录下建立runs文件,自己填就是指定存储位置然后训练过原创 2021-08-06 15:46:05 · 449 阅读 · 0 评论 -
快速上手-pytorch 使用BN,Drop,权重初始化,mini-batch等方式
简介本文只针对快速上手,BN,Dropout,权重初始化等降低过拟合的方法请自行百度BNbatch norm在init中初始化BN,1d针对一维、二维输入(加上第一维的batchsize 所以最终输入是2-3维)2d、3d同理:self.bn = nn.BatchNorm1d(x特征维度)然后向前传播中加在输入后即可,x = self.bn(x)Dropout和BN一样 初始化: self.dropout = nn.Dropout(p=0.5) #每次训练0.5的概率丢弃使用原创 2021-08-06 14:57:29 · 694 阅读 · 0 评论 -
快速上手-使用ray分布式调参
首先pip安装ray然后导入from ray import tune使用方式tune.run就行了analysis = tune.run( mytrain, config={"lrt": tune.grid_search([0.001, 0.01])},resources_per_trial={"cpu": 2})解释一下传入的config中加载各种超参数,比如这里就是手动写了个学习率的指数标尺你当然可以np.random.uniform(x,y),np.random.rand原创 2021-08-06 13:33:52 · 376 阅读 · 0 评论 -
深度学习训练结果可视化(2d,3d)
先导入matplotimport matplotlib.pyplot as plt就说几个常用的场景:基础的scatter和plot(扎点,划线)'可视化测试预测'fig = plt.figure(figsize=(8,6))plt.scatter(x_train, y_train)plt.scatter(x_test, y_p_test)#plot一样的#plt.plot(x_train, y_train, '-')plt.show()然后scatter升级版用numpy弄一原创 2021-08-03 15:46:20 · 1766 阅读 · 0 评论 -
手把手教你做一个强化学习的环境,用pygame搭建一个可视化训练游戏环境(一)
可视化训练环境强化学习基本上用来学习的开源环境比较多,新手刚入门可以用gym就够了gym是基于pyglet搭建的,但是做不出比较高大上的效果,而且很多地方不如pygamepygamePygame是一组跨平台的Python模块, 用于创建视频游戏安装直接conda 里pip install pygame即可搭建流程(静态部分)先说一下常用的方法,基本上掌握了就可以组一个完善的小游戏首先在项目中导入pygameimport pygamefrom pygame.locals import *原创 2021-07-30 11:58:26 · 4567 阅读 · 9 评论