relu

AI基础之卷积网络

亡梦爱人 提交于 2019-12-04 17:32:09
全连接是AI入门的第一个网络模型,所以其局限性也很大,它在准确度上确实还不是很高。下面就让我们来看看卷积网络是怎么搭建的吧。 import torch.nn as nnclass CNNet(nn.Module): def __init__(self): super(CNNet, self).__init__() self.cnn_layer = nn.Sequential( # input_size : 32*32*3 nn.Conv2d(3,16,3,1), nn.ReLU(), nn.MaxPool2d(2,2), nn.Conv2d(16,32,3,1), nn.ReLU(), nn.MaxPool2d(2,2), nn.Conv2d(32,64,3,1), nn.ReLU() ) self.mlp_layer = nn.Sequential( nn.Linear(4*4*64, 128), nn.ReLU(), # nn.Linear(128,80), # nn.ReLU(), nn.Linear(128,10) ) def forward(self, x): # NaN x = self.cnn_layer(x) # shape: nchw nv x = x.reshape(-1,4*4*64) x = self.mlp_layer(x) return

pytorch权重初始化(2)

耗尽温柔 提交于 2019-12-04 06:04:37
权重初始化 def weights_normal_init (model, dev= 0.01 ) : if isinstance(model, list): for m in model: weights_normal_init(m, dev) else : for m in model.modules(): if isinstance(m, nn.Conv2d): #print torch.sum(m.weight) m.weight.data.normal_( 0.0 , dev) if m.bias is not None : m.bias.data.fill_( 0.0 ) elif isinstance(m, nn.Linear): m.weight.data.normal_( 0.0 , dev) 网络结构 class Conv2d (nn.Module) : def __init__ (self, in_channels, out_channels, kernel_size, stride= 1 , relu=True, same_padding=False, bn=False) : super(Conv2d, self).__init__() padding = int((kernel_size - 1 ) / 2 ) if same_padding else 0

BN和Relu

一世执手 提交于 2019-12-04 04:32:41
Batch normalization + ReLU 批归一化(BN)可以抑制梯度爆炸/消失并加快训练速度 原论文认为批归一化的原理是:通过归一化操作使网络的每层特征的分布尽可能的稳定,从而减少Internal Covariate Shift relu是目前应用最为广泛的激活函数, 由于其梯度要么是1,要么是0,可以有效抑制梯度爆炸/消失 通过BN和ReLU,目前的网络已经可以达到非常深 网络越深,提取的特征往往越抽象,越具有语义信息 。过渡抽象的特征可能并不适合相对简单的任务。 来源: https://www.cnblogs.com/yibeimingyue/p/11831360.html

【中英】【吴恩达课后编程作业】Course 4 -卷积神经网络 - 第四周作业

不羁的心 提交于 2019-12-03 22:39:04
【中文】【吴恩达课后编程作业】Course 4 - 卷积神经网络 - 第四周作业 - 人脸识别与神经风格转换 上一篇: 【课程4 - 第四周测验】 ※※※※※ 【回到目录】 ※※※※※下一篇: 【待撰写-课程5 - 第一周测验】 资料下载 本文所使用的资料已上传到百度网盘 【点击下载(555.65MB)】 ,提取码:zcjp ,请在开始之前下载好所需资料,底部不提供代码。 【博主使用的python版本:3.6.2】 第一部分 - 人脸识别 给之前的“ 欢乐家 ”添加人脸识别系统 这是第4周的编程作业,在这里你将构建一个人脸识别系统。这里的许多想法来自 FaceNet 。在课堂中,吴恩达老师也讨论了 DeepFace 。 人脸识别系统通常被分为两大类: 人脸验证 :“这是不是本人呢?”,比如说,在某些机场你能够让系统扫描您的面部并验证您是否为本人从而使得您免人工检票通过海关,又或者某些手机能够使用人脸解锁功能。这些都是 1:1 匹配问题。 人脸识别 :“这个人是谁?”,比如说,在视频中的百度员工进入办公室时的脸部识别视频的介绍,无需使用另外的ID卡。这个是 1:K 的匹配问题。  FaceNet可以将人脸图像编码为一个128位数字的向量从而进行学习,通过比较两个这样的向量,那么我们就可以确定这两张图片是否是属于同一个人。 在本节中,你将学到: 实现三元组损失函数。

动手深度学习9-多层感知机pytorch

人走茶凉 提交于 2019-12-03 21:13:42
多层感知机 隐藏层 激活函数 小结 多层感知机 之前已经介绍过了线性回归和softmax回归在内的单层神经网络,然后深度学习主要学习多层模型,后续将以多层感知机(multilayer percetron,MLP),介绍多层神经网络的概念。 隐藏层 多层感知机在单层神经网络的基础上引入了一到多个隐藏层(hidden layer)。隐藏层位于输入层和输出层质检。下图展示了一个多层感知机的神经网络,它含有一个隐藏层,该层中有5个隐藏单元。 输入和输出个数为别为4和3,中间隐藏层中包含了5个隐藏单元。由于输入层不涉及计算,多层感知机的层数为2。隐藏层中的神经元和输入层各输入完全连接,输出层中的神经元和隐藏层中的各神经元也完全连接。因此多层感知机中的隐藏层和输出层都是全连接。 具体来说,给定一个小批量样本 \(X∈R^{nxd}\) ,其批量大小为n,输入个数为d。假设多层感知机只有一个隐含层,其中隐层单元个数为h。记隐藏层的输出为H,有 \(H∈R^{nxh}\) ,因为隐藏层和输出层均为全连接层,可以设隐藏层的权重参数和偏差参数为别为 \(W_{h}∈R^{dxh} 和b_{h}∈R^{1xh}\) ,输出层的权重和偏差参数分别为$ W_{o}∈R^{hxq}和b_{o}∈R^{1xq}$ 我们先来看一种含单隐藏层的多层感知机的的设计,其输出 \(O∈R^{nxq}\) 的计算为 \[

深度学习基础模型算法原理及编程实现--04.改进神经网络的方法

≡放荡痞女 提交于 2019-12-03 18:45:43
文章列表 1. 深度学习基础模型算法原理及编程实现–01.感知机 . 2. 深度学习基础模型算法原理及编程实现–02.线性单元 . 3. 深度学习基础模型算法原理及编程实现–03.全链接 . 4. 深度学习基础模型算法原理及编程实现–04.改进神经网络的方法 . 5. 深度学习基础模型算法原理及编程实现–05.卷积神经网络 . 6. 深度学习基础模型算法原理及编程实现–06.循环神经网络 . 9. 深度学习基础模型算法原理及编程实现–09.自编码网络 . 9. 深度学习基础模型算法原理及编程实现–10.优化方法:从梯度下降到NAdam . … 深度学习基础模型算法原理及编程实现–04.改进神经网络的方法 4.1 基本激活函数认知 4.1.1 sigmoid 5.1.2 tf.tanh 5.1.3 ReLU 5.1.4 Leaky ReLU 5.1.5 Softplus 5.2 增加隐藏层数 5.3 提升学习速率 5.3.1 梯度下降改为随机梯度下降 5.3.2 输出层激活函数与目标函数的选择 5.3.2.1 激活函数为sigmoid函数、损失函数为交叉项 5.3.2.2 激活函数为线性函数且损失函数为平方损失函数 5.3.2.3 损失函数为交叉项的好处 5.3.2.4 柔性最大值(softmax函数) 5.3.2.5 Softmax-loss 5.3.3

人脸识别性别的卷积神经网络

╄→尐↘猪︶ㄣ 提交于 2019-12-03 11:16:38
本文主要是实现了根据人脸识别性别的卷积神经网络,并对卷积过程中的提取特征进行了可视化. 卷积神经网络 卷积神经网络最早是为了解决图像识别的问题,现在也用在时间序列数据和文本数据处理当中,卷积神经网络对于数据特征的提取不用额外进行,在对网络的训练的过程当中,网络会自动提取主要的特征. 卷积神经网络直接用原始图像的全部像素作为输入,但是内部为非全连接结构.因为图像数据在空间上是有组织结构的,每一个像素在空间上和周围的像素是有关系的,和相距很远的像素基本上是没什么联系的,每个神经元只需要接受局部的像素作为输入,再将局部信息汇总就能得到全局信息. 权值共享和池化两个操作使网络模型的参数大幅的减少,提高了模型的训练效率. 卷积神经网络主要特点 权值共享: 在卷积层中可以有多个卷积核,每个卷积核与原始图像进行卷积运算后会映射出一个新的2D图像,新图像的每个像素都来自同一个卷积核.这就是权值共享. 池化: 降采样,对卷积(滤波)后,经过激活函数处理后的图像,保留像素块中灰度值最高的像素点(保留最主要的特征),比如进行 2X2的最大池化,把一个2x2的像素块降为1x1的像素块. 卷积网络的训练数据(112 * 92 * 3图形) 从data目录读取数据,famale存放女性图片,male存放男性图片 def read_img(list,flag=0): for i in range(len

Deformable ConvNets--Part5: TensorFlow实现Deformable ConvNets

泪湿孤枕 提交于 2019-12-03 10:54:36
关于Deformable Convolutional Networks的论文解读,共分为5个部分,本章是第五部分: [ ] Part1: 快速学习实现仿射变换 [ ] Part2: Spatial Transfomer Networks论文解读 [ ] Part3: TenosorFlow实现STN [ ] Part4: Deformable Convolutional Networks论文解读 [x] Part5: TensorFlow实现Deformable ConvNets 本章讲解使用TensorFlow实现Deformable ConvNets。 Deformable Convolution介绍 论文给出的代码是 MXNet 写的,blog里使用的是TensorFlow/Keras实现的简易版。 注意该TensorFlow版存在的问题: 前向速度太慢,下面案例模型带变形卷积层的前向传播约需要240ms,而正常的CNN需要10ms都不到。 只是简单的变形层实现,没有Deformable Align-Rol层。 使用的Keras,原MXNet是要快很多的 相关资源地址: 论文-Deformable Convolutional Networks 参考代码:Deformable Convolution in TensorFlow / Keras 在变形的MNIST上示意图:

Replicate MLPClassifier() of sklearn in keras

匿名 (未验证) 提交于 2019-12-03 07:50:05
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am new to keras. I was attempting an ML problem. About the data: It has 5 input features, 4 output classes and about 26000 records. I had first attempted it using MLPClassifier() as follows: clf = MLPClassifier(verbose=True, tol=1e-6, batch_size=300, hidden_layer_sizes=(200,100,100,100), max_iter=500, learning_rate_init= 0.095, solver='sgd', learning_rate='adaptive', alpha = 0.002) clf.fit(train, y_train) After testing, I usually got a LB score around 99.90. To gain more flexibility over the model, I decided to implement the same model in

Removing then Inserting a New Middle Layer in a Keras Model

匿名 (未验证) 提交于 2019-12-03 02:27:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Given a predefined Keras model, I am trying to first load in pre-trained weights, then remove one to three of the models internal (non-last few) layers, and then replace it with another layer. I can't seem to find any documentation on keras.io about to do such a thing or remove layers from a predefined model at all. The model I am using is a good ole VGG-16 network which is instantiated in a function as shown below: def model(self, output_shape): # Prepare image for input to model img_input = Input(shape=self._input_shape) # Block 1 x =