自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 Llama模型结构解析(源码阅读)

llama模型结构源码解析

2023-08-29 09:58:58 10004 7

原创 LoRA指令微调——源码解析

(本次博文的LoRA代码主要基于lit-llama工程)

2023-07-13 10:29:40 3279 5

原创 deepstream指北——python接口的使用

由于我们使用的是deepstream的6.1.1版本,我们进入deepstream_python_apps目录,并切换到tag1.1.4版本,(注意deepstream版本要跟deepstream_python_apps对应的工程版本对应,否则可能会出错)(下一步工作:尝试用 deepstream + 自己的模型yolov5模型 构建整个视频应用)2023年07月06日 屏幕视频 22时11分56秒。

2023-07-06 22:45:58 682 1

原创 基于LLAMA-7B的lora中文指令微调

由于原始llama-7b指令的vocab_size为32000,而下载的中文llama-7b的词典大小为49953,需要对其进行修改。转换完毕后,在刚才设置的输出路径,会得到lit-llama.pth文件(26G),在上一级目录有tokenizer.model文件。切换到lit-llama的工程,修改scripts/convert_hf_checkpoint.py,修改路径,2)pretrained_path:转换之后的中文lit-llama.pth路径。4)out_dir:保存lora权重文件的路径。

2023-07-03 09:26:33 3301 10

原创 快速训练自己的大语言模型:基于LLAMA-7B的lora指令微调

直接打开链接 https://raw.githubusercontent.com/tloen/alpaca-lora/main/alpaca_data_cleaned_archive.json,然后全选页面复制,再保存到新建的文件里。这里我们要基于LLAMA-7B做指令微调,所以要先下载模型权重,并作一系列转换。可以看到,经过指令微调之后,模型已经可以正常回答我们的问题了。(当然,这里可能会遇到网络问题,安装不了lightning)ps:其他细节可以参考工程的README,写的很清楚~

2023-06-27 12:58:57 12571 37

原创 deepstream指北——安装配置篇

(所有的安装步骤都可以参考官方的教程:https://docs.nvidia.com/metropolis/deepstream/6.1.1/dev-guide/text/DS_Quickstart.html)解决方法参考:https://blog.csdn.net/weixin_44120025/article/details/129795572。切换到:/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app。

2023-06-18 16:13:26 1625 9

原创 论文笔记与实战:对比学习方法MOCO

论文笔记与实战:MOCO对比学习方法

2023-06-10 15:09:57 2736 4

原创 一种非极大值抑制(non_max_suppression, nms)的代码实现方式

非极大值抑制的实现

2022-07-20 01:19:40 1165 1

原创 python保存h264格式视频(linux和windows)

python保存h264格式视频(linux和windows)

2022-06-28 09:16:32 5480 1

原创 Pytorch模型加密的方法

目录一、难点和原理二、代码三、整体代码四、硬件绑定一、难点和原理对一个文件进行加密或者解密其实有很多种方法,难点主要在于,得到加密文件之后,如何在程序运行时进行解密,而不是先解密再运行程序,这相当于没加密。(脱裤子放屁的感觉。。。)对于pytorch框架,我们进入torch.load里面查看代码,如下图所示:pytorch是可以读取 io.BytesIO 类型的数据的,因此,可以有如下的加密和解密过程:加密过程我们可以将读取的模型先保存成 io.BytesIO的格式;再把io.By

2022-04-24 21:05:10 11235 27

原创 手写深度学习——numpy实现卷积层

numpy实现卷积层

2022-04-04 21:55:10 2990

原创 python打印日志,同时保存在文件(解决log重复打印问题)

python的log日志,打印在终端同时保存在文件,解决重复打印问题

2022-04-02 10:05:44 1834 2

原创 关于yolov5训练输出的混淆矩阵与终端输出的不一致问题

目录1. 问题2. 原因2.1 混淆矩阵绘制2.2 终端指标的计算(太长不看系列)结论:混淆矩阵的值是根据检测框和标注框根据一定的IOU计算的,终端指标的输出是找到最大的f1 score所对应的精确率p和召回率r,所以会不一致。1. 问题之前有同事问,怎么yolov5训练绘制的混淆矩阵,跟终端输出的对不上。(之前我也没注意这个问题)这里以训练烟雾、火焰两个类别为例,输出的混淆矩阵如下所示:而终端的输出截图如下所示:对比两张图可以发现,在混淆矩阵中,fire和smoke类别的灵敏度(数值上等

2022-03-13 17:30:25 9404 21

原创 opencv在图像上绘制直线或指定区域

opencv在图像上绘制直线或指定区域

2022-02-28 10:04:19 6427

原创 faiss的python接口使用

faiss的python接口使用1. 简介2. 安装3. 示例1. 简介faiss是一种ann(Approximate Nearest Neighbor)库,可以用于特征的入库,检索。不仅可以在cpu上使用,还可以利用GPU进行检索,提高检索的速度。具体可以参考:https://github.com/facebookresearch/faiss2. 安装cpu版本,适用于各个系统pip install faiss-cpucpu + gpu版本,目前不适用于windows系统pip ins

2021-08-10 11:22:54 9288

原创 YOLO数据格式说明与转换

YOLO数据格式说明与转换1. YOLO数据格式说明2. 代码1. YOLO数据格式说明yolo标注格式保存在.txt文件中,一共5个数据,用空格隔开,举例说明如下图所示:假设图像的高和宽分别为h, w,bbox的左上角坐标为(x1, y2),右下角坐标为(x2, y2),则可求得bbox中心坐标(x_c, y_c)为:x_c = x1 + (x2 - x1)/2 = (x1 + x2)/2y_c = y1 + (y2 - y1)/2 = (y1 + y2)/2假设yolo的5个数据分别为

2021-07-09 10:57:13 27448 1

原创 flask接收数据流(图像文件、视频文件)的几种方式

flask接收数据流(图像文件、视频文件)的几种方式1. 接收上传的图像文件2. 接收上传的视频文件1. 接收上传的图像文件flask的接口定义如下,接收单张图像,返回检测结果。@app.route('/detect', methods=['POST'])def detect_api(): try: file = request.files.get("file") if file is not None: detections = de

2021-06-10 10:29:14 9630 10

原创 Flask部署深度学习模型的一个例子

Flask部署深度学习模型的一个例子一. Flask二. postman工具一. Flask工程一共包括三个文件:用于测试的图片1.jpgindex_to_name.py定义了一个字典,键是预测类label,值是对应的class_name,如下图所示:主要代码文件app.pyfrom index_to_name import img_class_mapimport torchvision.models as modelsimport torchvision.transf

2021-05-19 18:45:49 1504 3

原创 多目标跟踪算法SORT

目录一. 目标检测简介1.1 目标检测1.2 IOU指标二. 目标跟踪简介三. 卡尔曼滤波器3.1 什么是卡尔曼滤波器3.2 具体计算过程3.3 换个角度看四. 匈牙利算法五. SORT一. 目标检测简介给定一张图像,找出我们需要的类别位置,并给定一个检测框,检测框一般包含位置坐标,检测框置信度,每个类别的分数。1.1 目标检测1.2 IOU指标IOU指标就是Intersection Over Union,也叫交并比。如上图所示,红色框表示groundTruth,蓝色框和绿色框是两个检测框

2021-04-16 11:40:11 5365 1

原创 yolov5导入模型出现ModuleNotFoundError: No module named ‘models‘

目录一. 问题二. 解决方案三. 总结一. 问题现有文件目录如下所示:现在在这层目录下导入模型:import torchmodel = torch.load('yolov5/yolov5s.pt')出现问题:二. 解决方案在导入模型前,把yolov5的路径insert到sys.pathimport torchimport syssys.path.insert(0, './yolov5')model = torch.load('yolov5/yolov5s.pt')可以成功导

2021-04-09 09:01:54 15191 1

原创 opencv把一系列图像保存为视频、一系列图像保存为gif

目录一. 图像转为视频二. 读取摄像头一. 图像转为视频import cv2import ossave_name = 'demo.avi'fourcc = cv2.VideoWriter_fourcc(*'DIVX')fps = 30width = 1920height = 1080out = cv2.VideoWriter(save_name, fourcc, fps, (width, height))img_dir = r'D:\data\2DMOT2015\test\ADL-R

2021-04-08 15:57:51 2490 1

原创 结合源码和demo例子去理解kalman滤波器

目录一. 简介二. OpenCV里的kalman-filter三. 一个例子:kalman.py四. 总结与需要注意的点一. 简介它是啥?卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,**对系统状态进行最优估计的算法。**由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。(来自百度百科)能干嘛?一句话:适用于估计一个动态系统的最优状态。(单单看这一句可能有些抽象,后面主要结合代码进行说明)怎么实现?直接

2021-04-06 18:01:32 500

原创 pytorch实现分类遇到的一些问题

目录一. 利用torchsummary打印模型结构二. 模型定义结尾要不要接入softmax?三. 训练时计算loss为什么要乘以batch_size?一. 利用torchsummary打印模型结构安装torchsummarypip install torchsummary代码如下:import torch.nn as nnimport torch.nn.functional as Ffrom torchsummary import summaryclass Net(nn.Mo

2021-03-24 18:21:03 683

原创 faster-rcnn中RPN网络的anchor实现:numpy和pytorch版本

目录一.pytorch版本二. numpy实现三. 总结一.pytorch版本pytorch版本为1.7.1sizes和aspect_ratio设置如下代码所示:from torchvision.models.detection.rpn import AnchorGeneratoranchor_generator = AnchorGenerator(sizes=((32, 64, 128),), aspect_ratio

2021-03-08 22:08:22 437 2

原创 python命令行参数:sys、argparse模块

python命令行参数:sys、argparse模块一. sys二. argparser三. 总结一. sys假设有一个函数文件为test.py,内容为:import sysa = sys.argv[0]b = sys.argv[1]print(a) # test.pyprint(b) # 1000运行python test.py 1000,可以发现sys.argv[0]就是test.py本身,sys.argv[1]就是传入的第一个命令行参数1000,注意这里的1000是str类型

2021-03-06 21:20:23 352 1

原创 python的浅拷贝和深拷贝

python的浅拷贝和深拷贝前言一. 赋值、浅拷贝、深拷贝1.1 赋值1.2 浅拷贝1.3 深拷贝二. 总结前言面试时被遇到的问题,这里作个总结。一. 赋值、浅拷贝、深拷贝1.1 赋值赋值是引用指向。如下图所示,a改变,b也跟着改变。示意图如下所示:1.2 浅拷贝浅拷贝用到copy模块的copy.copy()。浅拷贝只拷贝最外层数据,对里层的数据只是引用指向。上图表示,被拷贝的数据a只有一层数据,b拷贝了最外层,a改变,但是b不改变。上图表示,a包含多层数据,b只拷贝了最外层数

2021-03-04 13:33:56 116 1

原创 神经网络的参数优化器(optimizer)

神经网络的参数优化器(optimizer)前言一. optimizer的优化过程二. 几种optimizer2.1 SGD2.2 SGDM2.3 Adagrad2.4 RMSProp2.5 Adam三. 总结前言在B站上看到一个介绍tensorflow2.0的系列视频,由北京大学的曹健讲解,讲得很好,这篇文章也主要是贴一下其中一节内容,地址在这:戳我一. optimizer的优化过程二. 几种optimizer2.1 SGD2.2 SGDM2.3 Adagrad2.4 RMSProp

2021-03-02 13:02:02 1101

原创 L1、L2正则化

L1、L2正则化一. 关于过拟合、欠拟合二. L1、L2正则化2.1 L1正则化2.2 L2正则化三. 总结一. 关于过拟合、欠拟合参考资料:https://www.bilibili.com/video/BV1B7411L7Qt?p=13过拟合、欠拟合问题是机器学习中非常常见的问题,特别是对于深度神经网络来说,经常出现过拟合的问题。欠拟合:模型不能有效拟合数据集,对现有数据集学习不够彻底。解决办法:增加输入特征项增加网络参数减少正则化参数过拟合:模型对当前数据拟合过好,但是对于新的

2021-02-24 13:51:20 264

原创 目标检测简单笔记之YOLOV2

目标检测简单笔记之YOLOV2一. YOLOV2简介二级目录2.1 Batch Normalization2.2 High Resolution Classifier2.3 Convolutional With Anchor Boxes2.4 Dimension Clusters2.5 Direct location prediction2.6 Fine-Grained Features2.7 Multi-Scale Training2.8 darknet-192.9 其他三. 总结一. YOLOV2简介

2020-12-14 21:16:49 134 1

原创 MobileNet-V1

写目录一. 简介二. 模型结构2.1 正常卷积操作2.2 深度可分离卷积三. 总结一. 简介论文地址:mobilenet-v1二. 模型结构mobilenet提出了一种叫做Depthwise separable convolution的卷积结构,翻译过来即 深度可分离卷积。那跟平时的卷积有什么区别呢。首先看下原来正常的卷积结构。2.1 正常卷积操作假设现在有:input channel: Noutput channel: Mkernel size: k那么正常的参数量为:N* M*

2020-12-09 15:36:40 126

原创 目标检测简单笔记之YOLOV1

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2020-09-29 13:32:01 452

原创 Python利用fitz库提取pdf中的图片(针对多种类型pdf)

目录一. 安装fitz二. pdf文件格式问题2.1 pdf文件存在多种格式2.2 分析问题三. 代码一. 安装fitz安装:需要安装fitz和PyMuPDF,否则会报如下错误:ModuleNotFoundError: No module named ‘frontend’pip install fitz PyMuPDF二. pdf文件格式问题2.1 pdf文件存在多种格式pdf文件的格式有好几种,用Adobe Acrobat比较正常的如下所示:这种类型的pdf文件可以比较正常地提取里面的图片

2020-09-23 09:41:30 24294 5

原创 图像处理之边缘检测:Sobel、Scharr、Laplacian、Canny

目录一. Sobel二. Canny一. Sobel1. 简介Sobel算子利用一个横轴方向的算子和纵轴方向的算子,分别求得图像的梯度,再加权求和。横轴方向的算子为:纵轴方向的算子为:(注意:这里正负号在左边还是邮编并无影响,因为最后计算的时候会取左右或者上下之差的绝对值)2. 举例说明假设现在有输入,如下所示:以a13点为例,横轴方向计算:可得:Gx = | (a9 - a7) +(a14 - a12) +(a19 - 1a17) |纵轴方向计算:2. 代码im

2020-08-13 11:26:38 1839

原创 图像处理之常用插值方法:最近邻、双线性、双三次插值

目录一. 最近邻插值二. 双线性插值三. 双三次插值假设现在有:原图像src,大小为MxN,坐标记为(x, y);目标图像dst,大小为PxQ,坐标记为(i, j);一. 最近邻插值1. 最近邻插值:将变换后的图像中的原像素点最邻近像素的灰度值赋给原像素点的方法。(百度百科的解释)2. 理解:其实就是根据坐标的变换,找出目标图像中的坐标 对应于 原图像中的坐标,再把原图像中坐标位置的值 填到 目标图像坐标中的值。3. 转换公式:根据原图像和目标图像的尺寸,可得:P/M = i/x,Q

2020-08-11 16:38:40 6504 5

原创 图像处理之滤波器:均值滤波、中值滤波、高斯滤波

目录一. 均值滤波二. 中值滤波三. 高斯滤波假设,现在有输入:一. 均值滤波代码如下:import cv2import numpy as npx = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=np.float32)x_mean = cv2.blur(x, (3, 3))print(x)print('------------------------')print(x_me

2020-08-10 13:02:37 2426

原创 NLP之简单笔记:LSTM

目录一. LSTM简介二. LSTM的计算过程三. LSTM的参数计算一. LSTM简介LSTM:即Long Short-tem Memory,长短期记忆神经网络,1997年就被提出来了。传统RNN的缺点,只能保留前一时刻的t-1的memory;而LSTM通过增加了3个门(输入门,遗忘门,输出门),来选择保存更多时刻的memory。LSTM结构如下图所示,参考https://apaszke.github.io/lstm-explained.html二. LSTM的计算过程现在有初始状态的输入x

2020-08-05 10:39:58 512

原创 IoU的计算

目录一. IoU介绍二. 计算思路2.1 相交的情况2.2 不相交情况三. 代码一. IoU介绍IoU,即 intersection over Union,就是两个矩形框的交集面积与他们并集面积的比值。IoU也是一种算法性能的指标,例如在语义分割时就会用IoU来衡量分割效果的好坏。举例说明,如下图所示:已知:左边的矩形框假设为N,左上角坐标为(x1, y1), 右下角坐标为(x2, y2);右边的矩形框假设为M,左上角坐标为(a1, a1), 右下角坐标为(a2, a2);相交的矩形框

2020-08-04 14:56:41 10571 3

原创 CrossEntropy的numpy实现和Pytorch调用

目录1. Numpy实现2. Pytorch实现3. nn.CrossEntropy的weight参数1. Numpy实现import torchimport numpy as npfrom torch.nn import functional as F# 定义softmax函数def softmax(x): return np.exp(x) / np.sum(np.exp(x))# 利用numpy计算def cross_entropy_np(x, y): x_soft

2020-07-31 16:08:17 5252 2

原创 语义分割之简单笔记:UNet了解一下

目录一. 简介二.三级目录一. 简介原始论文:《U-Net: Convolutional Networks for Biomedical Image Segmentation》论文地址:https://arxiv.org/abs/1505.04597二.三级目录

2020-07-30 10:36:56 1089

原创 NLP之不简单笔记:啥是BERT

目录1. what is BERT?2. Structure2.1 self-attention2.2 multi-head2.3 Positional encoding and Positional embeddings3. Pre-training and finetune3.1 pre-training3.2 fine-tune4. Example and practise4.1 下载bert的预训练中文模型4.2 single sentence4.3 two sentences4.4 总结1. w

2020-07-22 13:40:37 677 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除