iioSnail
这个作者很懒,什么都没留下…
展开
-
Pytorch中DataLoader和Dataset的基本用法
文章目录DataLoader支持的两种数据集Iterator格式的DataLoaderPython的Iterator格式数据简介Pytorch使用DataLoader使用自定义的IterableDataset实战:自定义图片加载DataLoaderMap格式的DataLoaderDataLoader支持的两种数据集Map格式:即key,value形式,例如 {0: ‘张三’, 1: ‘李四’}Iterator格式:例如数组,迭代器等Iterator格式的DataLoaderPython中,只要原创 2022-01-29 15:24:39 · 14360 阅读 · 3 评论 -
详解torch.nn.utils.clip_grad_norm_ 的使用与原理
文章目录clip_grad_norm_的原理clip_grad_norm_参数的选择(调参)clip_grad_norm_使用演示clip_grad_norm_的原理本文是对梯度剪裁: torch.nn.utils.clip_grad_norm_()文章的补充。所以可以先参考这篇文章从上面文章可以看到,clip_grad_norm最后就是对所有的梯度乘以一个clip_coef,而且乘的前提是clip_coef一定是小于1的,所以,按照这个情况:clip_grad_norm只解决梯度爆炸问题,不解决原创 2022-02-08 11:50:02 · 51763 阅读 · 7 评论 -
什么是范数(Norm),其具有哪些性质
文章目录直观的感受一下范数范数的定义直观的感受下范数的边界图像范数的性质参考资料直观的感受一下范数先直观的感受一下二维空间的范数,假设在二维空间的向量为 v=(x,y)\bold{v} =(x,y)v=(x,y)则v的1范数为:∣∣v∣∣1=∣∣(x,y)∣∣1=∣x∣+∣y∣=(∣x∣1+∣y∣1)11||\bold{v}||_1 =||(x,y)||_1 = |x| + |y| = (|x|^1+|y|^1)^\frac{1}{1}∣∣v∣∣1=∣∣(x,y)∣∣1=∣x∣+∣y∣=(∣原创 2022-02-08 10:43:07 · 31153 阅读 · 8 评论 -
简介NLP中的Tokenization(基于Word,Subword 和 Character)
概念理解Word:一个单词,例如helloCharacter:一个字母,例如aSubword:①若使用单词进行编码,由于单词多且杂,容易导致OOV问题,而且不太好编码 ②若使用字母进行编码,又太少,容易丢失语义;所以人们发明了subword,将一个word分成多个subword,同时兼顾了①②两个问题。OOV:Out of Vocabulary,意思是有些单词在词典中查询不到,例如一些根据词根现造的词,或者拼写错误的词等。Tokenization:将一段文本分成若干个元素,一个元素称为一个Tok原创 2022-03-09 17:00:40 · 4057 阅读 · 1 评论 -
图解 Pytorch 中 nn.Conv2d 的 groups 参数
文章目录普通卷积复习Groups是如何改变卷积方式的实验验证参考资料普通卷积复习首先我们先来简单复习一下普通的卷积行为。从上图可以看到,输入特征图为3,经过4个filter卷积后生成了4个输出特征图。对于普通的卷积操作,我们可以得到几个重要的结论:输入通道数 = 每个filter的卷积核的个数。(注意区分卷积核和Filter,它们俩的关系是:多个卷积核组成一个Filter)Filter的个数 = 输出通道数此时,我们的参数量为:参数量=输入通道数×输出通道数×卷积核大小=卷积核个数×Fi原创 2022-05-23 18:20:46 · 2910 阅读 · 4 评论 -
中文文本纠错(CSC)任务Benchmark数据集SIGHAN介绍与预处理
SIGNHAN是台湾学者(所以里面都是繁体字)公开的用于中文文本纠错(CSC)百度网盘链接pwd=f9sd上述链接是官方提供的数据源文件,里面有许多错误,如果不想自己修改和预处理,可以直接跳到"第5章 预处理好的数据集",直接使用。数据集句子数量句子平均长度错字数量SIGHAN13(训练集)70041.8343SIGHAN13(测试集)100074.31224SIGHAN14(训练集)343749.65122SIGHAN14(测试集)106250.0771。原创 2022-09-29 17:24:32 · 6702 阅读 · 4 评论 -
中文文本纠错(Chinese Spell Checking, CSC)任务各个论文的评价指标
本文汇总了中文文本纠错(Chinese Spell Checking)任务在各个开源项目中的评价指标,他们虽然写法不同,但大部分本质是相同的,但也有少部分论文的评价指标存在问题或其他论文不一致,本文对他们的指标代码进行了分析,并说明了其中的问题。原创 2023-02-18 14:09:06 · 2909 阅读 · 1 评论 -
中文拼写纠错(CSC)任务各个数据集汇总与简介
论文地址论文代码用于生成违数据集对预测结果进行评价作者知乎数据集年份:2022-11CSCD-IME全称:Chinese Spelling Correction Dataset for errors generated by pinyin IME数据集只关注“拼音输入法”导致的错误数据来源:经过认证的新闻媒体机构在微博上发布的博文(例如人民日报)训练集:3w,验证集5k,测试集3k。均为人工标注模拟“拼音输入法”导致的错误,构建了200w个违数据集。原创 2023-12-04 09:36:51 · 2650 阅读 · 0 评论 -
文本预处理库spaCy的基本使用(快速入门)
spaCy(官方网站,github链接)是一个NLP领域的文本预处理Python库,包括分词(Tokenization)、词性标注(Part-of-speech Tagging, POS Tagging)、依存分析(Dependency Parsing)、词形还原(Lemmatization)、句子边界检测(Sentence Boundary Detection,SBD)、命名实体识别(Named Entity Recognition, NER)等功能。具体支持功能参考链接。spaCy的特点:若想安装GP原创 2022-06-27 18:02:15 · 24257 阅读 · 1 评论 -
TensorBoard快速入门(Pytorch使用TensorBoard)
TensorBoard 简介TensorBoard 界面介绍TensorBoard 安装TensorBoard 运行Pytorch 使用 TensorBoardTensor折线图(Scalars)原创 2022-07-03 00:03:08 · 45230 阅读 · 2 评论 -
如何批量下载hugging face模型和数据集文件
如何批量下载hugging face模型和数据集文件原创 2022-08-08 10:44:33 · 32227 阅读 · 10 评论 -
BERT源码实现与解读(Pytorch)
使用nn.Transformer构建BERT模型,并使用样例样本使用MLM任务和NSP任务训练BERT原创 2022-09-16 16:01:39 · 3598 阅读 · 5 评论 -
【论文笔记】MacBert:Revisiting Pre-trained Models for Chinese Natural Language Processing
作者提出了一个中文Bert,起名为MacBert。该模型采用的mask策略(作者提出的)是MLMasc作者用MacBert在8个NLP任务上进行了测试,大部分都能达到SOTA提出了新的MacBert模型,其缓和了pre-training阶段和fine-tuning阶段的gap。采用的方式是“mask字时,采用相似的字进行mask”原创 2023-01-11 14:00:00 · 1563 阅读 · 1 评论 -
【论文笔记】SDCL: Self-Distillation Contrastive Learning for Chinese Spell Checking
论文提出了一种token-level的自蒸馏对比学习(self-distillation contrastive learning)方法。作者并没有直接使用BERT的输出作为token embedding,而是使用点乘的方式融合了BERT的输出和word embeddings。原创 2023-11-29 12:11:59 · 1468 阅读 · 0 评论 -
pytorch 自定义损失函数、优化器(Optimizer)和学习率策略(Scheduler)
梯度下降回顾Pytorch 实现梯度下降与参数更新自定义损失函数自定义优化器自定义学习率策略使用 `LambdaLR` 实现简单的学习率策略通过继承 `_LRScheduler` 实现自定义的学习率策略通过手动更新Optimizer中的学习率来自定义学习策略......原创 2022-07-14 22:35:18 · 8215 阅读 · 2 评论 -
Bert的pooler_output是什么?
在学习bert的时候,我们知道bert是输出每个token的embeding。但在使用hugging face的bert模型时,发现除了还多了一个输出。许多人可能以为是[CLS]token的embedding,但使用比较后,发现又不是,然后就很奇怪。原创 2022-11-21 13:45:01 · 11948 阅读 · 12 评论 -
【论文源码解读】(中文拼写检查, CSC)SCOPE:Improving Chinese Spelling Check by Character Pronunciation Prediction
作者提出了CPP辅助任务,可以让Encoder模型学会对汉语拼音进行编码。作者提供了一个 预训练好的SCOPE模型,后续的CSC任务可以用这个做迁移学习作者提出了CIC(约束矫正方法),可以用在预测阶段。原创 2023-11-27 10:54:21 · 1206 阅读 · 0 评论 -
【论文解读】(CSC任务的音标和字形信息到底用了多少?)Investigating Glyph-Phonetic Information for Chinese Spell Checking
许多中文拼写检查(Chiniese Spell Checking, CSC)模型都使用了“字形信息+拼音信息”(glyph-phonetic)来进行预测,但是**“这些glyph-phonetic信息到底被用了多少”是不清楚的**,所以作者提出了两个新的方法来验证,同时也可以提升模型的泛化能力。Q1:现有的中文预训练模型(Chinese pre-trained models)编码了glyph-phonetic信息了吗?原创 2023-12-05 13:40:18 · 1067 阅读 · 0 评论 -
【学习笔记】小样本学习(Few-shot Learning)入门
参考视频:https://www.youtube.com/watch?v=UkQ2FVpDxHg基本概念小样本学习(few-shot learning)是什么:就是使用很少的样本来进行分类或回归Few-shot Learning的目标:让机器学会自己学习小样本学习的直观理解:① 前提:首先要知道,训练一个模型的目的不是为了让模型如何分辨大象和蚂蚁,而是让模型具有判断图片“异同”的能力,即让模型看到两张图片后,它能分别出这俩是不是一个类别。这样,当我们在用大数据集训练出一个分类器后,在测试阶段给.原创 2022-04-09 18:36:11 · 25253 阅读 · 8 评论 -
矩阵操作万能函数 einsum 详细解析(通法教你如何看懂并写出einsum表达式)
可能你在某个地方听说了einsum,然后不会写,或者看不懂。这篇文章将会一步一步教会你如何使用(通法哦,只要学会方法就全会了)。ein 就是爱因斯坦的ein,sum就是求和。einsum就是爱因斯坦求和约定,其实作用就是把求和符号省略,就这么简单。举个例子:我们现在有一个矩阵A2×2=(1234)A_{2\times 2} = \begin{pmatrix} 1 & 2 \\ 3 & 4\end{pmatrix}A2×2=(1324)我们想对A的“行”进行求和得到矩阵B(向量B),用原创 2022-06-14 10:29:04 · 16347 阅读 · 10 评论 -
反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释
反卷积的作用卷积中padding的几个概念No PaddingHalf(Same) PaddingFull Padding反卷积反卷积中的Padding参数反卷积的stride参数反卷积总结参考资料原创 2022-07-06 17:48:52 · 18119 阅读 · 7 评论 -
MultiHead-Attention和Masked-Attention的机制和原理
二. MultiHead Attention2.1 MultiHead Attention理论讲解2.2. Pytorch实现MultiHead Attention三. Masked Attention3.1 为什么要使用Mask掩码3.2 如何进行mask掩码3.3 为什么是负无穷而不是0原创 2022-07-18 19:13:26 · 24783 阅读 · 11 评论 -
DJL快速入门(纯Java跑深度学习模型)
DJL快速入门(纯Java跑深度学习模型)1. DJL核心内容讲解2. DJL加载Pytorch模型3. DJL的Tensor操作4. DJL简单案例(DJL使用Pytorch模型完成图片分类)5. OpenPose项目实战原创 2022-06-29 10:45:00 · 24590 阅读 · 25 评论 -
Pytorch中 nn.Transformer的使用详解与Transformer的黑盒讲解
1. Transformer的训练过程讲解2. Transformer的推理过程讲解3. Transformer的入参和出参讲解4. nn.Transformer的各个参数讲解5. nn.Transformer的mask机制详解6. 实战:使用nn.Transformer训练一个copy任务。原创 2022-07-28 12:24:18 · 87595 阅读 · 59 评论 -
【强化学习】 OpenAI Gym入门:基础组件(Getting Started With OpenAI Gym: The Basic Building Blocks)
【强化学习】 OpenAI Gym入门:基础组件(Getting Started With OpenAI Gym: The Basic Building Blocks)原创 2022-08-17 17:35:40 · 6719 阅读 · 1 评论 -
Hugging Face快速入门(重点讲解模型(Transformers)和数据集部分(Datasets))
1. Hugging Face是什么,提供了哪些内容2. Hugging Face模型的使用(Transformer类库)3. Hugging Face数据集的使用(Datasets类库)原创 2022-08-08 11:29:23 · 74722 阅读 · 18 评论 -
FocalLoss原理通俗解释及其二分类和多分类场景下的原理与实现
FocalLoss原理通俗解释及其二分类和多分类场景下的原理与实现原创 2023-02-20 17:20:51 · 8188 阅读 · 18 评论 -
【论文解读】(如何微调BERT?) How to Fine-Tune BERT for Text Classification?
用BERT做具体任务时效果不够好?这篇论文教你如何微调BERT原创 2023-04-30 22:46:43 · 6408 阅读 · 7 评论 -
模型泛化技巧“随机权重平均(Stochastic Weight Averaging, SWA)”介绍与Pytorch Lightning的SWA实现讲解
SWA,全程为“Stochastic Weight Averaging”(随机权重平均)。它是一种深度学习中提高模型泛化能力的一种常用技巧。其思路为:**对于模型的权重,不直接使用最后的权重,而是将之前的权重做个平均**。该方法适用于深度学习,不限领域、不限Optimzer,可以和多种技巧同时使用。原创 2023-04-08 22:35:56 · 2722 阅读 · 0 评论 -
图解通俗理解对比学习(Contrastive Learning)中的温度系数(temperature)
对比学习可以让相似的样本在空间中距离近一点,让不相似的样本距离远一点。这样就可以让特征分布在空间中更加均匀。但其中有个温度系数,大家虽然都见过,但可能一直都不明白这个系数的作用和取值,本文将会用最通俗的语言、图示加实验来进行解释,保证人人都能看懂原创 2023-03-12 09:40:02 · 5171 阅读 · 0 评论 -
数字人项目 ER-NeRF 的使用和部署详细教程
ER-NeRF(官方链接)是一个(对嘴型)项目。即:给一段某人说话的视频,再给定一段音频,经过该模型后处理后,可将原视频的嘴型与音频保持一致。可以做到实时响应。即模型比较小,处理速度快。需要对“要对嘴型的视频”进行训练。也就是每段视频对应一个模型生成出的头部不够稳定。原创 2024-04-11 14:25:29 · 5816 阅读 · 7 评论 -
条件概率,乘法公式、全概率公式、贝叶斯公式的解释(概率论)
条件概率公式:设A, B为任意两个事件,若P(A)>0,我们称在已知事件A发生的条件下,事件B发生的概率为条件概率,记为 P(B∣A)P(B|A)P(B∣A),并定义:P(B∣A)=P(AB)P(A) (P(A)>0)P(B|A) = \frac{P(AB)}{P(A)} ~~~~~~~~~~(P(A)>0)P(B∣A)=P(A)P(AB)  原创 2021-07-27 13:18:56 · 24935 阅读 · 0 评论 -
Pytorch入门实战(8):小样本学习实现图片分类(Few-shot Learning, Meta Learning)
本文会使用Omniglot数据集训练一个孪生网络(相似网络),其可以用来判断两个图片的相似程度,通过该方式来实现小样本学习。本文使用Omniglot的训练集来训练神经网络,使用其验证集来构造Support Set。本文会从验证集的每个类别中拿出5个样本作为Support Set,一共挑选10个类别,即为10-way 5-shot的小样本学习。原创 2022-08-21 18:35:00 · 10520 阅读 · 1 评论 -
Pytorch入门实战(7):基于BERT实现文本隐喻二分类(Kaggle入门题目)
Bert入门实战,文本二分类问题原创 2022-08-19 16:10:48 · 3524 阅读 · 0 评论 -
Pytorch入门实战(6):基于GAN生成简单的动漫人物头像
Pytorch入门实战(6):基于GAN生成简单的动漫人物头像原创 2022-07-08 13:33:08 · 6780 阅读 · 28 评论 -
Pytorch入门实战(5):基于nn.Transformer实现机器翻译(英译汉)
本文将使用Pytorch提供的nn.Transformer实现英文到中文的机器翻译任务。对nn.Transformer的讲解,可以参考我的另一篇博文Pytorch中 nn.Transformer的使用详解与Transformer的黑盒讲解,建议先学习该文的CopyTask任务,然后再来看该篇就容易多了。......原创 2022-08-05 12:30:25 · 22600 阅读 · 72 评论 -
Pytorch入门实战(4):基于LSTM实现文本的情感分析
本文涉及知识点Pytorch nn.Module的基本使用Pytorch nn.Linear的基本用法Pytorch中DataLoader的基本用法Pytorch nn.Embedding的基本使用详解torch.nn.utils.clip_grad_norm_ 的使用与原理本文内容本文基于文章Long Short-Term Memory: From Zero to Hero with PyTorch的代码,对该文章代码进行了一些修改和注释添加。该文章详细的介绍了LSTM,如果对LSTM不熟悉原创 2022-02-09 11:40:47 · 14023 阅读 · 28 评论 -
Pytorch入门实战(3):使用简单CNN实现物体分类
本文涉及知识点PytorchVision Transforms的基本使用Pytorch nn.Linear的基本用法nn.Conv2d官方文档本文内容使用自己随便构造的一个简单的CNN网络,使用CIFAR10数据集(包含10种类别,图片大小为32x32)训练一个分类网络。-----开冲-----数据预处理首先导入需要的包:import torchimport torchvisionimport torchvision.transforms as transformsimport t原创 2022-05-28 18:08:50 · 2682 阅读 · 7 评论 -
Pytorch入门实战(2)-使用BP神经网络实现MNIST手写数字识别
上一篇:Pytorch入门实战(1) - 实现线性回归涉及知识点Pytorch nn.Module的基本使用Pytorch nn.Linear的基本用法PytorchVision Transforms的基本使用Pytorch中DataLoader的基本用法Pytorch详解NLLLoss和CrossEntropyLoss如何确定神经网络的层数和隐藏层神经元数量本文内容本文将会使用BP神经网络(就是最普通的神经网络)实现一个MNIST手写数据集的实现。话不多说,直接开始。首先先导入需要的包原创 2022-02-06 19:13:44 · 5901 阅读 · 5 评论 -
Pytorch入门实战(1) - 实现线性回归
文章目录将线性回归神经网络化Pytorch 代码实现一元线性回归Pytorch方式实现将线性回归神经网络化线性回归也可以看作一个简单的神经网络。以一个特征的一元线性回归为例:y=w⋅x+by = w \cdot x + by=w⋅x+b可以改造下图神经网络:若将x泛化为向量,即 x=(x1,x2,...,xn)x=(x_1, x_2, ... , x_n)x=(x1,x2,...,xn),则对应神经网络为:Pytorch 代码实现一元线性回归Pytorch方式实现import原创 2021-11-19 15:16:56 · 2358 阅读 · 1 评论