- 博客(16)
- 收藏
- 关注
原创 Git&Github使用
其实本质就是首先建立本地电脑和github账户的联系接着建立具体项目文件夹(本地仓库)和具体远程github仓库的联系(多人合作中大家共享的就是这个远程github仓库),就可以自由git push git pull进行代码合作修改了如果我们想学习github上优秀的项目,就可以git clone 到本地电脑的项目文件夹中,在vscode等软件中打开就可以愉快码代码了。
2024-09-05 14:14:04
541
原创 程序员入门——tmux和github的基础使用
因此对于时间较长的模型训练,我们常常采用tmux来进行训练,相当于在远程服务器上开启了一个终端(只要服务器不断,训练就会一直进行)因此使用tmux的好处就在于,即使我们关闭了本地电脑,程序仍然能在远程运行。一般针对私人的仓库,我们用ssh生成一对公私钥匙对,我们把公钥复制放在我们自己的github账号中,我们自己的本地电脑(或远程服务器)保存着私钥,这样相当于在我们的电脑和私人仓库间建立了直接联系,通过密钥对,我们可以不用进行身份验证,安全私密的更改上传下拉代码。2)采用ssh keys(密钥对)的方式。
2024-08-30 00:18:11
516
1
原创 数据集划分——花朵分类
用复制不用移动,可以只对样本划分训练集和验证集,标签文件是总的,最后通过遍历训练集或验证集找其对应的标签。2.根据比例去获得训练集和验证集的列表(切片)3.根据新划分的列表把图片移到相应的文件夹下。1.根据路径获得所有图像的列表。
2024-08-02 16:04:43
342
原创 深度学习任务的基本文件结构
1.用来划分数据集的代码文件,划分训练集和验证集,将样本和标签的文件位置整理好。2.用来写dataset类的文件,一般会在其中顺便定义好transforms,输出的样本是经过处理和增强的3.用来写model类的文件,不同的任务可能有多段model拼接而成。4.用来写优化器类的文件(损失函数一般是用现成的,也可以自己封装写成一个函数)。5.训练文件,一般包括从命令行接受参数,从配置文件读取参数,根据这些参数,实例化dataset,model,optim,创建dataloader,训练loop,反向传播更新参数
2024-08-02 10:05:18
342
原创 深度学习训练——解析命令行参数
随后,相关代码可以根据传入的配置文件地址加载相关数据,根据gpu数量进行多线程训练。其中对于optional arguments还可以设置布尔参数,如果对于action='store_true',传入'--baz', 后,args.baz则时True,不传值为False。参数可以接受以下四个选项值:'none', 'pytorch', 'slurm', 'mpi'。这样在后面的代码,就可以用args.foo , args.bar, args.baz ,args.mv调用相关变量了,其值就是命令行传入的值。
2024-07-21 23:52:46
715
原创 mmdetection3D学习笔记(一)
最后,我们通过cfg.model可以访问配置文件中的model,利用框架中写好的函数build_model,创造实例化model=build_model(cfg.model),就可以进行最后的训练)。因此在mmdet3d的配置文件中,只要给定好type=“类名”,就可以理解为在配置文件中引入了这个类的定义过程。注意,如果自己在此框架中通过注册器机制写好了一个网络,经过上述注册后,记得在相应模块的_init_.py的_all_=[]中加入该类,且在写这个类的导入模块要模仿其他已经存在的同类别的网络类。
2024-07-20 22:43:39
702
原创 Python的语法学习笔记
在python3中,一般类中直接用父类名.方法名(self,..)调用父类的方法,不用super的方式了,super的方式一般就init用一下,但注意如果多继承它只继承第一个,这个顺序一定要在刚开始定义类就得写好。这种用法一般发生在父类函数被子类同名函数重写后,又还希望调用父类的函数,最常见的例子就是子类初始化时,可以省略写原本父类一已经定义好的那一部分属性,因此直接用super调用父类的初始化函数。在python,使用super().函数名(形参,不用加self),可以在类中调用父类的函数。
2024-07-19 14:52:02
242
原创 基于Anchor的目标检测算法
我们把全部的ground truth映射到特征图上,对于每一个anchor,我们遍历所有ground truth,计算iou,选取一定的iou阈值,如0.5.对于一个anchor,若存在和一个ground truth的iou>0.5,则类别被标记为ground truth对应的类别,confidence标为1,并标注相应与ground truth的偏移量,如果所有的iou都<阈值0.5,则认为该anchor对应背景,confidence标记为1,类别向量全为0,不需要标记偏移量。但其实并无太多必要。
2024-07-17 10:10:29
1313
原创 Faster R-CNN——2D目标检测“two-stage“经典模型
训练过程,我们是把经过卷积网络后的特征图由滑动生成的大小不一的anchors作为样本,把原图中的ground truth映射到特征图上,anchors与映射后的ground truth求iou,遍历所有ground truth,若存在某iou大于设定的阈值,则类别标签被打为前景,否则认为是背景。通俗来理解,就是由于卷积的位置相关性,对于特征图的某块区域,它只是由上一层特征图中某块区域得到的,也即融合了这块区域的信息,但和其他区域没有关系。(上述红色框即两块区域的对应关系,大的即为小区域的感受野。
2024-07-16 10:02:39
714
原创 Fast R-CNN——“two-stage“经典之作
相较于R-CNN,Fast R-CNN真正实现了”two-stage",即一阶段:选定候选框;二阶段:把候选框送入网络,得到其类别与修正后的边界框。(训练也只用训练后面整个网络)。
2024-07-15 22:25:36
661
原创 2D目标检测奠基之作——R-CNN
训练过程相对于测试过程减少了NMS处理这一步,分组件进行训练。测试过程对于边界框有两次筛选,一次是分类后通过背景以及类别阈值的筛选,一次是最后NMS的筛选,去除重叠的边界框。而训练过程不需要去重,只有第一次筛选,没有第二次筛选。
2024-07-15 16:59:36
1137
原创 Python面向对象的进阶语法
而在深度学习的内容中,如果把图片存成一个列表,对于输入一个索引可以返回图片和标签,这样创造dataset后,用dataset[index](借助getitem函数)就可以利用索引访问相应图片和对应标签,便于dataloader进行加载处理。类内可以访问,类外不能直接访问。下面是一个典型的python文件目录,其中若文件夹有__init__.py文件,则表示该文件夹整体为一个功能包,import时不用像普通模块那样写../../的地址,而是可以xxx.xxx用点的形式来写。
2024-07-15 00:01:35
429
原创 Python中神奇的装饰器
对于多装饰器,离函数越近的先装饰,可以理解为经过内层装饰器装饰装饰后原函数变为inner1函数,inner1函数作为新的fn被外层装饰器装饰,形成新的函数inner2,相当于最后调用原函数就在调用inner2函数。总的来说,装饰器常常具有通用性,函数经过装饰后,调用原函数,相当于调用inner函数,也可以根据此更好地设计装饰器结构。整个设计过程可以理解为把原有函数放到新的函数当中,作为一部分功能的实现,进而实现了对于原有功能的扩充。注意在写装饰器函数时,内层函数写完后需要在装饰器函数中返回内层函数。
2024-07-14 22:49:56
560
1
原创 深度学习环境搭建
当你安装Anaconda时,它通常会安装在你的用户目录下的某个位置,例如,在Linux上,它可能安装在~/anaconda3或~/miniconda3目录下(取决于你选择的安装程序版本)。对于每个项目,要求的包的版本都不相同,所以我们希望对于一个项目创造属于它自己的虚拟环境,在其中配置它所需要版本的功能包,防止冲突。github项目gitclone下来的都是项目的最新版本,文件代码是最新的,调用包等的代码可能和过去包产生冲突,所以一定要按要求装过去指定的版本。两者都只服务于NVIDIA公司自己的GPU。
2024-07-14 11:00:12
741
原创 Linux常用命令
Ubuntu是一个多用户系统,支持创建多个用户,每个用户都可以有自己的家目录(home)和文件。但在有些情况下,使用sudo命令并输入当前用户的密码,可以临时获得部分root的权限,可以更自由的进行相关操作。绝对路径:linux系统下从根目录/开始写,如 /home/user/example.txt。相对路径:当前目录可以表示为 ./ ,也可以直接跟文件表示当前目录。../.. 表示上上级目录,是当前目录下的一种相对路径的表示形式。.. 表示上一级目录,是当前目录下的一种相对路径的表示形式。
2024-07-14 09:28:24
409
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅