
pytorch
明日何其多_
这个作者很懒,什么都没留下…
展开
-
pytorch:多标签分类的损失函数和准确率计算
1 损失函数我们先用sklearn生成一个多标签分类数据集。from sklearn.datasets import make_multilabel_classificationX, y = make_multilabel_classification(n_samples=1000, n_features=10, n_classes=原创 2021-12-04 21:35:11 · 15020 阅读 · 4 评论 -
pytorch:nn.BatchNorm1d()用法介绍
torch.nn.BatchNorm1d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)num_features – 特征维度eps – 为数值稳定性而加到分母上的值。momentum – 移动平均默认的动量值。affine – 一个布尔值,当设置为真时,此模块具有可学习的仿射参数。这里其他几个参数都不重要,只需要看num_features就可以了。num_features就是你需要原创 2020-11-06 11:26:38 · 79407 阅读 · 22 评论 -
关于pytorch中的交叉熵损失函数
这里有两个需要注意的点。交叉熵损失函数中包含softmax计算。分类时标签没有转化为one-hot向量,而是作为序号。假如一共有3类,标签序号为0,1,2。softmax得到的向量为[0.7,0.2,0,1],真实标签为1。计算损失时就是-log0.2(1是对应位置)。所以分类时标签必须从0开始。...原创 2020-10-05 16:04:39 · 963 阅读 · 2 评论 -
pytorch文本分类:如何输出原始文本及对应分类结果
一般做文本分类时,模型最后的输出都是准确率。但在实际应用中,知道准确率肯定是不够的,我们最希望得到一个表格,第一列是原始文本,第二列是分类结果。那么要怎么做呢。这里麻烦的地方在于模型的输入是向量化后的文本,而且顺序都是打乱的,想要知道原始文本对应的分类结果就只能追溯回去。emmm,好像很难的样子。我在这里的做法是给原始文本添加一列id,让id充当这个中间桥梁,而不是词向量。具体如下。下图即训练集的数据,其中id这一列已经加上了。然后在数据处理部分做一些修改,这里用的是torchtext库。toke原创 2020-09-18 08:18:47 · 5118 阅读 · 3 评论 -
pytorch实现LSTM+Attention文本分类
直接看模型部分代码。class BiRNN(nn.Module): def __init__(self, vocab_size, embedding_dim, num_hiddens, num_layers): super(BiRNN, self).__init__() self.word_embeddings = nn.Embedding(vocab_size, embedding_dim) self.word_embeddings = self.原创 2020-07-05 00:24:14 · 23738 阅读 · 24 评论 -
基于pytorch的胶囊网络minst图像分类实现
关于《Dynamic Routing Between Capsules》这篇论文的代码复现网上有很多,基本都是做图像重构的。我修改了一部分代码,实现了minst图像分类。参考:基于pytorch的CapsNet代码详解.胶囊网络结构胶囊网络基本结构如下:普通卷积层conv1预胶囊层PrimaryCaps:为胶囊层做准备,运算为卷积运算。胶囊层DigitCaps:代替全连接层,输出为...原创 2020-04-30 23:37:54 · 6085 阅读 · 9 评论 -
torch.matmul()用法介绍
torch.mm()原创 2020-04-27 10:35:02 · 181277 阅读 · 24 评论 -
pytorch 实现RNN文本分类
除了模型不一样,其他部分和TextCNN实现过程都是一样的,可以参考下面的链接。这里就不详细解释了。pytorch 实现 textCNN.导入包import torchimport torch.nn as nnimport torch.nn.functional as Fimport pandas as pdimport jiebaimport osfrom torch.nn i...原创 2020-04-21 00:13:35 · 6776 阅读 · 3 评论 -
生成对抗网络(GAN)及pytorch小例子
GAN是一种生成模型,包含两个部分,生成器G(Generator)和鉴别器D(Discriminator)。生成器用来产生虚假数据,鉴别器是用来判断该数据是否真实(输出是0到1之间的数字,值越大表示越接近真实数据)。生成器试图用虚假数据骗过鉴别器,而鉴别器又不断提高自己判别真假的能力。这是一个相互博弈的过程。经过多轮训练后,生成器产生的数据会越来越接近真实数据,这就是我们想要的结果了。生成器和鉴...原创 2020-04-16 20:31:11 · 4752 阅读 · 16 评论 -
pytorch 实现 textCNN
textCNN 模型textCNN模型主要使用了一维卷积层和时序最大池化层。假设输入的文本序列由nn个词组成,每个词用dd维的词向量表示。那么输入样本的宽为nn,高为1,输入通道数为dd。textCNN的计算主要分为以下几步。定义多个一维卷积核,并使用这些卷积核对输入分别做卷积计算。宽度不同的卷积核可能会捕捉到不同个数的相邻词的相关性。对输出的所有通道分别做时序最大池化,再将这些通道的池化输...原创 2020-04-04 00:42:14 · 8896 阅读 · 4 评论 -
pytorch实现二分类(单隐藏层的神经网络)
同样是吴恩达深度学习课程的作业,我把它改成pytorch版本了。有了上次的经验,这次就没花多少时间了。1 packagesimport numpy as npimport torchfrom torch import nnimport matplotlib.pyplot as pltimport torch.utils.data as Datafrom torch.nn import...原创 2020-03-05 14:30:29 · 13304 阅读 · 1 评论 -
pytorch实现 logistic 回归
第一次尝试用pytorch来搭建一个神经网络,原代码是吴恩达深度学习第一课第二周的作业,没有用到框架。不得不提一下,这个课程作业质量相当高,不仅给出了模型实现的详细思路,还包括一些代码技巧,非常细致,感兴趣的同学可以去看一下。话不多说,来看实现过程。logistic回归解决的是二分类问题,我们的任务是给图片分类,判断一张图片是否是猫。首先,导入各种包。import numpy as np...原创 2020-03-03 23:36:33 · 3757 阅读 · 0 评论 -
torch.gather()
1. torch.gather()torch.gather(input, dim, index, out=None, sparse_grad=False) → Tensor官网上的解释是沿着给定的轴聚合值,比较抽象,我们直接上例子。x = torch.tensor([[1,2,3], [4,5,6]])y = torch.tensor([[0, 1],[1,2]])print(x)p...原创 2020-02-27 12:58:41 · 155 阅读 · 0 评论 -
RNN学习笔记
先码着,回头写。原创 2020-02-18 19:29:09 · 169 阅读 · 0 评论 -
CNN学习笔记
nn.parameters1.tensor数据类型 可自动求梯度2.将参数加到nn.module中的参数集合中。原创 2020-02-18 19:26:55 · 246 阅读 · 0 评论 -
pytorch中的shape属性
x = torch.tensor([[0, 2],[3,4],[9,8]])print(x.shape)x = torch.tensor([0,1,2,4,5,6,2])print(x.shape)原创 2020-02-16 11:22:16 · 26888 阅读 · 1 评论 -
pytorch:scatter_函数生成one_hot向量
实不相瞒,这个函数我看了整整一个小时才弄明白,真是让人抓狂。先来看一下该函数的参数。scatter_(dim, index, src)dim:维度,表示在第几维上操作;index:索引,后面再解释;src:用来填充的tensor。这个函数的主要作用是按照一定规则用src中的值去填充/替换原来tensor的值。举个例子...原创 2020-02-15 19:53:05 · 5258 阅读 · 3 评论 -
时序数据的采样:随机采样与相邻采样
在语言模型训练中我们需要每次随机读取小批量样本和标签。对于时序数据来说,一个样本通常包含的字符通常是连续的。以周杰伦的歌词为例,假如句子为“想要有直升机想要和你飞到宇宙去”,时间步数为5,样本序列为5个字符,即“想”“要”“有”“直”“升”。该样本的标签序列为这些字符分别在训练集中的下一个字符,即“要”“有”“直”“升”“机”,即 X =“想要有直升”, Y =“要有直升机”。随机采样下面的...转载 2020-02-14 20:08:29 · 2803 阅读 · 0 评论 -
pytorch:梯度下降与反向传播
pytorch 线性回归原创 2020-02-14 13:41:55 · 719 阅读 · 0 评论