![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码阅读系列
文章平均质量分 78
m0_61899108
这个作者很懒,什么都没留下…
展开
-
ResNet网络结构
介绍resnet网络结构和代码原创 2023-06-19 23:52:33 · 2759 阅读 · 0 评论 -
nn.Linear() 函数可二维或三维输入
nn.Linear() 常用于处理二维信息,全连接层的输入与输出一般都设置为二维张量,形状通常为[batch_size, size],不同于卷积层要求输入输出是四维张量。从输入输出的张量的shape角度来理解,相当于一个输入为[batch_size, in_features]的张量变换成了[batch_size, out_features]的输出张量。仔细观察Shape可以发现,nn.Linear(in_features,out_features)可以用于处理多维信息。原创 2023-04-03 12:18:40 · 6360 阅读 · 2 评论 -
【FDA】图像通过傅里叶变换改变光谱风格,实现域自适应
光谱转移:在不改变语义内容的情况下,将源图像映射到目标“样式”。随机采样的目标图像通过将源图像频谱的低频分量与其自身频谱进行交换来提供样式。结果“目标风格的源图像”在感知上显示了更小的域差距,并改进了语义分割的迁移学习原创 2023-06-09 01:17:16 · 1836 阅读 · 0 评论 -
MMsegmentation的配置文件解释
文件夹下面有4种基本组件类型: 数据集(dataset),模型(model),训练策略(schedule)和运行时的默认设置(default runtime)。为了帮助使用者熟悉这个流行的语义分割框架的完整配置文件和模块,我们在下面对使用 ResNet50V1c 的 PSPNet 的配置文件做了详细的注释说明。需要注意的是,在子配置文件里修改中间变量时,使用者需要再次传递这些变量给对应的域。我们按照下面的风格去命名配置文件,社区贡献者被建议使用同样的风格。去忽略基础配置文件里的一些域内容。转载 2022-11-19 21:03:50 · 1427 阅读 · 0 评论 -
计算两幅图像的相似度(PSNR、SSIM、MSE、余弦相似度、MD5、直方图、互信息、Hash)& 代码实现 与举例
计算两幅图像的相似度(PSNR、SSIM、MSE、余弦相似度、MD5、直方图、互信息、Hash)& 代码实现 与举例。计算两幅图MSE 计算模型的预测 Ŷ 与真实标签 Y 的接近程度。公式表示为:对于两个m×n的单通道图像I和K,它们的均方误差可定义为:优点:MSE的函数曲线光滑、连续,处处可导,便于使用梯度下降算法,是一种常用的损失函数。而且,随着误差的减小,梯度也在减小,这有利于收敛,即使使用固定的学习速率,也能较快的收敛到最小值。原创 2022-11-07 08:51:32 · 46858 阅读 · 8 评论 -
torch.stack 实现通道信息交叉混合
利用torch.stack()和torch.reshape()实现通道信息交叉混合,然后再分组卷积。原创 2022-11-05 23:59:47 · 485 阅读 · 0 评论 -
pytorch 神经网络特征可视化
网上收集整理的有关特征图可视化的方式与链接,包括有特征图可视化、卷积核可视化、类激活图可视化、注意力可视化、工具。文中主要介绍了特征可视化以及类激活图可视化。若有需要可查看正文,附有github代码链接。原创 2022-10-15 21:12:39 · 3561 阅读 · 5 评论 -
Pytorch模型中的parameter与buffer
模型保存在 Pytorch 中一种模型保存和加载的方式如下:# savetorch.save(model.state_dict(), PATH)# loadmodel = MyModel(*args, **kwargs)model.load_state_dict(torch.load(PATH))model.eval()可以看到模型保存的是model.state_dict()的返回对象。model.state_dict()的返回对象是一个OrderDict,它以键值对的...转载 2022-04-28 19:38:13 · 999 阅读 · 0 评论 -
torch.nn.functional.interpolate函数
torch.nn.functional.interpolate实现插值和上采样torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None)功能:根据给定的size或scale_factor参数来对输入进行下/上采样,使用的插值算法取决于参数mode的设置。支持目前的temporal(1D,.原创 2022-04-28 19:05:13 · 8151 阅读 · 0 评论 -
python pickle模块常见函数
介绍Python中有个序列化过程叫作 pickle,它能够实现任意对象与文本之间的相互转化,也可以实现任意对象与二进制之间的相互转化。也就是说,pickle 可以实现 Python 对象的存储及恢复。封装是一个将Python数据对象转化为字节流的过程,拆封是封装的逆操作,将字节文件或字节对象中的字节流转化为Python数据对象,不要从不收信任的数据源中拆封数据。可以封装和拆封几乎任何Python数据对象。简单理解,封装:python对象转换为文本(字节流),写入文本,存储python对..原创 2022-04-28 14:35:37 · 1214 阅读 · 0 评论 -
Pytorch加载模型只导入部分层权重,即跳过指定网络层的方法
需求Pytorch加载模型时,只导入部分层权重,跳过部分指定网络层。(权重文件存储为dict形式)本文参考总结他人的做法,主要是load时加if判断哪些网络层不需要,或者直接strict=False,跳过没有的网络层。还有对载入的参数更新有具体要求的方法,固定参数、或者不同参数有不同的更新速度。同时,自己使用时报错报错 Magic Number Error,发现是这种权重文件比较古老,使用 pickle 存储并且编码使用了 latin1,换个load方式。原创 2022-04-28 12:13:57 · 10234 阅读 · 0 评论 -
CUDA 并行计算优化策略总结
导言并行计算为了提高算法运行效率,文章通过以矩阵乘法(C = A * B)的各种实现思路以及优化方法总结为例子,过一遍cuda的几个基础优化策略。作者丨LustofLife@知乎链接丨[CUDA] 并行计算优化策略 - 知乎本文参照于Matrix Multiplication CUDA - ECA - GPU 2018-2019正文关于矩阵乘法的问题描述 关于矩阵乘法的问题描述 优化策略的核心思想 例子 CPU上的代码实现:https://github.com/hova88转载 2022-03-01 23:53:53 · 701 阅读 · 0 评论 -
一文读懂 Pytorch 中的 Tensor View 机制
前言用户在使用 Pytorch 的过程中,必然会接触到 view 这个概念,可能会有用户对它背后的实现原理感兴趣。Pytorch 通过 view 机制可以实现 tensor 之间的内存共享。而 view 机制可以避免显式的数据拷贝,因此能实现快速且内存高效的比如切片和 element-wise 等操作。全文约 ~4000字&多图预警。什么是 View搬运官网的例子 https://pytorch.org/docs/stable/tensor_view.html#tensor-vie.转载 2022-03-01 00:44:20 · 1844 阅读 · 0 评论 -
详解PyTorch中的ModuleList和Sequential
前言本文详细讲解了PyTorch中的nn.Sequential和nn.ModuleList两个模块。作者丨小占同学@知乎(已授权)来源丨详解PyTorch中的ModuleList和Sequential - 知乎在使用PyTorch的时候,经常遇到nn.Sequential和nn.ModuleList,今天将这两个模块认真区分了一下,总结如下。PyTorch版本为1.0.0。本文也会随着本人逐渐深入Torch和有新的体会时,会进行更新。本人才疏学浅,希望各位看官不吝赐教。一、官方文转载 2022-03-01 00:51:28 · 1242 阅读 · 1 评论 -
OpenCV中保存不同深度图像
本文转载于实操教程|OpenCV中保存不同深度图像的技巧详解了OpenCV中保存不同深度图像的两种方法。什么是图像深度很多人开始学习OpenCV之后,接触前面几个API就包括imwrite函数,而且很快知道了如何去保存Mat对象为图像,常规代码如下:imwrite("D:/result.png",dst);其中dst是Mat对象。这样保存的图像默认是每个通道8位的字节图像,常见的RGB图像是图像深度为24,这个可以通过windows下查看图像属性获得,截图如下:...转载 2022-03-01 00:22:23 · 3733 阅读 · 0 评论 -
11种CNN网络设计中精巧通用的“小”插件
导言本文转载于:(附代码)真正的即插即用!盘点11种CNN网络设计中精巧通用的“小”插件所谓“插件”,就是要能锦上添花,又容易植入、落地,即真正的即插即用。本文盘点的“插件”能够提升CNN平移、旋转、scale等变性能力或多尺度特征提取,感受野等能力,在很多SOTA网络中都会看到它们的影子。前沿本文盘点一些CNN网络中设计比较精巧而又实用的“插件”。所谓“插件”,就是不改变网络主体结构, 可以很容易嵌入到主流网络当中,提高网络提取特征的能力,能够做到plug-and-play。网络.转载 2022-02-28 22:55:29 · 646 阅读 · 0 评论 -
A ConvNet for the 2020s 原理分析与解读
前言转载于:Vision Transformer , Vision MLP 超详细解读 (原理分析+代码解读) (目录) - 知乎Vision MLP 超详细解读 (原理分析+代码解读) (四) - 知乎ConvNeXt 可以看做是把 Swin Transformer 包括 ViT 的所有特殊的设计集于一身之后的卷积网络进化版,升级了 ResNet 架构,看看借助了2020年代 CV 设计范式之后的卷积网络的性能极限在哪里。这篇工作在年初炸起了CV圈子里又一股讨论的浪潮,因此本文从更加详细...转载 2022-02-28 18:24:11 · 1049 阅读 · 0 评论 -
彩色图像到灰度转换 常见方法
转换公式今天来说说图像处理最基础知识,彩色图像与灰度图像转换,一般大家熟知的彩色图像转灰度的公式如下:代码实现OpenCV中有一个模块是彩色图像转为灰度图像的,基于API是cvtCOLOR,我这里就直接裸奔了一下,其实更好的方法应该是基于查找表与像素映射,可以获得极高速度优势!我这里就简单的用python演示了一下,代码实现如下:import cv2 as cvimport numpy as npdef lut(weight): lut = [] fo.转载 2022-02-28 17:11:51 · 3156 阅读 · 0 评论 -
python按txt文件读取图像,复制并改名
利用python,按照txt文件读取指定目录下的特定图像(读取txt文件中出现名称的图像),进行复制并修改图像名称。read()、readline()、readlines()三者差异:参考python中read() readline()以及readlines()区别 - 知乎read() 每次读取整个文件,它通常将读取到底文件内容放到一个字符串变量中,也就是说 .read() 生成文件内容是一个字符串类型。 readline()每只读取文件的一行,通常也是读取到的一行内容放到一个字符串变量中,返原创 2022-02-22 15:20:46 · 2472 阅读 · 0 评论 -
python读取文件夹图像名称并保存为txt文件
利用python,获取目录文件下的以‘.png’为后缀的图像,保存为list,然后写入txt文件中。其他类型的文件类似,修改相应部分即可。原创 2022-02-22 15:02:22 · 4216 阅读 · 1 评论 -
python数据集按比例划分
已有包含所有图像名称的文件file.txt,现按比例对其进行划分。按照train :test :val = 8:1:1的比例,对file.txt文件中的图片名称进行随机划分。先获取file.txt文件的图像名称保存为list,再对list进行比例随机划分(先随机打乱顺序,再按比例划分),得到保存有3各不同集合的子list。最后返回并保存写入到对应的txt文件中。# train/val/test = 8/1/1# encoding: utf-8import osimport random原创 2022-02-22 14:52:05 · 3284 阅读 · 1 评论 -
python按行修改txt文件内图像名称
基础:将数据集划分为3类:train/test/val。利用txt文件保存图像的名称。考虑到方便性,现将txt文件中的图像名称重命名,读取包含图像名的多个txt文件,给图像名加上前缀。修改如下:txt文件: 原始图像名称 ---> 修改后的图像名称[txt_name].txt:[name].png ---> [txt_name]_[name].png# encoding: utf-8'''读取包含图像名的多个txt文件,给图像名加上前缀。包含数据集划分后的各.原创 2022-02-22 10:29:49 · 1326 阅读 · 0 评论 -
python将不同类型文件分开
1. one2two将目标文件夹下的文件分开保存到不同文件夹下,(例:区分jpg文件和png文件)。其他类型的文件也类似。多个文件类型也可以自己修改。import osimport shutildef split_file(src, dst1, dst2): ''' function: 将文件中不同后缀的文件分开到不同文件夹 example: 区分jpg和png图像 src:str(filefolder) dst:str(filefolder)原创 2022-02-18 18:07:18 · 2122 阅读 · 0 评论 -
python实现批量图像二值化
二值化含义:一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(Binarization)。常用的阈值函数有两个:全局阈值 和 自适应阈值cv2.threshold(src, thresh, maxval, type) cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thr..原创 2022-02-18 17:19:30 · 6631 阅读 · 0 评论 -
YOLOv5-Lite:更少的参数、更高的精度、更快的检测速度
Yolov5-Lite,更轻更快易于部署的网络。一、YOLOV5-Lite1、Backbone与HeadYOLOv5-Lite的网络结构的Backbone主要使用的是含Shuffle channel的Shuffle block组成;检测 Head 依旧用的是 YOLOv5 head,但用的是其简化版的 YOLOv5 head。Shuffle block示意图如下:YOLOv5 backbone:在原先U版的 YOLOv5 Backbone中,作者在特征提取的上层.转载 2022-02-16 16:30:09 · 6630 阅读 · 0 评论 -
Pytorch实验代码的小细节
序本文转载于Pytorch实验代码的亿些小细节 - 知乎你是否有过这样的经历:炼了一大堆的丹,但过了一周回来看结果,忘记了每个模型对应的配置;改了模型中的一个组件,跑起来一个新的训练,这时候测试旧模型却发现结果跟原来不一样了;把所有的训练测试代码写在一个文件里,加入各种if else,最后一个文件上千行,一个周末没看,回来改一个逻辑要找半天……其实这些情况除了深度学习相关的开发,在别的软件开发中也是很常见的,为了解决这些问题,软件行业的开发者形成了很多套路,比如设计模式,提高代码复用性,或者各种最佳转载 2022-02-12 11:56:37 · 418 阅读 · 0 评论 -
COCO格式数据(bbox和segmentation)可视化
前言本文转载于COCO数据集可视化程序(包括bbox和segmentation)_wtandyn的博客-CSDN博客_coco segmentation出于项目需要,需要对COCO数据集做可视化,但网上没有比较好用的可视化方法,于是自己写了一个。分为三部分:标注框bbox的单独可视化, 分割标注segmentation的单独可视化, bbox和segmentation的联合可视化。我的数据集格式是标准的COCO数据集格式,可以百度即可。1. 标注框bbox的单独可视化转载 2022-02-11 18:06:45 · 8020 阅读 · 1 评论 -
使用labelme标注的json标签mask可视化
正文利用os模块中的os.system()方法,多次调用CMD,利用labelme中的labelme_json_to_dataset方法实现,将使用labelme标注的json文件可视化,源图像与标签图像叠加,用于查看标注效果。分两步:先批量json格式文件生成中间文件,多次调用labelme_json_to_dataset,在新目录下为每个json生成一个目录文件(包含4个文件) 将文件批量转化成标准格式(即,所有原图像一个文件夹,所有label一个文件夹,所有可视化图像一个文件夹)原创 2022-02-11 16:13:14 · 4632 阅读 · 0 评论 -
pytorch基础知识
前言本文转载于【pytorch基础知识】10分钟快速复习笔记|代码可直接运行|多实例 - 知乎pytorch里的数据统称为张量(tensor),张量表示由⼀个数值组成的数组,这个数组可能有多个维度。具有一个轴的张量对应数学上的向量(vector)。 具有两个轴的张量对应数学上的矩阵(matrix)。具有两个轴以上的张量没有特殊的数学名称。 优点:张量(tensor)⽀持⾃动微分和GPU并行加速运算。1 Tensor数据类型32位浮点型:torch.float、torch.float32。浮点转载 2022-02-11 01:33:01 · 1665 阅读 · 0 评论 -
Pytorch简单入门操作
前言本文概述pytorch的一些简单操作。摘取于笔记 | PyTorch安装及入门教程PyTorch主要由4个包组成: torch:可以将张量转换为torch.cuda.TensorFloat torch.autograd:自动梯度 torch.nn:具有共享层和损失函数的神经网络库 torch.optim:具有通用的优化算法包(SGD、Adam) 目录前言1 Numpy 与 Tensor1.1 Tensor概述1.2 创建Tensor原创 2022-02-10 20:44:44 · 1255 阅读 · 0 评论 -
Pytorch常用代码段
前言PyTorch最好的资料是官方文档。本文是PyTorch常用代码段,在参考资料[1](张皓:PyTorch Cookbook)的基础上做了一些修补,方便使用时查阅。本文涉及内容较多,值得一看。转载 2022-01-29 13:27:51 · 190 阅读 · 0 评论 -
torch.stack()与torch.cat() 用法
正文在pytorch中,常见的拼接函数主要是两个,分别是:stack() cat()stack可以保留两个信息[1.序列]和[2.张量矩阵]信息,先扩张再拼接。cat()用于拼接多个tensor。实际使用中两者使用场景不同。torch.cat() 和python中的内置函数cat(), 在使用和目的上,是没有区别的,区别在于前者操作对象是tensor。1.stack()函数用法官方解释:沿着一个新维度对输入张量序列进行连接。 序列中所有的张量都应该为相同形状。.原创 2022-01-24 15:32:14 · 2192 阅读 · 0 评论 -
常用一行python代码
在学习Python的过程当中,有很多复杂的任务其实只需要一行代码就可以解决,本文介绍25个实用的一行Python代码。转载 2022-01-09 01:19:04 · 223 阅读 · 0 评论 -
python如何顺序读取文件夹下的图片及文件
python按图片命名顺序读取文件夹下的图片,主要从如何获取文件夹下文件名称os.listdir()以及imutils.paths方法,获取文件的扩展名及文件名os.path.splitext(file)[0]以及split('.')[0]等方法,再用两个具体案例来进行使用说明。原创 2022-01-08 10:39:59 · 12937 阅读 · 0 评论 -
endswith() 、split()与os.path.split() 函数解析
简单对python里的endswith() 、split()与os.path.split() 函数进行解析原创 2022-01-06 23:41:00 · 977 阅读 · 0 评论 -
os.path()函数解析
python os.path模块主要用于文件的属性获取,此处简单介绍各个函数的使用方法原创 2022-01-06 23:14:53 · 692 阅读 · 0 评论 -
argparse.ArgumentParser()用法解析
argparse介绍: argparse是一个Python模块:命令行选项、参数和子命令解析器。作用和C语言中的命令行参数作用相同。 argparse 模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。常见使用步骤:1:import argparse #引入模块2:parser = argparse....原创 2021-11-10 23:02:52 · 1182 阅读 · 0 评论