python
文章平均质量分 56
活塞君
这个作者很懒,什么都没留下…
展开
-
python 统计文件夹下关键字出现位置
自己整的一个 统计小程序功能如下:给定几个关键字找出这些关键字在文件夹下的具体位置并输出import osimport xlrdimport loggingimport sysimport xlwtpath ='.\\data'def get_filelist(dir): Filelist = [] for home, dirs, files in os.walk(path): for filename in files: # 文件原创 2021-11-19 15:12:36 · 999 阅读 · 0 评论 -
快速上手-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 评论 -
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 评论 -
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 评论 -
vscode中使用python无法import自定义包以及路径、相对路径等问题
自定义包导入问题需要手动配置自定义包的路径首先是手动额外lib地址使用ctr+shift+p 打开工作区设置,加入python.analysis.extraPaths:[]在后面填上自定义包的地址就性了自定义包的自动补全问题一样 手动添加自动补全的额外路径不过是在settings里配置的 和上面那个有点不一样使用jupyer的绝对地址不一样,所以尽量使用相对路径#使用下面代码获取当前文件路径地址os.path.dirname(__file__)#'c:\\PYTHONCODE\\'原创 2021-09-07 10:28:53 · 6641 阅读 · 1 评论 -
【快速上手】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 评论 -
快速上手-使用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 评论 -
利用人工智能玩智龙迷城,神魔之塔,转珠游戏(三)白话说明强化学习中的特征工程,奖励工程
什么是特征工程?一句话:把特征转换为输入但是单纯的转换不满足我们的需求,要根据实际需要来比如要判断身高能否通过一个门,我们选取的特征就是身高的标量如果只是把身高的分类(高,矮)作为评价标准,那只需要onehot就行了(比如高就变成:高:1 矮:0)当然 上述两种方法都可以被接纳,因为深度学习就是从特征中学习,但是通过对特征预处理,可以有效降低噪音影响(就是让模型少学些无关东西,人为过滤掉无用的特征)顺带一提标准的特征工程包含以下几大类:时间戳处理、离散型变量处理、特征提取、分区、交叉特征、特征选原创 2021-07-23 10:56:11 · 602 阅读 · 1 评论 -
【小技巧】使用多进程加速强化学习训练速度
在我们训练网络的时候,会出现GPU显存占用不满的情况想最大化利用gpu加速训练可以从以下两个方向入手:使用多进程分别训练权重网络,然后再平均权重网络使用多进程获取环境参数,再交给主进程更新权重网络为什么是多进程(Multiprocessing)python底层是基于C的伪多线程,说是多线程实际上是挂了一个全局锁的单线程。加了一些线程切换反而会变慢,这时候需要用多进程去加速多进程使用上和多线程差不多import multiprocessing as mp mp1 = mp.Pro原创 2021-07-20 14:59:56 · 3059 阅读 · 6 评论 -
利用人工智能玩智龙迷城,神魔之塔,转珠游戏(二)DQN
前言我们知道了使用q-learning可以解决延迟奖励问题,但是还是有一个问题,他的表格太大了所以我们使用神经网络来代替q表格,就是DQN啦DQN我们先设定一堆超参数(实际上跑一遍代码就知道他们分别有什么作用了):# 超参数BATCH_SIZE = 8 #一次抽8个batch训练LR = 0.005 # learning rateEPSILON = 0.9 # 就是0.1的几率瞎选GAMMA = 0.原创 2021-07-16 13:57:58 · 668 阅读 · 4 评论 -
使用python联动redmine做新建、更新等操作
这个redmine有个redminelib很多玩意写的都不全不过还是挺好用的先去整一个redminelib然后登陆就行了:def __init__(self): try: config = configparser.ConfigParser() config.read("password.conf", encoding="utf-8") #readmine账号密码原创 2021-07-09 17:43:13 · 1624 阅读 · 0 评论 -
使用python(restAPI)登录salesforce并进行数据联动,select,update
salesforce提供两种登录方式,一种oath2.0,一种标准session登录后者简单,就说后者吧先拿账号密码去登录拿个token,后续操作加这个token就行了##登录拿tokendef SessionIdloginSalesforce(self): payload = { 'grant_type' : 'password', 'client_id' : self.clientId, 'client_se原创 2021-07-09 17:30:14 · 860 阅读 · 0 评论 -
python打包可执行文件exe方法
装两个依赖,然后新建一个setup.py文件,然后跑:from distutils.core import setupimport py2exe#执行方式:python setup.py py2exe setup(console=['e:\主文件.py'])原创 2021-07-09 17:08:59 · 58 阅读 · 0 评论