自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 某洋快速潼关(程序员专属版,电脑版微信)

某洋 fast 潼关bao dian

2022-09-17 16:23:27 671 1

原创 基于深度学习的稳态视觉诱发电位(SSVEP)解析——连载1

基于深度学习的稳态视觉诱发电位(SSVEP)解析

2022-08-12 11:17:58 1284

原创 深度学习实现交叉验证(图像、信号处理)

使用python实现交叉验证的方法,最简单方法

2022-07-07 10:25:53 3229

原创 多层感知机的推导:反向传播算法的实现

tensflow和pytorch是自动求导的,看不到求导的过程,所以我们在这里用numpy推导一下多层感知机的求导过程。以手写数字识别为例,做一个三层的神经网络。分别是输入层,隐藏层,输出层,激活函数使用sigmod函数。矩阵相乘,参考下方梯度的符号就是nabla,就是数学中的本次采用的感知机结构的公式如下图写出上述结构的反向传播算法的函数import numpy as np# 根据公式定义sigmoiddef sigmoid(z): return.

2022-01-26 13:42:45 1632

原创 GAN实战:以高斯混合模型为例

import torchfrom torch import nn, optim, autograd # autograd 是一个自动求导的包import numpy as npimport visdomimport randomh_dim = 400batchsz = 512viz = visdom.Visdom()# 新建两个网络结构 Generator and Discriminatorclass Generator(nn.Module): def __init.

2022-01-19 19:46:16 853

原创 GAN最难的地方:Training Stability

train的时候不稳定,精度也不稳定,只能目测,不能量化原因:在没有发生overlapping的情况下,举两个例子造成了严重的·梯度消失现象,即只要你这个和没有重合,JS就会保持不变,导致梯度loss一直为0, 没办法进行优化。可以得出一个最好的分布来,这样计算量最小。下面是WGAN最后的约束条件,刚好是导数定义,即,WGAN比较平滑,曲线斜率<=1...

2022-01-19 16:46:47 292

原创 DCGAN——Transposed Convolution

DC——Transposed Convolution,可以把一个小一点的map,变成大一点的,不断迭代,最后达到28*28,32*32这种水平。

2022-01-19 15:56:59 100

原创 GAN的原理:

在公式中是你自己的画画水平,是画家的画画水平。在GAN中,我们提出两个问题1、固定你的画画水平,即生成器能力,训练判别器(你哥),看判别器(你哥)能发展到什么程度?然后构建一个JS,作为两个KL相加来解决KL不对称的问题。第二个问题: 在鉴别器(你哥)的能力达到最大后,在增强你的画画能力,即生成器能力。这里是最小值,因为公式是min max L(G,D)...

2022-01-19 14:03:01 2196

原创 GAN的原理

相互博弈,相互对抗,从零到有。你哥想扩大你的缺陷,说你是假的,而你想缩小这个缺陷,让大家认为你是真的下面收录了一些有趣的涉及到GAN的网站

2022-01-19 13:32:15 534

原创 优化器的使用,共有三步

优化器的使用,分为三步 # backprop optimizer.zero_grad() #第一步梯度清零 loss.backward() # 第二步backward optimizer.step() # 第三步更新梯度

2022-01-17 14:23:03 549

原创 变分自编码器(Variational Auto-Encoder,VAE)

VAE网络结构较AE只有部分改变import torchimport numpy as npfrom torch import nnclass VAE(nn.Module): def __init__(self): super(VAE, self).__init__() # [b,784] => [b,20] # u: [b,10] # sigma: [b,10] self.encoder

2022-01-17 14:22:02 239

原创 Auto-Ecoders实战:重建MNIST数据集

首先,加载MNIST数据集import torchfrom torchvision import transforms,datasets # datasets自带数据集MNISTfrom torch.utils.data import DataLoaderdef main(): # 把MNIST数据集加载进来 mnist_train = datasets.MNIST('mnist',True,transform=transforms.Compose([

2022-01-17 13:26:38 487

原创 Auto-Encoders原理

无监督学习中,所有的数据都没有打label,就是没有对比的目标了。但是其实不是没有目标了,在Auto-Encoders的过程里,它的目标就是他自己,如下图,他这个就相当于一个卷积层,和CNN的区别就在于,它的输出层=输入层(784=784),因为他要重建它自己,而CNN的输出层是类数,为了分类。另一个区别就是:Auto-Ecoders的中间有一个neck,它可以升维,也可以降维。还有一个问题是Auto-Ecoders如何去训练一般来说是loss function可求导的情况就可以进行训练工作。

2022-01-16 18:16:45 2509

原创 AutoEncoder:自编码器(主要是监督学习、无监督学习的特点 无用,auto-enconder内容在之后的帖子里)

监督学习缺点:所有数据集都需要人的操作,并且依赖人的主观判断。无监督学习:没有label的数据。比如网上大量的图片,声音等等监督学习特点:需要10-10000bits的数据per sample增强学习特点:a few bits for some bits...

2022-01-15 20:04:37 1931

原创 迁移学习:提高分类性能,准确度

郑重声明:需要本人博客中的任意代码请直接下方评论留言,免费提供。

2022-01-15 17:13:50 851

原创 神奇宝贝五分类:train and test

import torchimport torchvisionfrom torch import optim,nnimport visdomfrom torch.utils.data import Dataset,DataLoader# 从其他函数里调用预处理和网络结构from main import Pokemonfrom model import ResNet18batch_sz=32lr=1e-3epochs=10device = torch.device('cuda').

2022-01-14 18:58:24 345

原创 神奇宝贝五分类:网络自定义

用resnet18的结构import torchfrom torch import nnfrom torch.nn import functional as Fclass ResBlk(nn.Module): ''' resnet block ''' def __init__(self,ch_in,ch_out,stride=1): ''' :param ch_in: :param ch_out:

2022-01-14 16:35:52 221

原创 神奇宝贝五分类:数据预处理,可以推广到任意图片集

我们知道我们采集的图片大小可能是任意的,但是网络的输入大小通常是固定的,所以我们需要变换尺寸。数据预处理步骤第一步Image Resize第二步 data argumentation(数据增强)使图片数量增多,模型计算更精准。比如随机的裁剪和旋转工作第三步Normalize,把原来的从0-1分布的像素点变换成0附近,比如-1到1或-0.5到0.5等第四步ToTensr,把数据类型转换到tensor上import torchimport os,globimport random,

2022-01-13 20:20:43 603

原创 自定义数据集实战(Pokemon Dataset)

本数据集中包含的图片元素及数量我们把每一类train vaild test设置为6:2:2四个主要工作:(1)load dataset 数据集加载工作(2)build model(3)train vaild test(4)transfer learning(1)自定义数据集的加载工作1.继承通用的母类自己要实现两个功能,一个是_len_,代表样本的总体数量,返回的时候,返回一个整型的数字。第二个是_getitem_,返回一个指定的x接口的样本。举一个最简单..

2022-01-12 20:39:40 434

原创 LSTM实战:好评差评的分类

首先抓取好评或者差评的数据集# load datasetTEXT = data.Field(tokenize='spacy')LABEL=data.LabelField(dtype=torch.float)'''IMDB来自torch test,用来提取文件中相关的文件和数据,比如test和labeltest是一个list,包含评论本身的内容,相当于x,此时x是str类型,必须embedding一下,才可以用label是一个pos的值,相当于y'''train_data,test_da

2022-01-02 16:42:13 921

原创 LSTM的使用

hidden_size代表memory_sizeforward时间戳数量=seq灵活性更大的LSTMCellforward两层的使用方法举例

2022-01-02 14:23:51 437

原创 LSTM(long short term memory)

1、解决了RNN梯度弥散的问题。2、解决了记忆长度的问题。(RNN记忆更偏向指定词附近的词,short term memory)原始的RNN原理图LSTM原理:设置了三道‘门’ 有代表sigmod即有一道“门”第一道门:遗忘门经过后(代表开度)变为0-1,当等于0的时候代表全部遗忘,等于1代表全部记住。第二道门:输入门之后得到更新结果,也就是memory 第三道门:输出门整体原理即梯度弥散解决原来的RNN梯度计算如...

2022-01-02 13:49:38 537

原创 RNN缺点

梯度爆炸,进行梯度修建(Gradient Clipping)for循环用来观察梯度状态,是否发生爆炸(运行时可以注释掉),然后利用torch.nn.untils.clip_grad_norm_(p,10)使梯度保持在10之下

2022-01-02 11:46:40 1536

原创 RNN实战:预测曲线波形

比如我们得到了一段曲线(红色这一部分)后边是一段时间后需要预测的。

2021-12-30 11:22:51 1619

原创 RNN使用类的介绍

输入维度验证RNN的使用(nn.RNN)前项函数forward编写举例单层两层举例手动进行循环更新的RNNforward举例单层两层

2021-12-29 20:51:36 311

原创 RNN原理

假如存在一句话,I hate this boring movie.我们需要对这句话判断是好评还是差评,可以知道这句话的维度[5,100],如图每个单词对应着一个【w,b】,我们可以把所有的[w,b]适应linear进行连接,变成相同的[w,b],还有一个问题就是,这样单个单词进行分析,没有上下文的联系,所以设置一个持续的单元来把上文中的信息传递到下一个里面。原理如下图:即模型不断进行自我更新,添加上文h的信息数学公式推导如下:RNN传递过程中的loss...

2021-12-29 19:34:19 304

原创 时间序列表示方法

【28,28】意思就是【扫描的行数,每行像素点数】RNN可以接收的维度【word num,b,word vec】或者【b,word num,word vec】下面是两种接收word vector的方法个人感觉GloVe()比较容易,但是下载时间比较久...

2021-12-29 17:48:33 278

原创 CIFAR-10程序

首先介绍CIFAR-10数据集第一步,写数据库处理import torchfrom mne import labelfrom torchvision import datasetsfrom torch.utils.data import DataLoaderfrom torchvision import transforms#新建一个main函数,加载CIFAR-10数据集def main(): batchza=32 cifar_train=datasets.CI

2021-11-24 22:04:00 578

原创 nn.Module 部分代码例程

2021-11-23 20:24:06 926

原创 DATA argument:对结果会有帮助,但不太大

(1)对称翻转Horizontal是水平方向,Vertical是数值方向(2)旋转Rotation()括号内可以是角度范围,也可以是几个确定的角度(3)缩放Resize()(4)裁剪

2021-11-23 20:19:05 678

原创 pytorch:early stop dropout 随机梯度下降

(1)early stop dropout(2)dropout 只在train生效dropout要求不需要使用全部权值w,而必要的权值数量越小越好。dropout的使用pytorch和tf使用dropout的区别torch.nn.Dropout(p=dropout_prob) 括号内是遗失的,就是dropouttf.nn.dropout(keep_prob) 括号内是剩下的,1-dropout(3)stochastic grad...

2021-11-21 10:30:07 865

原创 Pytorch:动量与学习率

(1)动量:momentum,也可以说是惯性,经过变为也就是说,权值w现在不只想着的方向衰减,也向着的方向进行衰减。而可以推出是由推出的。也就是现在w更新是当前衰减方向和之前衰减方向的惯性的结合。在代码中设置momentum时optimizer=optim.SGD(net.parameters(),lr=learning_rate,momentum=args.momentum,weigh_decay=args.momentum)对于优化器SGD是需要进行设置的,但是对于Adam优化

2021-11-19 17:18:09 1382

原创 Pytorch:如何防止Overfitter(过拟合)?以及regularization

方法:(1)more data(2)降低模型复杂度(3)dropoutregularization(可以用来降低模型复杂度)公式:L1-regularization,前项累加从i=1到m,后项累加从i=1到n。或者L2-regularization(更常用) + 两种情况。对于L2设置weigh_decay=0.01,w会迫使二范数接近于0,这个0.01,即前面的参数=0.01。就可以降低网络复杂度了import torchdevice=torch.

2021-11-19 11:51:11 1194

原创 Pytorch:train、test、val数据集划分

(1)如果只有train和test两个数据集,会给一个train=True代表划分训练集。如果设定train=Flase得到test的划分。# 加载的代码操作,划分数据集train_loader=torch.utils.data.DataLoader( datasets.MNIST('../data', train=True, download=True, transform=transforms.Compose([

2021-11-19 10:16:48 6751

原创 Pytorch:visdom

visdom作为可视化工具,效率更高。(1)install在命令行窗口使用 pip install visdom(2)开始进程在程序运行前,开启visdom。使用-m visdom server然后复制给到的链接服务器打开(3)使用第一种方法:画一条直线。viz=Visdom() #创建visdom的一个实例global_step=0.1# 创建一条直线,前面是Y后面是X,win是标志符,可以理解为名字; 后面title是名字viz.line([0...

2021-11-18 16:08:42 424

原创 Pytorch:test

在train之后,要做一个test,来验证算法是否具有泛化性。import torchimport torch.nn.functional as Flogits=torch.rand(4,10) # 生成四张图片,每个图片为10维pred=F.softmax(logits,dim=1) # 对每张照片的输出做softmax,所以在dim=1pred.shape#输出torch.Size([4, 10])pred_label=pred.argmax(dim=1)pred_label#

2021-11-18 12:00:34 1004

原创 Pytorch:relu改进和GPU

因为relu函数虽然消除了x过大时的梯度弥散现象,但是在x<0时,梯度仍为0,并且在x=0时,出现不连续的点。所以我们对relu函数进行了改进。首先,我们我们引进 LeakyRelu函数LeakyRelu函数,在x<0时,增加了一个梯度,一半默认为0.02在程序中使用时,直接将relu换为LeakyRelu即可。对于在x=0处不连续的现象,我们引入了selu函数selu函数通过两个函数构造出来的,消除了不连续。还有softplus函数同样消除了不连续的问...

2021-11-18 11:01:06 1264

原创 PyTorch:用交叉熵优化多分类问题

问题模型代码实现import torchimport osimport torchvisionimport numpy as npimport torch.nn as nnimport torch.nn.functional as Fimport torchvision.datasets as datasetsfrom torchvision import transformsbatch_size=200learning_rate=0.01epochs=10# 加载

2021-11-17 15:12:31 823

原创 pytorch:交叉熵(cross entropy)

entropy中文叫做熵,也叫不确定性,某种程度上也叫惊喜度(measure of surprise)

2021-11-16 22:00:45 8097

原创 pytorch:logistic regression(但是我们常把它理解为classification问题)

将y=xw+b转换为分类问题,可以加一个sigmoid函数(也叫logistic),即y=(xw+b)之后输出的值不再是一个连续的范围,而是约等于一个[0,1]的值。即当p(y=0|x)接近于0的时候代表不是这一类,而接近于1的时候,代表是这一类。对于classification问题,if p(y=1|x)>0.5,判别为1,否则判别为0而对于多分类问题来说,就会有以下关系这里我们有一个新的约束,。如何生成这个约束条件?我们可以使用之前介绍的softmax函数.

2021-11-16 18:53:43 593

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除