
pytorch
文章平均质量分 73
安安爸Chris
这个博客用于写自己兴趣所在的内容,主要是源码阅读和智能语音相关的。 我另一个博客主要写工作相关的,请参考https://www.jianshu.com/u/3f1c3f228fa5
展开
-
【pytorch】weight_norm和spectral_norm
和是 PyTorch 中用于对模型参数进行规范化的方法,但它们在实现和使用上有显著的区别。原创 2025-02-13 17:48:59 · 486 阅读 · 0 评论 -
【python】scipy.optimize.curve_fit
官方文档输入参数Valuef函数,它必须以xdata为第一个入参xdata测量的独立数据ydata相关的数据,名义上是 f(xdata,…)的结果输出输出Valuepopt最优值,即拟合函数根据x输出的值pcovpopt的协方差矩阵infodictmesg相关的信息 (returned only if full_output is True)ier。原创 2023-02-07 17:52:01 · 680 阅读 · 1 评论 -
【pytorch】torch.cdist使用说明
torch.cdist的使用介绍如所示,它是批量计算两个向量集合的距离。其中, x1和x2是输入的两个向量集合。p 默认为2,为欧几里德距离。它的功能上等同于如果x1的shape是 [B,P,M], x2的shape是[B,R,M],则cdist的结果shape是 [B,P,R]原创 2023-02-04 22:41:46 · 15888 阅读 · 1 评论 -
【pytorch】在多个batch中如何使用nn.CrossEntropyLoss
有的时候我们需要计算多个batch的CrossEntropyLoss, 如下面的代码片段从官网上的例子来看, 一般input为(Number of Batch, Features), 而target一般为 (N,)原创 2022-12-13 23:05:44 · 1504 阅读 · 1 评论 -
【pytorch】使用pytorch自己实现LayerNorm
pytorch中使用LayerNorm的两种方式,一个是。下面代码是分别使用这两种方式以及一种自己实现的方式。原创 2022-12-09 15:18:15 · 4131 阅读 · 0 评论 -
【pytorch】有关nn.EMBEDDING的简单介绍
假设有一本字典,就一共只有10单词,每个单词有5个字母组成。每一页上只写一个单词,所以这10页纸上分别写了这10个单词。内如如下,我们假定这本字典叫, 这里的10和5即上面介绍的含义,10个单词,每个单词5个字母;现在我要查看第2页和第3页(从0开始),那么我会得到 [s,m,a,l,l], [w,a,t,c,h] 内容。假定我们约定一个暗号,你告诉我页数,我就返回对应页数的单词。如,你发给我暗号 [ [2,3], [1,0], [8,6] ] (原创 2022-09-29 10:12:30 · 4421 阅读 · 1 评论 -
【numpy】numpy.where的使用
在官方note中,已经注明,如果是仅仅输入condition;那么它的作用等同于。原创 2022-09-14 13:01:09 · 488 阅读 · 0 评论 -
【pytorch】使用numpy实现pytorch的softmax函数与cross_entropy函数
公式Softmax(xi)=exp(xi)∑jexp(xj){Softmax}(x_{i}) = \frac{\exp(x_i)}{\sum_j \exp(x_j)}Softmax(xi)=∑jexp(xj)exp(xi)结果一致从源码上来看,torch.nn.functional.F.softmax实际上调用的是Tensor自身的softmax函数公式Log_softmax(xi)=lnexp(xi)∑jexp(xj){Log\_softmax}(x_{i}) = ln原创 2022-06-03 10:52:33 · 4517 阅读 · 1 评论 -
【pytorch异常处理】使用释放的图资源
【error】Trying to backward through the graph a second time, but the saved intermediate results have already been freedRuntimeError: Trying to backward through the graph a second time, but the saved intermediate results have already been freed. Specify reta原创 2022-05-12 17:47:13 · 568 阅读 · 0 评论 -
【pytorch】interpolate的简单使用
interpolate是用于做插值处理的,常见用途是用于上采样(upsampling);当然也是可以做下采样的(downsampling)官方的介绍如下参数列表如下简单使用下面做简单使用的介绍size和scale_factor两个参数只需要提供一个即可;他们的区别是,size指定了插值后的shape;而scale_factor只是提供一个系数去做倍增或者倍减;mode主要是指插值的算法,默认是"nearest", 它类似repeat操作,即复制最近的一个元素来实现插值,但是它必须适用于输入原创 2022-02-12 22:57:19 · 8092 阅读 · 0 评论 -
【numpy】np.cumprod的使用
np.cumproduct 与 np.cumprod在numpy总存在两个计算累积乘积量的函数,cumproduct ,和cumprod在测试一些行为时,发现一致,然后看源码,cumproduct 就是cumprod。所以下面都以cumprod函数名讲解计算累积乘积量样例1t=np.array([1,2,3,4,5,6,7,8]).reshape([2,4])print(t)y=np.cumprod(t)print(y)如果不指定维度,那么所有维度都会压缩为1维计算样例2t=np原创 2022-02-02 22:58:57 · 14785 阅读 · 0 评论 -
numpy的repeat和pytorch的repeat
numpy的repeat重复数组中的元素样例1从某一个维度复制,如下面从第一维度复制,(2,3)的张量复制后就是(4,3)x = np.array([1,2,3,4,5,6]).reshape(2,3)print(x)print("===repeat====")# 也可以写作为# x = np.repeat(x, 2, axis=0)x = x.repeat(2, axis=0)print(x, x.shape)如果复制第二个维度呢,那么(2,3)的张量复制后就是(2,6),但是原创 2022-02-01 16:42:37 · 1929 阅读 · 0 评论 -
【pytorch】StatScores的原理与使用
StatScores的原理与使用Confusion matrix (混淆矩阵)四分类定义关系图StatScores类继承关系四类任务Update与Compute方法update_input_format_classification的四个参数**_stat_scores**Confusion matrix (混淆矩阵)在介绍StatScores之前,我们先复习以下Confusion matrix。我们有两组数据,分别为真实分布,预测分布预测为真定义为Possitive,预测为假定义为Negetive原创 2021-09-26 12:00:53 · 460 阅读 · 0 评论 -
【pytorch】Metrics的工作原理
Metrics是torchmetrics库里的度量类基类,本篇大体介绍一下它是如何工作的它也是一个Model由类的定义可以看到,它继承与两个类,一个是我们熟悉的Module,另外一个是ABC,所以它从行为上来说,跟Module一样class Metric(Module, ABC):第一步 __call__它的行为同Model,所以通过__call__调用。所以,第一步是Model的__call____call__ : Callable[..., Any] = _call_impl__ca原创 2021-09-25 23:52:06 · 2723 阅读 · 1 评论 -
【pytorch】scatter的使用
作用scatter是“散开”的意思,顾名思义,是将一个Tensor按照index做分散。形式在pytorch中,scatter可以通过torch.scatter和torch.scatter_(修改自身数据),或者Tensor自生就有的方法scatterTensor.scatter_(dim, index, src, reduce=None) → Tensor参数input输入参数,如果是通过Tensor直接调用的,没有该参数(就是自身嘛),仅仅在torch.scatter/torch.sc原创 2021-09-24 18:09:20 · 1399 阅读 · 0 评论 -
【pytorch】torch.nn.functional.pad的使用
torch.nn.functional.pad 是对Tensor做padding,输入的参数必须的torch的Tensor一般地,习惯上会做如下声明import torch.nn.functional as F所以,torch.nn.functional.pad一般使用F.pad来代替参数列表第一个参数为Tensor第二个参数为一个Tuple,它表示分别对前,后做多少位的padding操作第三个参数位mode,mode一般有'constant’(default) 'reflect’ '原创 2021-09-09 18:59:40 · 6478 阅读 · 0 评论 -
【pytorch】nn.conv2d的使用
官方文档在这里。conv2d具体不做介绍了,本篇只做pytorch的API使用介绍.torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode=‘zeros’, device=None, dtype=None)input张量input为入参,其shape必须为4维的,其中每一维度含义如下N:Batch Numb原创 2021-09-02 12:33:46 · 777 阅读 · 0 评论 -
【pytorch】nn.conv1d的使用
官方文档在这里。conv1d具体不做介绍了,本篇只做pytorch的API使用介绍.torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode=‘zeros’, device=None, dtype=None)计算公式输入张量的Shape一般为(N,Cin,L)(N,C_{in}, L)(N,Cin,L),其中原创 2021-08-30 13:34:07 · 3346 阅读 · 2 评论 -
【pytorch】nn.GRU的使用
官方文档在这里。GRU具体不做介绍了,本篇只做pytorch的API使用介绍.torch.nn.GRU(*args, **kwargs)公式下面公式忽略bias,由于输入向量的长度和隐藏层特征值长度不一致,所以每个公式的W都按x和h分开。这跟理论公式部分有一些具体的实践上区别。reset gate, 重置门rt=σ(Wirxt+Whrht−1)r_t = \sigma(W_{ir}x_t+W_{hr}h_{t-1})rt=σ(Wirxt+Whrht−1) GRU里的参数.原创 2021-08-29 17:16:56 · 12307 阅读 · 0 评论 -
【pytorch】nn.LSTM的使用
官方文档在这里。LSTM具体不做介绍了,本篇只做pytorch的API使用介绍torch.nn.LSTM(*args, **kwargs)公式LSTM中参数挖掘以下公式介绍都忽略bias公式(1), 输入门it=δ(Wiixt+Whiht−1)i_t = \delta(W_{ii}x_t+W_{hi}h_{t-1})it=δ(Wiixt+Whiht−1), LSTM中有关输入的参是是WiiW_{ii}Wii和WhiW_{hi}Whi公式(2),遗忘门ft=δ(Wifx原创 2021-08-29 00:38:26 · 11179 阅读 · 2 评论 -
【pytorch】torch.nn.GroupNorm的使用
torch.nn.GroupNorm字面意思是分组做Normalization,官方说明在这里。torch.nn.GroupNorm(num_groups, num_channels, eps=1e-05, affine=True, device=None, dtype=None)计算公式E[x]是x的均值;Var[x]是标准差;gama和beta是训练参数,如果不想使用,可以通过参数affine=False设置。默认为True;eposilon是输入参数,防止Var为0,默认值为1e-原创 2021-08-27 14:20:54 · 17761 阅读 · 3 评论 -
【pytorch】拟合sin函数
我们使用指数函数y=a+bx+cx3+dx5y=a+bx+cx^3+dx^5y=a+bx+cx3+dx5来拟合三角函数sin函数y=sin(x)y=sin(x)y=sin(x)由泰勒公式也可知,sin可以展开为指数形式的多项式代码如下:dtype = torch.floatdevice = torch.device("cpu")x = torch.linspace(-math.pi, math.pi, 2000, device=device, dtype=dtype)y =原创 2021-08-22 16:08:46 · 1424 阅读 · 0 评论 -
【pytorch】torch.mm,torch.bmm以及torch.matmul的使用
torch.mmtorch.mm是两个矩阵相乘,即两个二维的张量相乘如下面的例子mat1 = torch.randn(2,3)print("mat1=", mat1)mat2 = torch.randn(3,2)print("mat2=", mat2)mat3 = torch.mm(mat1, mat2)print("mat3=", mat3)但是如果维度超过二维,则会报错。RuntimeError: self must be a matrixtorch.bmm它其实就是加了一原创 2021-08-19 19:26:29 · 32106 阅读 · 1 评论 -
【pytorch】torch.mean的使用
torch.mean是对torch.Tensor取均值。具体怎么使用,请看下面的例子不指定维度求均值如果不指定维度,是对Tensor里所有元素求均值,最后计算出来的结果是一个标量。a = torch.Tensor([0, 1, 2, 3, 4, 5]).view(2, 3, 1)print(a)mean = torch.mean(a)print(mean, mean.shape)结果如下:指定其中一维如果指定了某一维度,那么剩下的所有元素算均值。下面的例子是对(2,3,1)Tens原创 2021-08-05 20:38:43 · 8730 阅读 · 1 评论