- 博客(19)
- 收藏
- 关注
原创 深入理解 PyTorch 中的 ‘children()‘ 和 ‘modules()‘
在 PyTorch 中,子模块指的是一个实例中包含的其他实例。子模块是构建复杂神经网络的基础单元。例如,一个卷积神经网络可能包含多个卷积层、批量归一化层和线性层,每个层都是一个子模块。children()children():返回模型的直接子模块,不包括嵌套的子模块。适合快速查看模型的主要组成部分。modules():返回模型本身及其所有嵌套的子模块,进行递归遍历。适合查看模型的完整结构。
2024-05-26 12:17:40
604
原创 深入理解 PyTorch 中的‘model.eval()‘
在我们初学深度学习,比如分类网络的时候,从0-1搭建网络并进行训练的时候,我们经常看到一行代码:model.eval()。这行代码究竟有什么作用呢?在深度学习的训练和推理过程中, 是一个关键的方法。它确保模型在评估和推理阶段的行为与训练阶段有所不同,尤其是对那些包含 Dropout 和 BatchNorm 层的模型。本文将详细介绍 的作用及其重要性。 是 PyTorch 中的一个方法,用于将模型设置为评估模式。在评估模式下,模型中的某些层会改变其行为,使得模型的推理更加稳定和一致。在深度学习模型中,某些层
2024-05-26 11:40:41
168
原创 json转png【DIY颜色】
一些做语义分割的朋友在写论文时,需要放上自己的标签图片,其中就产生了一个是否美观的问题,下面这个脚本可以让大家在进行数据集格式转换的时候,自定义颜色,从而使图片与论文整体色彩更搭。
2024-05-24 15:50:25
284
1
原创 MMSegmentation绘制混淆矩阵
在使用mmsegmentation框架时,说方便真的很方便,但是有时候又因为版本不兼容原因,一些在特定版本能使用的代码,在另一个版本中却疯狂报错。例如新老版本对模型初始化的代码包 mmseg.apis 目录下的 inference_model, init_model, show_result_pyplot这几个文件老是出错。在新的版本中,官方给出的绘制混淆矩阵的代码并不可用,这一点在mmsegmentation中的issue中已经被确认。笔者对代码进行改进,使其能美观地绘制混淆矩阵。
2024-05-23 20:47:02
493
1
原创 MMSegmentation绘制热力图
在MMSegmentation的一些版本例如v1.2.0中,官方已经提供了利用Grad-CAM绘制热力图的代码,但只是针对单张图片,对于论文写作的朋友们来说不太友好,笔者将其修改为能够批量处理文件夹从而提高绘制效率,同时,针对里面一些不太容易弄懂的地方笔者用注释写出了自己的理解。
2024-05-23 20:30:54
912
1
原创 轻松理解Python--装饰器(Decorators)
其实最主要的是在我们之前定义的wrapper函数中,我们使用fun = func()这里的时候就没有给func()传参数,但是现在问题来了,如果我的func原本就需要参数,且多个func都需要加入修饰器,每个func的参数个数还不一样,那怎么办呢?现在func函数已经写好了,我们需要增加一个功能,就是在输入之前要给一个提示信息,告诉用户现在应该输入x的值了,在不改变原函数代码的情况下,这个问题该如何解决呢?在Python中,装饰器的作用定义为:在不改变原函数代码的前提下,给原函数增加新的功能。
2024-04-28 11:44:55
512
1
原创 Python中将函数作为参数传递给函数
首先定义了两个数加法和两个数乘法的函数,再定义了一个apply_func函数来接收上面函数作为参数。其中apply_func是将接受到的函数进行调用的结果作为返回值。在这个示例中我们同时将两个函数作为参数传入了apply_funcs函数中,并将这两个函数的结果再相乘作为返回值。
2024-04-23 22:26:43
391
原创 解决MMsegmentation与MMpretrain中预训练权重中键名不匹配问题
众所周知预训练权重其实就是一些字典,权重参数以键值对的形式存储为pth文件,那么解决问题的思路就很简单,使用pytorch的torch.load()加载权重文件,加载完后是一个字典形式,再使用python中的.items()方法获取字典中所有键值对的迭代器,最后用for循环遍历所有的键并改名即可。
2024-02-28 16:38:19
643
4
原创 以vgg16为backbone复现FCN【网络结构代码】
结构图中是将FCN网络的三个版本画在了一起,其实就是将VGG网络的全连接层去掉然后将其卷积部分获得的五种尺寸的特征图进行不同倍率的上采样操作并融合。FCN32s、16s、8s三者的网络结构部分是一样的,仅仅是前向传播处不一样,根据结构图将对应层的特征图进行融合即可~前段时间笔者出于实验室培训需要,回顾了语义分割开山之作FCN网络,分享出来给有需要的朋友学习使用。
2024-02-20 13:44:58
452
原创 服务器unzip失败:start of central directory not found; zipfile corrupt.
在使用云端服务器时,我们经常需要往服务器上传数据,笔者之前一直习惯使用xftp进行文件夹直接传输,但是这次因为这台电脑没有安装xftp,那么暂时就使用上传压缩包再解压的方式进行上传。其实就是linux自带的unzip不能解压大于4GB的压缩包,换一种解压方式就行,这里采用的是7z。更新完后再使用命令sudo apt-get install p7zip-full进行安装即可。进行解压即可,XXXX.zip为该压缩包名字,记得切换到压缩包所在盘符下进行使用命令~安装好后,使用命令:7z x XXXX.zip。
2024-02-17 23:18:01
1941
1
原创 Python:*args与**kwargs的作用【打包与解包】
在阅读前人圣贤的代码时,不知大家是否注意到有两个比较奇怪的参数传入函数,一个是*args,另外一个是**kwargs,其实大家不要不他俩想得很高深,这两个参数主要是用于函数中处理可变数量参数的特殊语法。学习完了*args的作用,可以大概估计一下**kwargs的作用,其实就是对【关键字参数】进行打包与解包。**的作用是将【关键字参数】打包成字典放到kwargs中,或者将kwargs解包成【关键字参数】*的作用就是将【位置参数】打包成元组放到args中,或者将args解包成【位置参数】
2024-01-22 14:16:49
507
原创 常用15种数据增强方法汇总(好厚米版)
数据增强是深度学习中常用的tricks,笔者这里总结出了15种常用的数据增强方式,可直接运行,且均带有备注,大家有需要的可以截取其中想要的部分进行学习,最终如果想要显示的话记得带上最后两行代码~
2023-09-23 21:06:46
5700
9
原创 安装MMsegmentation2.0.0以及过程中可能遇到的问题
再按住ctrl+R使用命令提示符窗口,进入虚拟环境,并切换到mmcv下载到的文件夹(进入文件夹后使用pip install mmcv按住tab键进行补全)不过对于第三条,也有其他方式进行安装,如果有需求也可以安装其他版本的mmcv,这里就以2.0.0为例(注意版本适配,不然后续会出现版本不兼容的报错)前提是大家先有了深度学习一些基础的环境配置,比如anaconda或miniconda,cuda,pytorch等。注意这里网上有一些错误的验证命令,就会导致一些报错,错误命令主要是因为文件名不正确造成的。
2023-08-16 20:16:58
2472
2
原创 YOLOv7 bug记录
那么多半是数据集命名问题,因为在yolov7的dataset中,是把数据集最后一级的命名写死了的,要严格按照下图,命名都要一样,否则就需要去dataset.py里面改源码。这个可能是因为之前犯的错误生成的错误缓存文件导致的,在labels文件夹里面,找到并删除,再运行就可以了。
2023-05-24 09:01:38
367
2
原创 pytorch学习笔记
可以理解为多维数组。和numpy数组很像,tensors数据类型可以在gpu或者是其他一些硬件上面运行。tensor还可以和numpy共享地址,对二者其中任意一个修改,另一个也会修改。tensor是自动微分的1.可以传入一个列表2.可以传入一个numpy数组3.使用torch.rand_like()或者ones_like()4.使用torch.rand()或者torch.ones根据输入型号创建,()中可以是元组、列表,但是不能是集合。
2023-02-02 14:24:33
167
原创 运行代码时出现ModuleNotFoundError: No module named ‘tensorboard‘解决方法
在使用tensorboard时运行错误如图:在网上查资料时可能是自己没有安装tensorboard,于是进入pycharm终端(控制台最下面那里点击terminal),输入然后输入conda listconda list发现是有tensorboard的然后进入进入cmd输入python再输入import tensorboard之后不报错,以为就安装好了然后进入pycharm之后运行依旧报错...
2022-11-01 11:03:12
13769
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人