自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 详解深度模型的评价指标top-1和top-5的原理和实现代码

input:输入数据张量k:要获取几个数值dim:确定在哪个维度上获取数据largest:控制获取最大值还是最小值,largest=True返回最大值。sorted:控制返回值是否按顺序输出。topk的返回值分为两部分,前部分是数值,后部分是数值对应的索引号。

2024-07-10 23:55:48 839

原创 详解Python中【*args】和【**kwargs】的使用

在函数定义阶段分为:位置参数,默认值参数和可变长参数(*args和**kwargs后面详细介绍)。在函数调用阶段分为:关键字参数和解包参数列表。*args在函数传参时可接收任意数量的位置参数。在函数定义时作为占位符,代表没有被显示定义的可变数量的位置参数。在函数调用时,args会接收这些参数并存入元组中。**kwargs在函数传参时可接收任意数量的关键字参数。在函数调用时,kwargs会接收任意数量的在函数定义中没有对应名称的关键字参数并存入字典中。

2024-07-07 21:40:36 376

原创 Pytorch中的split()和chunk()函数功能和使用区别

torch.split()函数和torch.chunk()都是用来对数据按照某个维度进行切分,语法形式类似但是参数实际表达含义略有不同。本文通过具体使用案例生动说明两个函数的区别。

2024-06-24 22:17:27 374

原创 深度学习项目配置参数(三)yaml和json配置文件的使用

将python对象(列表或字典)序列化成YAML流并存储到文件中。data:需要存储到文件的python对象stream:打开数据需要写入的文件。若为空,则直接返回生成的字符串示例:(1)将字典对象变成yaml格式数据####显示####lr_1: 0.3(2)将列表对象变成yaml格式数据####显示####- cifar10- cifar100- imagenet(3)python对象写进文件,若多个字典对象可以嵌入一个列表文件内容。

2024-06-21 14:42:07 758

原创 深度学习项目配置参数(二) yacs库的使用教程

yacs库作为一个管理系统配置的轻量级库,解析yaml配置文件使整个项目结构更清晰。yacs库与argparse库类似,argparse库需要在运行程序文件中定义配置参数,而yacs将配置参数可以放置在其他文件中。

2024-06-20 17:20:21 445

原创 深度学习项目配置参数(一) argparse.ArgumentParser的使用教程

创建对象后,调用函数定义模型需要使用的单个参数名称以及如何解析。定义位置参数语法定义可选参数语法parser.add_argument(‘-flag’,‘–flag’),例如-m或者–model。

2024-06-19 17:44:54 1049 1

原创 Python推导式生成列表、集合、元组、字典

引言Python推导式以简便快捷而著称,可以用短短一行代码实现for循环语句几行代码的工作。众所周知的是推导式的简洁性,其实推导式还具有较强的逻辑性,可以增强代码的可读性。推导式不光有大家熟悉的列表推导式,还有集合、元组、字典的推导式。本文通过列举典型代码示例让读者领略推导式的应用魅力。

2024-05-26 22:19:03 351

原创 Python列表常用方法五:元素如何去掉重复项

列表作为一个容器可以存储不同类型的数据元素,而且可以存储重复元素。在项目应用中,提取列表中唯一元素提出重复项是一个常规操作,实现方法多种多样。列举几种常用方法方便遗忘时回忆。使用集合set数据结构可以去重复,但会造成数据无序性,改变原始列表的有序性。如果像保持列表去重复后数据的有效顺序可以使用列表推导式与if语句的组合。三、numpy.unque()去重复。一、set()去重复。二、列表推导式去重复。

2024-05-26 15:50:45 293

原创 Python列表常用方法四:count()、index()函数

引言列表作为python常用的数据结构,内置方法的灵活使用显著提高了项目代码的编写效率。本文主要介绍count函数和index函数的使用。

2024-05-25 22:27:54 311

原创 json.dumps()和json.dump(),json.loads()和json.load()的区别

1.字符串操作:json.dumps()是将python对象变成json格式字符串,而json.loads()功能与其相反是从字符串中获得json数据并变成python字典对象。2.文件操作:json.dump()是将python对象直接写入json文件中,而json.load()是从文件中读取出json数据转换成python字典对象。

2024-05-25 00:02:06 346

原创 Python列表常用方法三:sort()和sorted(),reverse()和reversed()的区别

sort()函数是列表对象的方法, key为可选参数,传入一个函数指定列表元素按照什么标准进行比较,默认值为None,表示按照元素本身排序。两者都是对列表排序主要区别是sort函数直接对列表进行修改,而sorted()函数则是返回一个排序后的新列表,需要额外的内存空间,但是不会破坏原始列表内容。reversed函数是python的一个内置函数,将列表反转后返回一个新列表迭代器,若要显示结果需要用list(iterator)函数转换为列表。(3) reverse()和reversed()的区别。

2024-05-24 23:01:32 489 1

原创 Python中map()和filter()的魔幻用法

map函数与filter函数的区别

2024-05-24 00:18:28 352 1

原创 Python列表常用方法二:remove()、del、pop()、clear()的详解

python列表的删除操作常用方法详解。

2024-05-23 23:17:08 339 1

原创 Attention-mask 在transformer模型框架中的作用

注意力机制的解释性博客比较多质量良莠不齐,推荐大家观看李宏毅老师关于注意力机制的讲解视频以及本人觉得对注意力机制讲解比较透彻的一篇博客[为更好解读注意力机制中attention-mask 的作用,现将注意力机制的原理进行总结。假设两个输入经过Wq、Wk、Wv矩阵(可训练)线性变换后获得q1=(1,2),q2=(0,1),k1=(1,0),k2=(0,1),v1=(1,0),v2=(0,1)向量。注意力机制核心就是向量q与向量k点乘后获得相似性分数(一个标量)。同理 q2也与所有的k向量点乘获得。

2023-11-19 13:18:54 2491

原创 GitHub操作宝典让你快速上手实践

选择要存放仓库的本地文件夹,在文件夹中打开git bash后,输入命令git clone git@github.com:yan-hero/git_demo.git,该文件夹下创建与仓库同名文件夹。//例如: git remote add origin git@github.com:yan-hero/git_demo.git。(1)在git bash中输入ssh-keygen -t rsa -C "你的邮箱",连续回车创建新的keys。进入git_demo文件夹,将要上传的项目代码拷贝进文件夹。

2023-08-22 21:43:28 247 1

原创 EndNote快速上手教程

其次,在新库里加载参考文献,文献加载操作按照 File ->Import->file,打开加载界面,choose选择从网站导出的enw文件,Import Optioin选择 EndNote Import(注:如果是PDF,则选择PDF导入)。方法一:首先在EndNote软件中选中该文献,在word中,鼠标点击插入位置后,按照下图指示箭头操作就可以加载参考文献了。Citations指的是在正文中出现参考文献引用时的格式,Bibliography指的是位于文章最后面的参考文献列表的格式。

2023-08-21 17:38:23 2886 1

原创 HuggingFace的Transformers库Tokenizer和Model使用技巧

Bert模型作为一个强大的双向Transformer模型,已经在NLP领域广泛使用并作为word embeddding 预训练模型深受青睐。Hugging Face的transformers框架包含BERT、GPT、GPT2、ToBERTa、T5等众多模型,同时支持pytorch和tensorflow 2两个框架,本博客主要介绍如何从Hugging Face加载预训练模型及高效使用。

2023-08-09 14:31:40 9088 1

原创 预训练模型微调(Fine-tuning pre_trained model)

在设计新模型的时候,尤其是CV领域设计语义分割、目标检测模型通常将已有的图像分类模型作为backbone,可以对原始模型结构实施增删改模块操作。由于目标任务的数据规模有限,为防止出现模型训练过拟合现象的发生,对于backbone部分权重参数采用在大规模数据集ImageNet上预训练好的模型权重参数。模型参数加载后冻结部分网络层开展finetune操作。本博文主要讲述常用的模型设计和加载预训练模型权重参数的方法及如何冻结部分权重参数对新模型进行微调操作。

2023-06-06 01:30:08 1834 1

原创 model.train()、model.eval()和torch.no_grad()以及detach()区别

一、model.train()、model.eval()区别model.train()和model.eval()函数主要用于将模型中的training属性设置为True或False两种状态,training属性会直接影响BatchNorm层)和Dropout层的运行机理。

2023-06-05 23:35:32 574 1

原创 nn.Sequential、nn.ModuleList、nn.ModuleDict区别及使用技巧

nn.ModuleList里面储存了不同 module,并自动将每个 module 的 parameters 添加到网络容器内容(注册),里面的module是按照List的形式顺序存储的,但是在forward中调用的时候可以随意组合。可以任意将 nn.Module 的子类 (比如 nn.Conv2d, nn.Linear 之类的) 加到这个 list 里面,方法和 Python 自带的 list 一样,也就是说它可以使用 extend,append 等操作。

2023-06-02 01:08:21 1147

原创 read()、readline()、readlines()区分

在python读取文件的时候,经常使用read函数读取文件内容。read()、readlines()函数使用起来看起来相似,但是还有很多细微差别。结合阅读代码时候的一些经验总结,对以上函数的不同进行总结。

2023-05-28 22:54:59 458

原创 conda和pip 安装python依赖包区别和使用技巧

引言Conda 作为一种跨平台的包和虚拟环境管理器,使用的时候功能与pip类似。安装python依赖包的时候经常将两种方法混合使用,但一直没有进行具体区分其差别。重新安装python依赖包的时候出现各种不兼容的bug。经历一天烦躁的安装、卸载和查阅资料的痛苦过程,将自己的学习收获梳理一下,以便自己未来回顾查看,同时公开分享帮助遇到同样难题的朋友们。Anaconda下载链接:Anaconda可以通过官网下载,但是速度较慢。大家一般是从国内镜像网站进行下载安装。下载。

2023-05-17 12:11:51 3747 1

原创 zip()和zip(*)函数的使用详解

Zip()函数既可以压缩序列(列表、元组、字典、集合、range())到一个zip文件,也可以用于拆分序列。具体使用案例会结合部分代码进行描述。两个序列长度不同时,zip函数会按照最短序列长度截取对齐。新生成的元素构成元组对。二、zip()函数用于提取两个序列的数据。一、zip()函数将两个序列压缩。

2023-05-14 15:08:11 985

原创 Python列表常用方法一:append()、extend()和insert()的详解

Python中的列表添加元素操作经常出现在代码中,添加元素的常用方法有三种:append、extend和'+='操作。本博文主要梳理三种方法如何使用。查阅网络一些资料,现将自己的理解梳理一下,仅供参考,如果有描述不清晰或错误之处,请批评指正。

2023-05-14 00:49:27 7352 2

原创 torch.mul()、torch.mm()和torch.matmul()等函数使用法则

torch.matmul()函数可以用于1维向量×1维向量,1维向量×2维矩阵,2维矩阵×1维向量,矩阵相乘等不同情况。现将相关案例进行介绍方便日后回顾。

2023-03-24 20:02:39 1697 1

原创 如何写好README.md文件

在github上阅读源码时,为更快速了解代码结构需先阅读README.md文件。

2023-03-22 00:57:17 1999

空空如也

空空如也

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

TA关注的人

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