
Pytorch
文章平均质量分 53
Pytorch入门及实践
沐念丶
少一些功利主义的追求,多一些不为什么的坚持!
展开
-
Pytorch学习之损失函数
损失函数损失函数通过torch.nn包实现,1 基本用法criterion = LossCriterion() #构造函数有自己的参数loss = criterion(x, y) #调用标准时也有参数2 损失函数2-1 L1范数损失 L1Loss计算 output 和 target 之差的绝对值。torch.nn.L1Loss(reduction=‘mean’)参数:reduction-三个值,none: 不使用约简;mean:返回loss和的平均值; sum:返回loss的和。默认:m转载 2020-07-12 16:09:55 · 1016 阅读 · 0 评论 -
Pytorch实现标准RNN、LSTM和GRU
标准RNN先给出标准RNN的示意图,如下图所示:从图中可以看到在标准RNN的内部网络中,计算公式为:ht=tanh(wih∗xt+bih+whh∗ht−1+bhh)h_t=tanh(w_{ih}*x_t+b_{ih}+w_{hh}*h_{t-1}+b_{hh})ht=tanh(wih∗xt+bih+whh∗ht−1+bhh)在Pytorch中的调用也非常简单,只需nn.RNN()nn.RNN()nn.RNN()即可。下面介绍其中的参数。input_size表示输入xtx_txt的原创 2020-07-05 19:15:53 · 1168 阅读 · 0 评论 -
循环神经网络:GRU
GRUGRU是由Cho在2014年提出的,全称是Gated Recurrent Unit。它与LSTM最大的不同在于GRU将遗忘门和输入门合成了一个“更新门”,同时网络不再额外给出记忆状态CtC_tCt,而是将输出结果hth_tht作为记忆状态不断向后循环传递,网络的输入和输出都变得特别简单。具体的计算过程如下图所示:在本质上,GRU和LSTM是相同的,将上一时刻t−1t-1t−1输出ht−1h_{t-1}ht−1和当前ttt时刻的输入xtx_txt结合起来计算各种衰减系数,略微不同的地方是,线性原创 2020-07-05 11:10:15 · 1936 阅读 · 0 评论 -
循环神经网络:LSTM
LSTMLSTMLSTMLSTM的网络结构是1997年由HochreiterHochreiterHochreiter和SchmidhuberSchmidhuberSchmidhuber提出的,全称是Long Short Term Memory Networks$的缩写,字面翻译就是长的短时记忆网络,其实解决的仍是短时记忆问题,只不过这种短时记忆比较长,能在一定程度上解决长时依赖的问题。这种网络结构也是链式循环的网络结构,但其内部有着更加复杂的结构,其抽象网络结构示意图如下所示:...原创 2020-07-05 10:23:23 · 525 阅读 · 0 评论 -
循环神经网络
循环神经网络循环神经网络的基本结构存在的问题循环神经网络的基本结构通俗讲,循环神经网络的结构就是将网络的输出保存在一个记忆单元中,这个记忆单元和下一次的输入一起进入神经网络中。使用一个简单的两层网络示范,如下图:图中,我们可以看到网络在输入的时候会联合记忆单元一起作为输入,其中,网络不仅输出结果,还会将结果保存到记忆单元中。上图就是一个最简单的循环神经网络在一次输入时的结构示意图。可以发现,输入序列的顺序改变,网络输出的结果也会随之改变,这是因为记忆单元的存在,使得两个序列在顺序改变之后记忆单元中的元素原创 2020-07-04 21:22:38 · 443 阅读 · 0 评论 -
常用神经网络层
常用神经网络层图像相关层图像相关层主要包括卷积层(Conv)、池化层(Pool)等,这些层在实际使用中可分为一维(1D)、二维(2D)、三维(3D),池化方式又分为平均池化(AvgPool)、最大值池化(MaxPool)、自适应池化(AdaptiveAvgPool)等。而卷积层除了常用的前向卷积之外,还有逆卷积(TransposeConv)。下面举例说明一些基础的使用。from PIL im...原创 2020-06-23 21:15:42 · 1029 阅读 · 0 评论 -
神经网络工具箱torch.nn
torch.nn的核心数据结构是Module,它是一个抽象概念,既可以表示神经网络中的某个层(layer),也可以表示一个包含很多层的神经网络。在实际使用中,最常见的做法是继承nn.Module,撰写自己的网络/层。下面先来看看如何用nn.Module实现自己的全连接层。全连接层,又名仿射层,输出y\textbf{y}y和输入x\textbf{x}x满足y=Wx+b\textbf{y=Wx+b}y...原创 2020-04-22 23:09:57 · 429 阅读 · 0 评论 -
Pytorch实现线性回归
线性回归是机器学习入门知识,应用十分广泛。线性回归利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的,其表达形式为y=wx+b+ey = wx+b+ey=wx+b+e,eee为误差服从均值为0的正态分布。首先让我们来确认线性回归的损失函数:loss=∑iN12(yi−(wxi+b))2loss = \sum_i^N \frac 1 2 ({y_i-(wx_i+b)})^2l...原创 2020-04-22 16:19:19 · 268 阅读 · 0 评论 -
tensor内部结构
ensor的数据结构如下图所示。tensor分为头信息区(Tensor)和存储区(Storage),信息区主要保存着tensor的形状(size)、步长(stride)、数据类型(type)等信息,而真正的数据则保存成连续数组。由于数据动辄成千上万,因此信息区元素占用内存较少,主要内存占用则取决于tensor中元素的数目,也即存储区的大小。一般来说一个tensor有着与之相对应的storage...原创 2020-04-22 15:12:27 · 1196 阅读 · 0 评论 -
Tensor和Numpy
Tensor和Numpy数组之间具有很高的相似性,彼此之间的互操作也非常简单高效。需要注意的是,Numpy和Tensor共享内存。由于Numpy历史悠久,支持丰富的操作,所以当遇到Tensor不支持的操作时,可先转成Numpy数组,处理后再转回tensor,其转换开销很小。示例代码:from __future__ import print_functionimport torch as t...原创 2020-04-22 13:55:49 · 5178 阅读 · 0 评论 -
创建、操作Tensor(二)
Tensor类型Tensor有不同的数据类型,如下表所示,每种类型分别对应有CPU和GPU版本(HalfTensor除外)。默认的tensor是FloatTensor,可通过t.set_default_tensor_type 来修改默认tensor类型(如果默认类型为GPU tensor,则所有操作都将在GPU上进行)。Tensor的类型对分析内存占用很有帮助。例如对于一个size为(1000,...原创 2020-04-22 13:31:53 · 666 阅读 · 0 评论 -
创建、操作Tensor(一)
Tensor,又名张量,从工程角度来讲,可简单地认为它就是一个数组,且支持高效的科学计算。它可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)和更高维的数组(高阶数据)。Tensor和Numpy的ndarrays类似,但PyTorch的tensor支持GPU加速。创建Tensor函数功能Tensor(*sizes)基础构造函数tensor(data,)类似n...原创 2020-04-22 10:37:48 · 2434 阅读 · 0 评论 -
Pytorch 训练分类器——CIFAR-10分类
Pytorch 训练分类器数据处理概述构造图像分类器数据处理概述通常来说,当处理图像,文本,语音或者视频数据时,可以使用标准 python 包将数据加载成 numpy 数组格式,然后将这个数组转换成 torch.*Tensor。对于图像,可以用 Pillow,OpenCV对于语音,可以用 scipy,librosa对于文本,可以直接用 Python 或 Cython 基础数据加载模块,...原创 2020-03-27 15:38:06 · 842 阅读 · 0 评论 -
Pytorch神经网络
Pytorch神经网络概述定义神经网络概述神经网络可以通过 torch.nn 包来构建。它是基于自动梯度 (autograd)来定义一些模型。一个 nn.Module 包括层和一个方法 forward(input), 它会返回输出(output)。例如,看一个数字图片识别的网络:这是一个简单的前馈神经网络,它接收输入,让输入一个接着一个的通过一些层,最后给出输出。一个典型的神经网络训练...原创 2020-03-27 09:58:53 · 353 阅读 · 0 评论 -
Pytorch实现蒙特卡罗概率算法求圆周率
蒙特卡罗概率算法求圆周率代码结果代码import torchnum_sample = 100000000#可自定义,越大所求结果精确度越高sample = torch.rand(num_sample, 2)dist = sample.norm(p=2, dim=1)#按1维度求2范数,在此就是求两个数的平方和后再开根号ratio = (dist < 1).float().mean...原创 2020-03-26 23:05:36 · 785 阅读 · 1 评论 -
神经网络防止过拟合
神经网络防止过拟合Dropout Regularization输出最终结果注意Dropout Regularization通过带有正则化的神经网络和没有正则化的神经网路作对比,从直观上观察正则化的效果,附上代码:import torchimport matplotlib.pyplot as pltN_SAMPLES = 20 #每种数据的总数N_HIDDEN = 300 #网络中的节...原创 2020-03-26 21:21:53 · 258 阅读 · 0 评论 -
Pytorch实现自动微分
Pytorch实现自动微分autograd 包是 Pytorch 中所有神经网络的核心,为 Tensors 上的所有操作提供自动微分。它是一个由运行定义的框架,这意味着以代码运行的方式定义你的后向传播,并且每次迭代都可以不同。我们从 tensor 来举一些例子。torch.Tensor 是包的核心类。如果将其属性 .requires_grad 设置为 True,则会开始跟踪针对 tensor ...原创 2020-03-26 19:41:25 · 867 阅读 · 0 评论 -
Pytorch在windows上的安装
转载:PyTorch Windows 安装教程:两行代码搞定 PyTorch 安装转载 2020-03-26 14:45:30 · 245 阅读 · 0 评论 -
Pytorch概述和torch基本运算
Pytorch概述PyTorch是一个基于Python的库,用来提供一个具有灵活性的深度学习开发平台,其工作流程非常接近Python的科学计算库——numpy。它主要具有以下3个优点:易于使用的API—它就像Python一样简单。Python的支持—非常类似于numpy。动态计算图—取代了具有特定功能的预定义图形,PyTorch为我们提供了一个框架,以便可以在运行时构建计算图,甚至在运...原创 2020-03-26 13:03:43 · 566 阅读 · 0 评论