自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (3)
  • 收藏
  • 关注

原创 CV方向经典及前沿文献链接(持续更新)

图像分类(Classification)LeNet http://yann.lecun.com/exdb/lenet/index.htmlAlexNet http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdfVGGNet https://arxiv.org/abs/1409.1556GoogLeNet, Inceptionv1(Going deeper

2022-01-20 13:13:34 1810

原创 kaldi 详细安装教程、PyTorch-Kaldi、TIMIT下载、Librispeech下载

本kaldi 安装教程 转载于该链接首先先从github上直接克隆kaldi的仓库下来,网不好的话建议下载最新的压缩包然后直接解压。然后自行下面的命令安装Intel MKL不出意外的话这里应该是提示安装成功使用以下命令检查依赖,如果提示那依赖就没问题了。之后运行。

2024-02-26 16:15:54 951 1

原创 nn.TransformerEncoder的输出为NaN值的原因及解决方法

由于我们在使用MultiheadAttention做self-attention时因为batch内序列长度不一致,难免需要使用mask。原因在于src_padding_mask的传入出现均为0/False的情况!以pytorch自带的torch.nn.TransformerEncoder方法为例,其forward函数如下。的forward函数的attn_mask参数,而这里做的是一个self attention。解决方法:避免attention mask中存在全1/True的行。这里的mask会送到。

2023-11-29 21:57:58 1124 1

原创 PEFT学习:使用LORA进行LLM微调

由于LORA,AdaLORA都集成在PEFT上了,所以在使用的时候安装PEFT是必备项。

2023-09-05 19:56:02 744

原创 服务器安装 anaconda & conda: command not found [解决方案] & bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案

在终端输入conda info --envs查看anaconda是否安装成功,发现报错:conda: command not found。显示以下信息即为安装成功。,直到出现提示要输入。

2023-08-30 10:43:28 2008 1

原创 NLP领域的知识体系构建及成长之路

由于以后可能会接触到大模型相关的知识,所以现在想迫切的构建一下自己的知识体系,之前也只是对于CV领域比较熟悉,CNN、MLP以及一点点RNN的知识,但是当前最重要的确实是过于疏忽了,希望通过自己的努力,尽快把这些知识补齐,不至于落下太多。当然,这篇博客的出发点不仅仅是做一些知识的积累,也还是希望能够构建一些相关领域的知识体系,以及上手一些代码,实现更快的成长。

2023-06-12 19:43:30 704

原创 Stable Diffusion Web UI + Anaconda环境 + 本地Windows系统部署

这里博主机器的cuda 是11.1版本,但按照之前的经验,在ananconda中安装cuda11.3是可以向下兼容的,原因其实很简单,anaconda可以做到环境隔离,即在创建好的环境中进行安装,不会影响其他程序或者模型的使用。

2023-04-15 20:26:49 3598 2

原创 word如何在文中添加参考文献的引用并自动更新

word如何在文中添加参考文献的引用并自动更新

2023-01-29 12:39:46 12756 2

原创 匈牙利算法解决两个坐标列表匹配问题

【代码】匈牙利算法解决两个坐标列表匹配问题。

2022-11-28 20:31:50 777

原创 RNN结构有什么问题?LSTM解决了RNN什么问题?怎么解决的?

1、减少参数量,使得训练更加容易,减少训练难度2、它有助于将模型应用于不同长度的示例。在读取序列时,如果RNN模型在训练期间的每个步骤使用不同的参数,则不会将其推广到看不见的不同长度的序列。通常,序列会根据整个序列的相同规则进行操作。“星期一下雪了”“星期一在下雪”虽然细节在序列的不同部分中,但这两个句子的含义相同。参数共享反映了我们在每一步都执行相同任务的事实,因此,我们不必在句子的每一点都重新学习规则。为什么LSTM(Long Short-Term Memory)为什么叫长短期记忆网络。

2022-10-10 17:05:07 4310

原创 三数之和 & 最接近的三数之和

可以看到这道题可以演化成三数之和,所以说三数之和可以当作这道题的一个特例,我们完全可以用三数之和的思路解决这道题,但是我们并不需要判断左右指针已经重复问题,如果你想缩短运行时间,那么确实可以多做一些判定。,可能会有一个疑问,三个数,为什么会是双指针啊,最近好久没有做题了,当看到这个题的时候,我的想法也是用三个指针去遍历,但是发现其实有一个指针可以是固定的,接下来看一下这个题的答案就知道了。2)如果指针移动时,发现当前所指向的元素和上一个元素是一样的,那么应该跳过。第二个想法就是判断特例,有哪些特例呢?

2022-10-05 09:39:12 131

原创 nn.BCEWithLogisticLoss() & nn.BCELoss()的区别 ,nn.CrossEntropyLoss() & nn.NLLLoss()的区别

nn.BCEWithLogisticLoss() & nn.BCELoss()的区别 ,nn.CrossEntropyLoss() & nn.NLLLoss()的区别

2022-07-13 16:29:13 412

原创 Pytorch构建网络细节总结

区别:optimizer.step() 是对模型参数进行更新scheduler.step() 是对学习率进行更新.cuda() 只能指定GPUmodel.train() 和 model.eval() 原理与用法pytorch可以给我们提供两种方式来切换训练和评估(推断)的模式,分别是:model.train() 和 model.eval()。一般用法是:在训练开始之前写上 model.trian() ,在测试时写上 model.eval() 。1.model.train()在使用 pytor

2022-07-12 11:11:58 497

原创 Pycharm-用鼠标滚轮放大缩小字体大小 + Pycharm在进行debug时出现collecting data或Unable to display frame variables

1,pycharm 字体放大设置:①,File —> setting —> Keymap —>在搜寻框中输入:increase —> Increase Font Size(双击) —> 在弹出的对话框中选择Add Mouse Shortcut②,在弹出的对话框中按住ctrl 键,鼠标滚轮向上滑动后点击 OK 。2,Pycharm 字体缩小设置 :①,File —> setting —> Keymap —>在搜寻框中输入:decrease —>Decrease Font Size(双击)—> 在弹出的对

2022-06-13 19:59:20 7998

原创 Pytorch创建类时为什么要继承nn.Module以及如何使用nn.Module

nn.Module----pytorch 中的重要模块化接口torch.nn 是专门为神经网络设计的模块化接口,nn构建于autgrad之上,可以用来定义和运行神经网络nn.Module 是nn中重要的类,其包含网络各层的定义函数,即构造函数 def init(self),以及前向传递函数def forward(self,x)...

2022-06-13 09:35:59 2178 1

原创 leetcode 6084. 最多单词数的发件人 (python defaultdict与map的灵活应用)

解题思路首先解决messages列表中每一条信息的单词数量,即 words = message[i].cout(" ")+1其次是建立一个字典,键是sender 值是该发送者发送的单词数量,那么这个使用defaultdcit就能完美解决,cnt = defaultdict(int) cnt[sender]+=words那么我们最后一个字典,键是每一个sender,值是他所有发送的所有单词数,例如上述的例子中,最后生成的cnt为:defaultdict(<class 'int'>, {.

2022-05-30 10:05:20 154

原创 跑通ORB-SLAM3全过程

本人配置的ORB-SLAM3环境是在ORB-SLAM2配置好的基础上完成的,请移步本人这边博客VMWare虚拟机创建以及跑通ORB-SLAM2全过程,将其中的所有依赖项安装好后,来配置ORB-SLAM3环境,主要按照这篇博文进行配置的,ORB-SLAM3配置安装及运行—Ubuntu20.04(2021年)但是现在orb-slam3安装的时候会对opencv的版本有所限制,我安装的是opencv最新版本,亲测可以。...

2022-05-29 21:34:21 880

原创 VMWare虚拟机创建以及跑通ORB-SLAM2全过程

秉着前有大佬栽树后有菜鸡乘凉的思想,我在这里罗列一些我看到很有用的帖子,可能我的心得比较少,但是跟着这些帖子,一定会完美安装1、安装虚拟机2021安装Vmware和Ubuntu教程(特详细)其中,针对安装类型,我建议是分区安装,实际上上一个虚拟机已经被我搞毁掉了,因为我的home的容量太小了,所以导致于后来程序没法运行,而且交换空间也很小,这里有两个博文贴出来,可以看一下如何分区:Win 10 中通过 VMWare 16 在 UEFI 引导模式下安装 Ubuntu 18.04 虚拟机并自定义分区双

2022-05-25 21:18:27 978

原创 CMake与Make最简单直接的区别

写程序大体步骤为:1.用编辑器编写源代码,如.cpp文件。2.用编译器编译代码生成目标文件,如**.o文件**。3.用链接器连接目标代码生成可执行文件,如**.exe文件**。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必

2022-05-24 14:40:23 245

原创 c++ 头文件的创建和使用,头文件与源文件的命名关系,#include <头文件> 和 #include “头文件“的关系

创建头文件的三个步骤1、创建一个.h的头文件:里面允许存放类声明和函数声明// swap.h#pragma oncevoid swaps(int a, int b);2、创建一个.cpp的源文件,源文件里面写函数体(函数定义)头文件与定义了头文件中函数声明的源文件并不需要文件名字相同,但是为了规范起见,建议命名那么头文件是如何关联源文件的呢?这个问题实际上是说,已知头文件“a.h”声明了一系列函数,“b.cpp”中实现了这些函数,那么如果我想在“c.cpp”中使用“a.h”中声明的这些在

2022-05-23 13:53:03 3284 2

原创 Centos7 gcc/g++安装以及运行程序

一、在线安装gcc(需要配置网络)在虚拟机VMware Workstation 安装CentOS7后,系统是没有gcc的。 进入系统根目录[root@localhost ~],输入命令:yum -y install gcc gcc-c++ autoconf make,如果此时是root登录的话,需要前面加sudo**二、测试首先,使用xshell连接虚拟机。在上一篇博文,成功配置了samba,此时我们在主机上进行连接,并且创建一个test文件夹,在test文件夹中创建一个main.cpp# incl

2022-05-21 20:41:45 7829 1

原创 Centos7配置samba

Centos7 配置 SAMBACentos7 配置 SAMBA步骤:一、关闭selinux和firewall关闭selinx:SELINUX=enforcing 改为 SELINUX=disabled关闭firewall:systemctl stop firewalld禁止防火墙开机启动:systemctl disable firewalld二:配置SAMBA进入/etc/samba/smb.conf添加SAMBA用户启动Samba服务,输入命令 systemctl start smb设置samba开机启

2022-05-21 17:00:27 1327

原创 图像特征提取SIFT/SURF算法

1.1SIFT原理:尺度不变特征转换即SIFT (Scale-invariant feature transform) 它用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe在1999年所发表,2004年完善总结。应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对等领域。SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突

2022-05-18 15:22:08 1873

原创 vs2019 opencv环境配置

首先下载opencv这个不多介绍了,之后再vs中创建一个新项目之后创建一个main.cppRelease+x64版本打开自己下载的opencv文件,里面有bulid和sources两个文件夹这两个文件夹的作用:之后开始配置opencv,点击属性注意查看配置和平台是不是和之前选好的一致配置包含目录配置库目录进入连接器->输入->附加依赖项选择Release版本之后确定返回,代码测试:# include <opencv2/opencv.hpp&g

2022-05-15 14:46:48 573

原创 github仓库上传文件

一、在github上创建一个仓库,注意这里一定要add README file,要不然仓库不能clone到本地2、创建一个文件夹如图中框出来的,然后右键git bash here,git clone + 仓库链接仓库链接如下所示,在自己创建的仓库主页上就可以copy3、cd 仓库路径,并且把自己要上传到仓库的文件,复制到自己创建的本地文件夹里4、 git init (初始化)5、git add . (将工作区的文件添加到暂存区,"."是当前目录下的所有文件,也可知输入文件夹的名称

2022-05-13 23:32:23 960

原创 yolov5 显示每个类别的mAP以及如何继续训练

1、训练时显示每个类别的mAPverbose设置成True即可2、继续训练将’–resume’中的default =True设置为Truedefault = ''填入想要继续训练的生成的exp中的last.pt的路径或者使用命令行python train.py --cfg yolov5l,yaml --batch-size 64 --weights './runs/train/exp4/weight/last.pt' ...

2022-05-02 20:06:21 6475 5

原创 华为 OBS上传notebook以及notebook上传到OBS

从OBS上导入到Notebookimport moxing as moxmox.file.copy_parallel('obs://桶名/文件名/','/home/ma-user/work/')从Notebook导入到OBSimport moxing as moxmox.file.copy_parallel('/home/ma-user/work/文件名', 'obs://桶名/文件夹名')print('Copy procedure is completed !')...

2022-05-02 12:59:02 1322 4

原创 前缀和算法总结,Leetcode周赛最小平均差(Python实现)

首先为什么要用前缀和?前缀和的优势在哪里?给定一个列表[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10],如果我们要求前i个元素的和,一般怎么做? python中自带的api是不是就可以基本实现比如我们像要求前5个数的和,如下所示:a = [1,2,3,4,5,6,7,8,9]print(sum(a[:5]))>> 15sum()函数其实就是帮我们做了一次数组遍历,其时间复杂度是O(n),这在平时计算一个这样简单的前i个数的和,时间复杂度可以勉强接受,但是在解决问题时

2022-05-01 10:10:47 252

原创 Pytorch中的repeat()函数

pytorch中的repeat()函数可以对张量进行复制。当参数只有两个时,第一个参数表示的是复制后的行数,第二个参数表示复制后的列数。当参数有三个时,第一个参数表示的是复制后的通道数,第二个参数表示的是复制后的行数,第三个参数表示复制后的列数。接下来我们举一个例子来直观理解一下:>>> x = torch.tensor([6,7,8])>>> x.repeat(4,2)tensor([[6, 7, 8, 6, 7, 8], [6, 7, 8,

2022-05-01 09:42:36 1935

原创 使用yolov5训练PASCAL VOC2012数据集以及遇到的坑

首先是pascal voc标签数据格式转yolo标签数据格式,这两种有什么区别,欢迎翻看之前的博客 PASCAL VOC格式的标注格式和YOLO格式的txt标记文件import xml.etree.ElementTree as ETimport pickleimport osfrom os import listdir, getcwdfrom os.path import join# 要生成的文件夹sets = [('2012', 'train'), ('2012', 'val')]#

2022-04-29 23:10:00 3398

原创 mmdetection安装教程

简要说一下nndetection的安装步骤吧:github:https://github.com/open-mmlab/mmdetection1、首先看一下自己的cuda版本是多少,根据自己的cuda版本安装对应的pytorch版本由于我是最新版本,所以直接进行pytorch官网安装最新版本就好了2、之后创建并激活环境conda环境conda create -n mmdetection python=3.7conda activate mmdetection3、根据环境安装mmcv这里

2022-04-29 09:40:00 1586

原创 最长单词 c++实现

# include <iostream>using namespace std;int main(){ string res,str; while (cin>>str){ // str.back()等价于str[str.size()-1] if (str.back()=='.') str.pop_back(); if (str.size()>res.size()) res=str; } cout.

2022-04-28 11:14:50 1391

原创 Leetcode 56.合并区间 Python实现

这道题只要能发现一个规律就能做出来:如果列表中每一个子列表的第一个元素是升序的,那么只要前一个子列表的第二位元素比后一个子列表的第一位元素大,就可以将这两个子列表(区间)进行合并,举个例子,如果[1,3]和[2,6],这两个区间的第一位分别是1和2满足升序,那么[1,3]中第二位元素3>[2,6]中第一位元素,即可以将这两个区间合并为[1,6]那么我们应该怎么实现呢?难道要遍历intervals数组的同时在内部不断合并吗?这样也太麻烦了,何不构建一个列表merge,在遍历intervals的同时将.

2022-04-26 11:26:59 862

原创 Leetcode33.旋转排序数组与面试题11.旋转数组的最小数字 Python实现及其详解

本题要点就是:只在有上升顺序的那一端做二分查找,妥妥的能解决,并且思路清晰,虽然思路很简单,但是二分查找看的是细节,判断语句中使用大于等于,还是大于,或者使用小于等于还是小于,这些写错一个就可能会要了你的命!代码实现:class Solution: def search(self, nums: List[int], target: int) -> int: n = len(nums) left,right =0,n-1 while left<=righ.

2022-04-25 15:45:21 1258

原创 判断完全数,判断质数 python c++实现

、原题链接:https://www.acwing.com/problem/content/727/由于时间复杂度限制,判断时判断遍历所有数会超时,只需要判断到根号a的情况即可,此时需要注意,如果a%i==0那么i是a的约束,a/i也是a的约束,如果i!=a/i的话,那么此时也需要把这个数加上import mathwhile True: try: n = int(input()) for _ in range(n): a = int(in

2022-04-24 21:01:13 1773

原创 环形链表Ⅰ,Ⅱ三种解决方法(Python实现)

环形链表Ⅰ只是判断给定的链表中是否存在环形链表,存在则返回True,不存在则返回False环形链表Ⅱ则是要返回链表开始入环的第一个节点。一、快慢指针双指针第一次相遇:设两指针fast,slow指向链表头部,fast每轮走2步,slow每轮走1步,如果fast指针走过链表末端,说明链表无环 if not fast or not fast.next :return None当fast==slow时,两个指针在环中第一次相遇,分析fast和slow的步数关系,设链表共有a+b个节点,其中链表头部到链表

2022-04-18 14:46:05 1372

原创 如何找出列表中相同元素的所有索引值 python实现

如何找出列表中相同元素的所有索引值 python实现index()只能找到第一个索引位置,那么如何找到相同元素的所有索引值呢?可以通过以下方式实现:nums = [2,5,5,11]# 找出元素值为5的索引index = [i for i,val in enumerate(nums) if val==5]两数之和:方法一:def twoSum(nums, target): nums1 = sorted(nums) left,right = 0,n-1 res = [] while

2022-04-18 09:46:02 6203 1

原创 多线程与多进程

线程线程的出现是为了提高系统的并发性,弥补突破一个进程只能干一件事的缺点,使得进程内部并发成为可能。假设一个文本程序,需要接受键盘输入,将内容显示到屏幕上,还需要保存信息到硬盘里,若只有一个进程,势必造成同一时间只能干一样事的尴尬(当保存时,就不能通过键盘输入内容)。若有多个进程,每个进程负责一个任务,进程A负责接收键盘输入的任务,进程B负责将内容显示在屏幕上的任务,进程C负责保存内容到硬盘中的任务。这里进程A,B,C间的协作涉及到了进程通信问题,而且有共同都需要拥有的东西——-文本内容,不停的切换造

2022-04-07 11:54:17 629

原创 上采样之最近邻插值、双线性插值

上采样之最近邻插值、双线性插值一、最近邻插值二、双线性插值一、最近邻插值设i+u, j+v(i, j为正整数, u, v为大于零小于1的小数,下同)为待求象素坐标,则待求象素灰度的值 f(i+u, j+v)。如果(i+u, j+v)落在A区,即u<0.5, v<0.5,则将左上角象素的灰度值赋给待求象素,同理,落在B区则赋予右上角的象素灰度值,落在C区则赋予左下角象素的灰度值,落在D区则赋予右下角象素的灰度值。最邻近元法计算量较小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化

2022-04-04 15:34:40 1552

原创 Yolov5 损失函数

Yolov5 损失函数正负样本匹配策略正样本个数的增加策略损失函数正负样本匹配策略本文的正负样本指的都是预测框而不是groundtruth框。正负样本是根据groundtruth框和anchor的匹配情况来确定的。yolov3/4采用的都是基于IOU的匹配策略,而 Yolov5采用的是基于宽高比例的匹配策略。具体而言,对每一个groundtruth框,分别计算它与9种anchor的宽与宽的比值、高与高的比值,在宽比值、高比值这2个比值中,取最极端的一个比值,作为groundtruth框和anchor

2022-04-01 22:31:39 7979 4

coco128数据集图片及标签.zip

coco128数据集图片及标签

2021-11-15

yolov5.pt合集.zip

yolov5 5.0版本,包含yolov5s.pt、yolov5m.pt、yolov5l.pt、yolov5x.pt、yolov5n.pt

2021-11-15

dlib-19.22.1.tar.gz

dlib库安装文件

2021-09-16

空空如也

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

TA关注的人

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