
深度学习
Vivinia_Vivinia
微信号:healer_healer
展开
-
深度学习-词频统计
项目下载项目页面:目标效果:代码:import reimport pandasimport jiebaimport numpyimport warningsimport matplotlib.pyplot as pltfrom wordcloud import WordCloudwarnings.filterwarnings("ignore") #忽略警...原创 2019-11-30 22:39:13 · 483 阅读 · 0 评论 -
深度学习-强化学习Q-learning算法简易实现
目标效果:这里贴一下Q-learning的公式:代码:import numpy as npimport pandas as pdimport timenp.random.seed() # 计算机产生一组伪随机数列N_STATES=6 # 有多少个state,即有多少种状态,最开始的距离离宝藏的距离多少步ACTIONS=['left','right'] # 两...原创 2019-11-26 14:53:27 · 678 阅读 · 0 评论 -
深度学习-深度可分离卷积详解
为了计算方便,这里先固定stride=1,padding=1,卷积核大小DK=3,这样卷积后和之前的特征图大小相等,都是DF。普通卷积: M=3为通道数,DF为特征图大小,N=5为卷积核个数,经过卷积特征图大小为DF不变,通道变为N。 矩阵运算次数:DF*DF*M*N*DK*DK 卷积核参数:DK*DK*M*N...原创 2019-11-18 15:34:27 · 1582 阅读 · 1 评论 -
深度学习-使用RNN生成诗
代码连链接 这里稍微更改了下《深度学习框架PyTorch:入门与实践》里的demo,去掉稍微繁琐和多次训练的部分,只保留了比较核心的生成连接诗和藏头诗两部分(比较渣太复杂了看不懂)。目标效果:连接诗:机器学习书,局上无酒浆。婆娑珍金盘,缕烂金葳浆。萱草发秋叶,旖旎镂金墙。拳芳既盈薄,禄位不敢匼。揆我不及饱,有时不相并。我为蘧生意,日出狱所宣。徇禄惩未卜,退食何由尝。濡毫...原创 2019-11-15 16:30:08 · 1641 阅读 · 7 评论 -
深度学习-Word Embedding的详细理解(包含one-hot编码和cos余弦相似度)
这两天在费劲的研究单词嵌入Embedding,好不容易稍微懂了一点,赶紧记下来省的忘了。ont-hot编码: 一般在输入的时候,都会将所有的单词看作一个向量,只把当前的单词置为1,以下为几组单词表和单词向量的表示方式:当前单词为apple[apple,man,banana,cat......,orange,kite][1,0,0,0...0,0]...原创 2019-11-12 15:40:02 · 2992 阅读 · 0 评论 -
深度学习-t-SNE对S型数据降维
目标效果:代码:import numpy as npfrom sklearn.manifold import TSNEfrom time import timeimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfrom sklearn import manifold, datas...原创 2019-11-09 20:30:00 · 892 阅读 · 0 评论 -
深度学习-使用t-SNE对MNIST数据集进行分类
我们在对数据进行降维时,比较常用的方法有LLE(局部线性嵌入),LE(拉普拉斯映射)还有t-SNE,前两种主要考虑高维中距离相近的点在低维中还要保持距离相近,但是没有考虑高维中距离较远的点在低维是怎样的情况,而t-SNE恰好解决了这个问题,t-SNE的目标是高维中距离相近的点低维中还要相近,高维中距离较远的点,低维中距离要被拉大。 t-SNE将相似度转换为一种概率...原创 2019-11-08 16:38:39 · 5810 阅读 · 3 评论 -
深度学习-DRGAN对抗神经网络生成动漫头像
动漫头像素材,项目中新建data文件夹放进去 具体思路是,生成器是将一个噪点生成一副假图片,然后将假图片传给判别器进行判断,如果判别器判断为真,则代码生成器性能很好,而判别器是从真实图片中学习模型,对生成的假图片进行判断,如果判断出来为假则代码判别器性能很好。关于代码的具体注释已经写上,需要单独开博客讲的内容在前几篇博客里写了,直接上代码吧:train.py主运行页面:...原创 2019-10-31 16:47:11 · 3702 阅读 · 1 评论 -
深度学习-逆卷积神经网络ConvTranspose2d
卷积神经网络Conv2d是对图片进行下采样,图片越来越小,而逆卷积神经网络ConvTranspose2d是对图片进行上采样,图片越来越大,卷积与逆卷积是互相对应的。 首先,不管stride等于几,卷积公式都为,逆卷积公式为(注意这个p和s是对应的卷积操作的p和s)。1.当stride=1时:卷积操作:由图片得知,i=4,o=2,k=3,s=1,p=...原创 2019-10-31 08:49:40 · 1855 阅读 · 0 评论 -
深度学习-Batch normalization的理解
进行多次的数据处理后,可能会导致数据分布不均匀,不同特征值的重要程度不同,比如:左图中w1特征影响较大,w2特征影响较小,所以再进入最中间椭圆后,w2方向几乎不怎么变动了,并且在椭圆的不同位置到达圆心的距离相差很大。而在右图中,圆上同圈内不同位置的点到达圆心的距离是相等的,w1和w2同等重要。所以需要对数据进行归一化,比如normalization 归一化,将数据转换成(0,1)之间...原创 2019-10-30 17:14:50 · 289 阅读 · 0 评论 -
深度学习-ResNet18模型分类CIFAR10数据集详解
简介:首先,ResNet是何凯明大神在2015年提出的,该模型提出后立刻引起轰动。因为在传统卷积神经网络中,当深度越来越深,就会出现梯度消失或者梯度爆炸等问题,从而使准确率降低。结构理解:残差块的短路部分被称作Shortcut Connection,单个残差块的期待输出为H(x),H(x)是由传统卷积层的输出F(x)加短路部分携带的初始数据x求得。特征变换:为了...原创 2019-10-24 22:42:16 · 7874 阅读 · 1 评论 -
深度学习-LSTM与GRU的简单理解
前边我们讲了关于CNN的理解,但是CNN并没有以及能力,所以只能处理一种特定的视觉任务,没法根据以前的记忆来处理新的任务。循环神经网络RNN(Recurrent Neural Network)的提出便是基于记忆模型的想法,期望网络能够记住前面出现的特征,并依据特征推断后面的结果,而且整体的网络结构不断循环,因而得名循环神经网络。循环神经网络目前使用最多的两种变式:LSTM和GRU。传统RN...原创 2019-10-17 10:45:28 · 725 阅读 · 0 评论 -
深度学习-使用PyTorch分类CIFAR10数据集
十月一前老师布置的任务,让对这个数据集进行分类,我使用的CNN,贴的代码事三层卷积+四层全连接,这几天试了四层卷积和两层全连接以及修改参数的各种混搭组合,就是CPU跑一次数据集太慢了,随机取样那段代码整理的出错,就只能一次性跑全部图片,大概一个多小时才能跑完,心累。训练情况:运行效果:代码:import torchimport torchvisionimport to...原创 2019-10-17 10:33:27 · 2371 阅读 · 0 评论 -
深度学习-卷积神经网络CNN的理解
卷积神经网络的基本形式:卷积神经网络的原理:1.局部性对于一张图片而言,需要检测图片中的特征来决定图片的类别,通常情况下这些特征都不是由整张图片决定的,而是由一些局部的区域决定的。2.相同性对于不同的图片,如果他们具有相同的特征,这些特征会出现在图片的不同的位置,也就是说可以用相同的检测模式取检测不同的图片特征。3.不变性对于一张图片,如果我们进行下采...原创 2019-10-13 15:23:31 · 689 阅读 · 0 评论 -
深度学习-Sigmoid函数和Softmax函数
1.Sigmoid函数:定义:Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的激活函数,将变量映射到0,1之间,一般用来做二分类。公式:图像:特点:当x趋近于负无穷时,y趋近于0;当x趋近于正无穷时,y趋近于1;当x= 0时,y=0.5。优点:sigmoi...原创 2019-10-12 20:20:45 · 2158 阅读 · 0 评论 -
深度学习-PyTorch的批数据训练
当数据比较大时,PyTorch提供一个工具可以将数据分批进行训练。思想就是将数据放入torch中的TensorDataset数据库,再放入数据加载器,设定一批的加载个数进行加载。官方文档解释:import torchimport torch.utils.data as DataBATCH_SIZE = 5 # 一批5个数据x = torch.linspace(1, 10, ...原创 2019-07-29 10:16:13 · 940 阅读 · 0 评论 -
深度学习-使用PyTorch显示CIFAR10图像及RGB通道亮度图
目标效果:代码:import numpy as npimport torchfrom torchvision import datasetsimport torchvision.transforms as transformsfrom torch.utils.data.sampler import SubsetRandomSamplerimport matplot...原创 2019-10-12 11:28:41 · 2669 阅读 · 1 评论 -
深度学习-Optimizer优化器的比较
深度学习中常用的优化器一般有如下几种:BGD(批量梯度下降法,Batch Gradient Descent):是最原始的形式,它是指在每一次迭代时使用所有样本来进行梯度的更新。 优点:由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,BGD一定能够得到全局最优。 缺点:当样本数目 mm 很大时,每迭代一步都需要对所有样本计算,训练过...原创 2019-07-29 16:26:49 · 600 阅读 · 0 评论 -
深度学习-使用CNN分类MNIST数据集
参考莫烦大神的视频,视频中没有讲最后的动画演示,他github中有,但是一是数据太大笔记本一运行就卡,二是绘制那部分代码看不懂,所以我删掉了,只是简单运行显示下正确率。import torchimport torch.nn as nnimport torchvisionimport torch.utils.data as Dataimport matplotlib.pyplot as...原创 2019-07-30 11:22:06 · 986 阅读 · 0 评论 -
深度学习-使用RNN-LSTM分类MNIST数据集
传统CNN有一个主要特点,就是没有记忆,他们单独处理每个输入,在输入和输入之间没有保存任何状态,对于这样的网络,有些事是无法较好实现的。比如像阅读一篇文章或者一个句子,需要不断地对输入信息进行整合理解,才能更好的解决问题,这时候就需要用到RNN(循环神经网络)。RNN简单理解就是一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之...原创 2019-07-30 17:24:10 · 1172 阅读 · 0 评论 -
深度学习-自编码 (Autoencoder)转换MNIST图像数据集
关于自编码 (Autoencoder),可见但理解为,当输入信息的信息量比较大时,神经网络直接从大量信息中学习是很复杂一件事,但是如果将信息进行压缩,保留关键部分,神经网络学习起来就比较轻松了,等到学习完,可以将信息解压,对比正确率,然后不断地反向传播进行修改权重。下面的例子是将MNIST图片进行压缩后解压:import torchimport torch.nn as nnimp...原创 2019-07-31 12:41:08 · 862 阅读 · 0 评论 -
深度学习-GAN生成式对抗网络
生成式对抗网络(GAN,generative adversarial network)的简单理解就是,想想一名伪造者试图伪造一幅毕加索的画作。一开始,伪造者非常不擅长这项任务,他随便画了幅与毕加索真迹放在一起,请鉴定商进行评估,鉴定商鉴定后,将结果反馈给伪造者,并告诉他怎样可以让❀看起来更像毕加索的真迹。伪造者学习后回去重新画,然后再拿给鉴定商鉴定,多次循环后,伪造者已经十分熟练的伪造毕加索的画作...原创 2019-07-31 16:07:22 · 487 阅读 · 0 评论 -
深度学习-使用Tensorflow模拟线性回归
基本过程为:随机创建数据点(根据某条直线波动),然后动过训练,看是否最终得出的直线方程是否是一开始使用的那个。import tensorflow as tfimport numpy as npimport matplotlib.pyplot as pltimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 1是默认的显示等级,显示...原创 2019-07-27 09:28:54 · 393 阅读 · 0 评论 -
深度学习-使用PyTorch模拟二次函数
目标效果:import torchimport torch.nn.functional as ffrom torch.autograd import Variableimport matplotlib.pyplot as plt"""生成随机数据"""x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1) # x轴数据从...原创 2019-07-27 19:35:11 · 2405 阅读 · 2 评论 -
深度学习-使用PyTorch模拟二分类
目标效果:import torchimport torch.nn.functional as ffrom torch.autograd import Variableimport matplotlib.pyplot as plt"""生成随机数据"""n_data = torch.ones(100, 2) # 生成全为1的100行2列的张量x0 = torch.norma...原创 2019-07-28 15:12:45 · 1787 阅读 · 0 评论 -
深度学习-使用PyTorch模拟二分类(快速搭建神经网络层)
代码只改了一个class类和一个传入的地方,不过为了方便还是直接把代码全贴上:import torchfrom torch.autograd import Variableimport matplotlib.pyplot as plt"""生成随机数据"""n_data = torch.ones(100, 2) # 生成全为1的100行2列的张量x0 = torch.norma...原创 2019-07-28 15:45:42 · 2515 阅读 · 0 评论 -
深度学习-基于PyTorch的神经网络的保存和提取
神经网络存储有两种方式,一种是保存整个网络,包括框架和参数,另一种是保存参数,相应的,提取液包括两种方式,一般建议采用保存/提取参数的方式。import torchimport matplotlib.pyplot as plt"""生成随机数据"""x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1) # x轴数据从-1到1,...原创 2019-07-28 17:43:54 · 833 阅读 · 0 评论 -
深度学习-手动搭建神经网络
附上一个网址,这个网址可以比较直观的显示一个神经网络模型的样子:神经网络页面中以下代码中的数字1,代表一层:layer_defs.push({type:'fc', num_neurons:1, activation: 'tanh'});layer_defs.push({type:'fc', num_neurons:1, activation: 'tanh'});改为3,神经...原创 2019-07-24 15:02:59 · 1088 阅读 · 0 评论