深度学习
文章平均质量分 68
geter_CS
你要把时间用在美好的事情上,不要总是在不值得的事情上浪费。停止自我否定,多去肯定自己;停止反复懊悔,学会坦然放下;停止急于求成,耐心等待自律带来的变化......
展开
-
tf.Variable、tf.get_variable、tf.variable_scope以及tf.name_scope关系
转自博客善良的猪猪1. tf.Variable与tf.get_variabletensorflow提供了通过变量名称来创建或者获取一个变量的机制。通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要将变量通过参数的形式到处传递。TensorFlow中通过变量名获取变量的机制主要是通过tf.get_variable和tf.variable_scope实现的。当然,变量也可以通过...转载 2019-03-27 10:30:50 · 338 阅读 · 0 评论 -
Gram-Schmidt正交变化
Gram-Schmidt正交变化原创 2018-12-20 14:26:13 · 4737 阅读 · 0 评论 -
二次型,正定二次型
二次型:含有n个变量x1,x2,...xnx_1,x_2,...x_nx1,x2,...xn的二次齐次函数:f(x1,x2,...xn)=a11x12+a12x1x2+a13x1x3+a14x1x4...+a1nx1xnf(x_1,x_2,...x_n)=a_{11}x_1^2+a_{12}x_1x_2+a_{13}x_1x_3+a_{14}x_1x_4...+a_{1n}x_1x_nf(...原创 2018-12-20 19:42:33 · 3326 阅读 · 0 评论 -
pytorch中学习率的改变
如下我们定义一个简单的网络:import torchimport torch.nn as nnfrom torch.autograd import Variableclass net(nn.Module): def __init__(self): super(net, self).__init__() self.input=2 sel...原创 2019-01-05 16:10:30 · 2040 阅读 · 0 评论 -
pytorch 中pad函数toch.nn.functional.pad()的使用
padding操作是给图像外围加像素点。为了实际说明操作过程,这里我们使用一张实际的图片来做一下处理。这张图片是大小是(256,256),使用pad来给它加上一个黑色的边框。具体代码如下:import torch.nn,functional as Fimport torchfrom PIL import Imageim=Image.open("heibai.jpg",'r')X=...原创 2019-03-01 11:21:42 · 18512 阅读 · 1 评论 -
tanh,relu,sigmoid激活函数numpy实现
from matplotlib import pyplot as plx=np.arange(-5,5,0.01)#Reluy1=np.where(x>0,x,0)pl.plot(x,y1)pl.show()y2=(x+np.abs(x))/2pl.plot(x,y2)pl.show()y3=np.maximum(x,0)pl.plot(x,y3)pl.sho...原创 2019-03-17 19:28:13 · 5736 阅读 · 0 评论 -
tensorflow模型的保存和重载
tensorflow模型的保存使用tf.train.Saver()例子:import tensorflow as tfimport numpy as npX=tf.placeholder(dtype=tf.float32,shape=[20,1])Y=tf.placeholder(dtype=tf.float32,shape=[20,1])W=tf.Variable(tf.zero...原创 2019-04-01 12:34:24 · 361 阅读 · 0 评论 -
Effective Approaches to Attention-based Neural Machine Translation论文笔记
这篇文章在NMT(Neural machine translation)上尝试了两种简单且有效的注意力机制:一个可以注意所有单词的全局方法(global approach),和一个只看部分单词的局部方法(local approach).1.全局方法类似(Bahdanau et al.2015),但是结构更简单,2.局部方法可以看为是hard和soft注意力机制(Xu et al.,2015)的...原创 2019-04-22 21:58:19 · 499 阅读 · 0 评论 -
SeqGAN论文笔记
原始的GAN提出用于图像生成,其在实数值生成上可以很好的work,但是当目标是生成序列化离散token时就会有限制,主要原因文中说了两点:这主要是因为离散输出的生成模型使得很难将梯度更新从判别模型传递到生成模型。根据Ian Goodfelllow说的,GANs是通过训练生成器来合成数据,然后在合成数据上使用判别器,判别器的输出梯度将后告诉生成器,如何略微改变合成数据使其更加真实。一般来说,只有...原创 2019-05-13 16:49:46 · 1601 阅读 · 0 评论 -
torch.distributions.normal,torch.distributions.normal.log_prob,torch.distributions.normal.rsample
pytorch的torch.distributions中可以定义正态分布如下:import torchfrom torch.distributions import Normalmean=torch.Tensor([0,2])normal=Normal(mean,1)sample()sample()就是直接在定义的正太分布(均值为mean,标准差std是1)上采样:c=norm...原创 2019-06-03 15:14:57 · 17806 阅读 · 3 评论 -
梯度下降法与最速下降(凸优化方法)
梯度下降法:假设目标优化形式为:argminxf(x)argmin_xf(x)argminxf(x)即我们要求取函数f(x)f(x)f(x)的最小值,那么根据梯度下降法,可以如下算法:while∣∣▽f(xk)∣∣≥ϵwhile||\bigtriangledown f(x_k)||\geq\epsilonwhile∣∣▽f(xk)∣∣≥ϵ dk=−▽f(xk)d_k=-\bigt...原创 2018-12-20 11:17:55 · 4654 阅读 · 0 评论 -
共轭梯度(凸优化方法)
牛顿法拟牛顿法共轭梯度法原创 2018-12-21 17:25:19 · 1731 阅读 · 0 评论 -
pytorch AvgPool2d函数
import torchimport torch.nn as nnimport torch.nn.functional as Ffrom torch.autograd import Variableimport numpy as npinput = Variable(torch.Tensor([[[1, 3, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5...原创 2018-05-22 17:43:39 · 45243 阅读 · 2 评论 -
nn.Softmax()与nn.LogSoftmax()
nn.Softmax()计算出来的值,其和为1,也就是输出的是概率分布,具体公式如下:这保证输出值都大于0,在0,1范围内。而nn.LogSoftmax()公式如下:由于softmax输出都是0-1之间的,因此logsofmax输出的是小于0的数, softmax求导:logsofmax求导:例子:import torch.nn as nnimp...原创 2018-09-28 11:24:37 · 32805 阅读 · 3 评论 -
pytorch中的torch.utils.data.Dataset和torch.utils.data.DataLoader
首先看torch.utils.data.Dataset这个抽象类。可以使用这个抽象类来构造pytorch数据集。要注意的是以这个类构造的子类,一定要定义两个函数一个是__len__,另一个是__getitem__,前者提供数据集size,而后者通过给定索引获取数据和标签。__getitem__一次只能获取一个数据(不知道是不是强制性的),所以通过torch.utils.data.DataLoade...原创 2018-10-25 20:17:55 · 14103 阅读 · 3 评论 -
pytorch 的embeding
pytorch提供word embeding的功能来构建词向量,非稀疏向量。我们来看看他的定义方式:import torch.nn as NNimport torchfrom torch.autograd import Variableembeding=NN.Embedding(6,5)print(embeding.weight)输出:Parameter containing...原创 2018-10-25 21:47:08 · 912 阅读 · 0 评论 -
pytorch的 torchvision transforms
torchvision是pytorch的数据集,也包含常用数据处理工具,包含几个模块:datasets(包含常用的数据集:minist,COCO等)models(包含常用的著名网络结构:AlexNet,VGG,ResNet等等,你可以使用随机初始化的网络结构,也可以使用已经训练好的网络)transforms(对PIL.Image进行变换处理:Scale(缩放)、CenterCrop(中心切...原创 2018-11-29 15:18:15 · 2677 阅读 · 0 评论 -
卷积(Convolution)与转置卷积(Convolution Transposed)
要注意转置卷积有点类似卷积的反向传播,并不是等价于反向传播。因为转置卷积只是恢复了原图的size而没有恢复其值。卷积如下上图所示输入是5∗55*55∗5的,卷积核是3∗33*33∗3,然后pading是0,stride是1。卷积过程如第二幅图所示。根据计算公式(W−F+2P)/S+1(W-F+2P)/S+1(W−F+2P)/S+1,有(5−3+2∗0)/1+1(5-3+2*0)/1+1(5−...原创 2018-11-30 21:05:42 · 807 阅读 · 0 评论 -
pytorch损失函数之nn.BCELoss()(为什么用交叉熵作为损失函数)
交叉熵原创 2018-12-03 17:10:16 · 67461 阅读 · 11 评论 -
熵,KL散度,交叉熵
在信息论中定义一个事件X=xX=xX=x的自信息(self-information)为:I(p)=−logpI(p)=-logpI(p)=−logp,表示以P(X=x)=pP(X=x)=pP(X=x)=p的概率观测到的这事件时所包含的信息量,单位为奈特(nats),P(X=x)表示事件的概率其值为p,那么一奈特就是:以1/e1/e1/e的概率观察到一个事件时获取的信息量(−log(1/e)=1-l...原创 2018-12-03 13:43:28 · 3699 阅读 · 0 评论 -
pytorch中交叉熵
关于pytorch中交叉熵的使用,pytorch的交叉熵是其loss function的一种且包含了softmax的过程。pytorch中交叉熵函数是nn.CrossEntropyLoss()。其参数包括:weight,size_averaged,reduceweight参数通常默认值是0,如果你的训练样本很不均衡的话,可以设置其值。size_averaged参数是设置是否取均值,默认...原创 2018-04-08 20:23:05 · 15432 阅读 · 2 评论 -
pytorch损失函数之nn.CrossEntropyLoss()、nn.NLLLoss()
这个损失函数用于多分类问题虽然说的交叉熵,但是和我们理解的交叉熵不一样原创 2018-12-06 15:43:21 · 154569 阅读 · 19 评论 -
循环网络视觉attention机制 论文笔记
这是读了“Recurrent Models of Visual Attention ”这篇论文后的总结这种注意机制的方法是使用强化学习来预测一个需要专注的近似位置。这听起来更像人类的注意力,这就是视觉注意递归模型( Recurrent Models of Visual Attention)所完成的事情。然而,强化学习模型不能用反向传播进行首尾相连的训练,因此它们并不能广泛应用于NLP问题中。(...原创 2018-05-08 12:49:13 · 651 阅读 · 0 评论