
PyTorch
文章平均质量分 51
何仙鸟
永远学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
seq2seq推理模块设计
这里先解释call方法,首先预处理句子,然后编码输入,把文本转化为tokenID,左端填充Padding,添加BOS和EOS标记。然后是Translator类,初始化翻译器,把模式变成eval模式,绑定源语言和目标语言的分词器。这段代码实现了一个基于序列到序列(Sequence-to-Sequence)模型的。然后执行推理生成语言的TokenID(preds)和注意力分数(scores)。首先加载模型,从文件best.ckpt加载预训练模型的参数。然后是解码输出把TokenID变为文本,最后可视化注意力。原创 2025-03-13 15:50:56 · 209 阅读 · 0 评论 -
深度学习subword分词BPE
BPE:这是一种流行分词算法,可以有效的平衡词汇表大小和步数,分词采用共现性。步骤:1.准备足够大的训练语料2.确定期望的subword词表大小(超参)3.将单词拆分为字符序列并在末尾添加后缀"</w>",这样就可以统计单词频率。比如一开始有一个l字母,现在编程l</w>5,就说明出现了五次。停止符</w>的意义在于表示subword是词后缀。每次合并后词表可能出现三种变化:+1:表明加入合并后的新字词,同时原来在的2个子词还保留;0:如果一个字词不是单独出现的,就被消解;原创 2025-03-11 21:57:40 · 1066 阅读 · 0 评论 -
seq2seq代码实战详解
用于。原创 2025-03-13 02:03:14 · 1044 阅读 · 0 评论 -
深度学习GRU模型原理
是一种改进的循环神经网络(RNN),专为解决传统RNN的(梯度消失/爆炸)而设计。其核心是通过动态控制信息的流动。原创 2025-03-12 11:36:37 · 660 阅读 · 0 评论 -
Bahdanau注意力方式公式原理详解
Bahdanau注意力(又称)由Dzmitry Bahdanau等人在2015年提出,用于改进传统编码器-解码器模型在长序列任务(如机器翻译)中的性能。,使解码器能自适应地关注输入的关键部分。原创 2025-03-12 00:56:25 · 1114 阅读 · 0 评论 -
阿里云云上训练
进入管理控制台,新建实例,然后点击操作里的打开:将文件上传到这:原创 2025-03-05 13:24:42 · 127 阅读 · 0 评论 -
深度学习分词器char-level实战详解
batch_first=True,输入的数据格式是(batch_size, seq_len, embedding_dim)#这里和02的差异是没有只拿最后一个输出,而是把所有的输出都拿出来了return x, hidden #x的shape是(batch_size, seq_len, vocab_size)print("{:=^80}".format(" 一层单向 RNN "))因为字典太小,所以embedding_dim要放大。原创 2025-03-10 17:36:19 · 566 阅读 · 0 评论 -
深度学习LSTM公式原理
普通的RNN信息不能长久传播,因为结尾较远的信息被稀释的比较厉害,所以引入LSTM,LSTM 是一种特殊的循环神经网络(RNN),专门设计用于解决传统RNN在处理与RNN相比,LSTM在计算隐藏层时,会包含当前时刻的日记信息。LSTM通过,显式控制信息的保留与遗忘,从而解决长期依赖问题。门机制是通过学习对原权重进行更新。遗忘门:决定细胞状态中哪些信息需要被丢弃(通过Sigmoid函数输出0~1之间的值)。传入门:要不要把重要的传入,决定当前输入信息中哪些需要更新到细胞状态。原创 2025-03-10 21:20:04 · 1408 阅读 · 0 评论 -
深度学习神经网络分类原理
最后一层是softmax函数,每一个输出就会变成一个0到1之间的数,也就是概率,然后他们之间的和加起来等于1,到底是哪一个分类就是看哪个神经元的这个值最大。加入现在有0.2,0.7,0.1,会把他们变成one-hot编码,比如0.2就变成010,损失就是在他们之间求损失,使用交叉熵公式。与均方误差来计算损失相比,交叉熵更能捕捉到预测变化的差异。原创 2025-03-04 18:59:05 · 473 阅读 · 0 评论 -
深度学习DNN实战
Sequential容器中写输入层,在下面的add_moudle中可以添加多个隐藏层,更深层次的网络能够学到更多的特征;init_weights改变分布,也是一种调参数的方式self.transforms = transforms # 预处理层,标准化# 多加几层nn.ReLU(),# 加19层# 输出层# 初始化权重"""使用 xavier 均匀分布来初始化全连接层的权重 W"""# print('''初始化权重''')# print(m)原创 2025-03-06 23:16:47 · 358 阅读 · 0 评论 -
Torch自定义求导
【代码】Torch自定义求导。原创 2025-03-07 20:54:01 · 222 阅读 · 0 评论 -
深度学习Save Best、Early Stop
今天的大模型,在训练过程中可能会终止,但是模型其实是可以接着练的,假设GPU挂了,可以接着训练,在原有的权重上,训练其实就是更新w,如果前面对w进行了存档,那么可以从存档的比较优秀的地方进行训练。下面代码默认每500步保存权重,第二个参数是选择保存最佳权重。原创 2025-03-06 14:24:50 · 268 阅读 · 0 评论 -
深度学习——Tensor
1.常数:scaler:0阶张量——标量2.向量:vector:1阶张量3.矩阵:matrix:2阶张量4.三阶张量。原创 2025-03-07 17:25:33 · 412 阅读 · 0 评论 -
异常值检测
Q3就是四分之三分位数,Q1就是四分之一分位数。原创 2025-03-04 12:02:12 · 582 阅读 · 0 评论 -
为什么文本训练需要循环神经网络
self.rnn = nn.RNN(embedding_dim, hidden_dim, num_layers=num_layers, batch_first=True, bidirectional=bidirectional) #bidirectional是双向的#把final_hidden去除轴size为1的,和x进行比较,里边元素是否相等# 取最后一个时间步的输出 (这也是为什么要设置padding_first=True的原因)return x。原创 2025-03-09 18:31:00 · 170 阅读 · 0 评论 -
深度学习网格搜索实战
还是使用房价数据集进行实战。因为模型简单,使用超参数搜索的时候速度快。原创 2025-03-07 15:06:09 · 446 阅读 · 0 评论 -
深度学习分类回归(衣帽数据集)
1 加载数据集fashion_minst2 搭建class NeuralNetwork模型3 设置损失函数,优化器4 编写评估函数5 编写训练函数6 开始训练7 绘制损失,准确率曲线。原创 2025-03-05 13:08:35 · 968 阅读 · 0 评论 -
深度学习RNN文本分类代码详细解读(直接可以跑)
self.rnn = nn.RNN(embedding_dim, hidden_dim, num_layers=num_layers, batch_first=True, bidirectional=bidirectional) #bidirectional是双向的#把final_hidden去除轴size为1的,和x进行比较,里边元素是否相等# 取最后一个时间步的输出 (这也是为什么要设置padding_first=True的原因)return x。原创 2025-03-10 02:24:39 · 1011 阅读 · 0 评论 -
深度学习Dropout
Dropout是为了解决过拟合,当层数加深,就有可能过拟合,这个时候模型太复杂就会过拟合,那么可以让模型变得简单一点,所以就可以随机挑一些神经元,让某些神经元的输出是0,只保留部分神经元的输出给下一层,这个过程是随机的。但是在推理的时候这些神经元相当于变得透明,不再随机。丢多少的比例就是超参。原创 2025-03-07 11:42:01 · 503 阅读 · 0 评论 -
深度学习反向传播
梯度其实就是导数,除了用符号求导也可以用近似求导:然后更新w=w-学习率*导数反向传播就是链式求导向前计算:对每个节点求偏导在前向传播的时候,进行一次前向计算的时候就可以把每一条线的偏导数都知道前向传播和反向传播是交替进行的。原创 2025-03-06 22:12:43 · 402 阅读 · 0 评论 -
文本Embedding
One-hot编码:模型没办法知道不同词之间的距离,比如男人和绅士之间的距离。所以为了让模型知道词之间的距离,Embedding:要把词变为一个向量,让我们知道词之间是不是近义词。原创 2025-03-08 14:49:46 · 498 阅读 · 0 评论 -
构建自己的数据集
需要将标签数据转换为张量,并调整形状以适应模型训练的要求,.float的作用在于如果原始标签是整数,那么需要显式转换为浮点数。原本y是那么多行,转换成张量后,就变成一维的了,一行多列。然后是DataLoader。验证和测试就不随机了。原创 2025-03-06 18:49:40 · 134 阅读 · 0 评论 -
深度学习激活函数
1. Sigmoid当神经元的激活在接近0或1的时候会饱和,也就是说当x继续变大,函数值不会有什么改变,也就是梯度消失。并且Sigmoid函数的输出不是以0为中心的,所以输出的要么都是正数要么都是负数,这将会导致Z字型梯度下降。5.SELU是在ELU函数的基础上提出的改进方法,目的是通过对网络的初始化和激活函数进行约束来解决深层神经网络的梯度消失和梯度爆炸等问题。4.ELU在x<0时具有负指数的特性,可以避免死亡神经元问题,相对于LeakyReLU在负值计算时间更长。原创 2025-03-07 01:41:02 · 299 阅读 · 0 评论 -
机器学习之逻辑回归
逻辑回归的前一部分是线性回归:一切是在思考假设,通过sigmoid函数把z从0到1:因为阶跃函数不可导:所以想方法用sigmoid:对于g(z),如果e等于0的时候就是0.5,等于负无穷的时候趋于0,等于正无穷的时候趋于1。现在做假设,现在认为这个值是一件事发生的概率右边就是一分类,左边就是零分类。原创 2025-03-04 11:06:54 · 322 阅读 · 0 评论 -
深度学习双向RNN
一个隐藏层其实是有两个,一个是向前的一个是向后的。向后的就是说后面的输入更新隐藏状态后是给前面用的,这样两个隐藏层合在一起。在实现上只需要把序列反过来训练就可以了。最后两个东西合并起来进入输出层。双向RNN通过反向更新的隐藏层来利用方向时间信息。那么双向神经网络如何做推理呢?答案是推理只能用单向,双向不适合做推理。双向主要的作用是对一个句子做特征提取,理解场景。原创 2025-03-10 11:54:31 · 545 阅读 · 0 评论 -
深度学习环境安装
如果下载的时候红了,就全部复制,下载慢一点就慢一点。安装完成以后可以conda list一下看看有没有pytorch。1.先cmd命令查看支持的驱动版本和CUDA最高支持版本。3.打开anaconda终端安装pytorch环境。安装路径最好放D盘,设置path记得选上。6.下载pycharm,不赘述。选好后复制粘贴执行就可以了。5.安装paddle环境。然后进入paddle环境。原创 2024-12-24 20:26:34 · 409 阅读 · 0 评论 -
YOLO原理讲解
打标签后会生成一系列参数,包含:置信度、预测框的位置(中心点的位置、高度宽度)、类别(标签1、标签2、标签3......)原创 2024-12-25 20:30:30 · 463 阅读 · 0 评论 -
Pytorch自动求导机制
PyTorch框架可以帮我们计算好反向传播,需要求导的,可以手动定义。注意:在做反向传播的时候如果不清空会把结果累加起来。可以看到w求导的值跟x一样。原创 2024-01-20 13:14:55 · 694 阅读 · 0 评论 -
PyTorch基本使用方法
可以把tensor格式通过.numpy()转换格式,同时numpy格式也可以通过torch.from_numpy(n)转换格式。x.view(-1,8),-1表示自动计算,计算每列8行会有几列,.size()后会显示[2,8]x.view(16),如果原来矩阵是4*4的那么现在就是1*16的。冒号表示取所有,数字表示取哪一个。原创 2024-01-19 17:27:20 · 400 阅读 · 0 评论 -
PyTorch初识和安装
进入acaconda prompt里面,来到我们官网。Torch:能在GPU中计算的矩阵。原创 2024-01-19 16:51:14 · 340 阅读 · 0 评论