relu

fcn网络8s复现

丶灬走出姿态 提交于 2020-01-22 22:34:20
FCN.py import numpy as np import tensorflow as tf import scipy . io as scio from scipy import misc import sys import logging import datetime FLAGS = tf . flags . FLAGS tf . flags . DEFINE_integer ( 'batchsize' , '10' , 'trainning batchsize' ) #flag tf . flags . DEFINE_float ( 'learning_rate' , '1e-4' , 'learning_rate' ) #flag tf . flags . DEFINE_bool ( 'reuse' , "False" , "reuse the pretrained model" ) tf . flags . DEFINE_bool ( 'train' , "True" , "train or test" ) tf . flags . DEFINE_string ( 'checkpoint' , "checkpoint" , "dir to save model" ) tf . flags . DEFINE_string ( 'log' , "log" , "dir

1.吴恩达深度学习第一周

梦想与她 提交于 2020-01-20 02:54:08
1.1 欢迎 深度学习改变了传统的互联网业务,例如网络搜索和广告。但是深度学习同时也使得许多产品和企业以很多方式帮助人们。从获得更好的健康关注:深度学习读取x光图像,到生活中的个性化教育,到精准化农业甚至到驾驶汽车和其他方面。如果你想用深度学习来做这些令人窒息的操作,我(吴老师)将帮助你做到这一点。学完这套课程之后,你将能更加自信的继续深度学习之路。AI让我们在接下来的十年中创造更好的社会和时代。 AI是最新的电力,在几百年前,我们社会的电气化改变了每个行业(医疗,交通等)。AI领域发展最为迅速的就是深度学习了。因此,现在深度学习是广受欢迎的一种技巧。这个课程会帮你获得这种技能。 这门课程中你会学到: 第一门课,神经网络和深度学习,第一部门中将会学习如何建立神经网络,包含一个深度神经网络,以及如何在数据上训练他们。最后,将会用神经网络辨认喵星人。 第二门课,深度学习方面的实践,提升你的深度学习网络。学习构建深度学习网络以及如何让他表现良好。将会学到:超参数调整,正则化,诊断偏差,方差以及一些高级优化算法(如momentum,adam)。 第三门课,将会用2周的时间,学习如何结构化你的机器学习工程,构建机器学习的策略改变了深度学习的错误。举个例子:分割数据的方式,分割为训练集,比较集或改变的验证集以及测试集合,在深度学习中贡献不同,影响很大,应该如何处理呢?如果你听说过

CNN网络结构的发展:从LeNet到EfficientNet

若如初见. 提交于 2020-01-20 01:18:16
CNN基本部件介绍 1. 局部感受野 在图像中局部像素之间的联系较为紧密,而距离较远的像素联系相对较弱。因此,其实每个神经元没必要对图像全局进行感知,只需要感知局部信息,然后在更高层局部信息综合起来即可得到全局信息。卷积操作即是局部感受野的实现,并且卷积操作因为能够权值共享,所以也减少了参数量。 2. 池化 池化是将输入图像进行缩小,减少像素信息,只保留重要信息,主要是为了减少计算量。主要包括最大池化和均值池化。 3. 激活函数 激活函数的用是用来加入非线性。常见的激活函数有sigmod, tanh, relu,前两者常用在全连接层,relu常见于卷积层 4. 全连接层 全连接层在整个卷积神经网络中起分类器的作用。在全连接层之前需要将之前的输出展平 经典网络结构 1. LeNet5 由两个卷积层,两个池化层,两个全连接层组成。卷积核都是5×5,stride=1,池化层使用maxpooling 2. AlexNet 模型共八层(不算input层),包含五个卷积层、三个全连接层。最后一层使用softmax做分类输出 AlexNet使用了ReLU做激活函数;防止过拟合使用dropout和数据增强;双GPU实现;使用LRN 3. VGG 全部使用3×3卷积核的堆叠,来模拟更大的感受野,并且网络层数更深。VGG有五段卷积,每段卷积后接一层最大池化。卷积核数目逐渐增加。 总结:LRN作用不大

Keras实例:自定义损失函数/指标函数

随声附和 提交于 2020-01-19 12:11:48
在训练模型的时候,Keras提供了许多损失函数供我们使用,但是即便如此,我们也会有遇到需要用自己的损失函数的情况,这样我们就要自定义一个损失函数。比如我现在需要定义一个损失函数,类似于relu函数,低于threshold的loss为0,大于threshold的loss就是他们之间的差。注意我们在定义损失函数的时候,必须可以求导。任何损失函数必须有y_true, y_pred两个参数,他们的类型为tensor。 def relu_loss ( y_true , y_pred , threshold = 1 ) : if not K . is_tensor ( y_pred ) : y_pred = K . constant ( y_pred ) y_true = K . cast ( y_true , y_pred . dtype ) return K . sum ( K . cast ( K . greater ( K . abs ( y_pred - y_true ) , threshold ) , K . floatx ( ) ) * K . abs ( y_pred - y_true ) ) 在定义完之后,我们就可以通过名字把损失函数和指标函数给模型了。 model . compile ( optimizer = 'rmsprop' , loss = relu_loss ,

【深度学习】为什么会存在激活函数?

孤者浪人 提交于 2020-01-18 21:56:41
来源: AINLPer 微信公众号( 点击了解一下吧 ) 编辑: ShuYini 校稿: ShuYini 时间: 2019-9-1 引言     在深度学习网络中,我们经常可以看到对于某一个隐藏层节点的激活值计算一般分为两步,如下图:     第一步,输入该节点的值为 x 1 x_1 x 1 ​ , x 2 x_2 x 2 ​ 时,在进入这个隐藏节点后,会先进行一个线性变换,计算出值 z [ 1 ] = w 1 x 1 + w 2 x 2 + b [ 1 ] = W [ 1 ] x + b [ 1 ] z^{[1]}=w_1x_1+w_2x_2+b^{[1]}=W^{[1]}x+b^{[1]} z [ 1 ] = w 1 ​ x 1 ​ + w 2 ​ x 2 ​ + b [ 1 ] = W [ 1 ] x + b [ 1 ] ,上标 1 表示第 1 层隐藏层。     第二步,再进行一个非线性变换,也就是经过非线性激活函数,计算出该节点的输出值(激活值) a ( 1 ) = g ( z ( 1 ) ) a^{(1)}=g(z^{(1)}) a ( 1 ) = g ( z ( 1 ) ) ,其中 g(z)为非线性函数。     那么问题来了,这个激活函数到底有什么用呢,可不可以不加激活函数呢? 什么是激活函数?     激活函数是神经网络中极其重要的概念

卷积神经网络CNNs 为什么要用relu作为激活函数?

时间秒杀一切 提交于 2020-01-18 17:30:52
relu激活函数的优势: (1)反向传播时,可以避免梯度消失。 (2)Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生(以及一些人的生物解释balabala)。 (3)相对于sigmoid激活函数,tanh激活函数,求导简单。采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。 缺点: (1)左侧神经元为0,导致神经元死亡,不再更新。 (2)输出非负,仍然存在zigzag现象。 参考文章1:【深度学习】为什么使用ReLU作为激活函数,ReLU比sigmoid优秀在哪里 参考文章2:卷积神经网络之relu激活函数的理解 参考文章3:神经网络为什么要使用激活函数,为什么relu要比sigmoid要好 来源: CSDN 作者: Dontla 链接: https://blog.csdn.net/Dontla/article/details/104030712

6.1激活函数-数据预处理笔记

岁酱吖の 提交于 2020-01-18 05:50:39
文章目录 处理过程 激活函数 sigmoid函数 问题1 首先是饱和神经元将使梯度消失 问题2 sigmoid是非0中心函数 问题3 exp()是一个计算成本高的函数 tanh激活函数 ReLU激活函数 ReLU改进 leaky relu 实践 数据预处理 初始化网络权重 处理过程 处理过程包括 激活函数 数据预处理 权重初始化 批量归一化 训练过程监控 超参的优化 激活函数 当输入数据,在全连接层或者卷积层,我们将输入乘上权重值,然后将结果输入一个激活函数,或非线性单元。 上图是一些例子 sigmoid函数 每个数被输入sigmoid中,都会被压缩到[0,1]的范围内,然而它从在很多问题。 问题1 首先是饱和神经元将使梯度消失 当x=-10,太过接近sigmoid负饱和区,这个区域本质上是平的所以梯度变为0,我们将返回上游梯度乘一个约为0的数,所以得到一个非常小的梯度,所以某种意义上经过链式法则后让梯度流消失因此0梯度就传递到下游的节点。 当x=0,可以有一个好的梯度可以好的反向传播 当x=10,或者很大正值,它们位于梯度平滑区域,无法得到梯度流的反馈。 问题2 sigmoid是非0中心函数 当输入神经元的数值始终为正,它会乘以某个权重W,然后我们将通过激活函数来运行 权重W梯度如何? 当我们把上游梯度传回来,就是对我们的损失L关于f进行求导,就是dl/df它的值就是正数或负数

AlexNet 网络详解及Tensorflow实现源码

社会主义新天地 提交于 2020-01-18 02:26:51
版权声明:本文为博主原创文章,未经博主允许不得转载。 1. 图片数据处理 2. 卷积神经网络 2.1. 卷积层 2.2. 池化层 2.3. 全链层 3. AlexNet 4. 用Tensorflow搭建完整的AlexNet 5. 用AlexNet识别猫狗图片 5.1. 定义分类 5.2. 训练网络 5.3. 验证 1. 图片数据处理 一张图片是由一个个像素组成,每个像素的颜色常常用RGB、HSB、CYMK、RGBA等颜色值来表示,每个颜色值的取值范围不一样,但都代表了一个像素点数据信息。对图片的数据处理过程中,RGB使用得最多,RGB表示红绿蓝三通道色,取值范围为0~255,所以一个像素点可以把它看作是一个三维数组,即: array([[[0, 255, 255]]]) ,三个数值分布表示R、G、B(红、绿、蓝)的颜色值。比如下图一张3*3大小的jpg格式的图片: 它的图片经过Tensorflow解码后,数据值输出为 image_path = 'images/image.jpg' filename_queue = tf.train.string_input_producer(tf.train.match_filenames_once(image_path)) image_reader = tf.WholeFileReader() _,image_file = image

tensorflow实战系列(四)基于TensorFlow构建AlexNet代码解析

微笑、不失礼 提交于 2020-01-18 02:25:57
整体流程介绍: 我们从main函数走,在train函数中,首先new了一个network;然后初始化后开始训练,训练时设定设备和迭代的次数,训练完后关闭流程图。 下面看network这个类,这个类有许多方法,inference方法定义整个网络的结构,包括每一层的规格和连接的顺序。__init__方法是把权值和偏置初始化。其他两个方法一个是optimer,定义优化器,一个是sorfmax_loss定义损失函数。 程序最开始的两个函数read_and_decode和get_batch。一个是读取tfrecords,一个是生成批次数据。 OK。就是这样简单。 下面展开说明。 #!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Mon Jan 16 11:08:21 2017 @author: root """ import tensorflow as tf import frecordfortrain tf.device(0) def read_and_decode(filename): #根据文件名生成一个队列 #读取已有的tfrecords,返回图片和标签 filename_queue = tf.train.string_input_producer([filename]) reader = tf

AutoEncoder介绍

落花浮王杯 提交于 2020-01-12 10:33:07
什么是自动编码器 自动编码器最开始作为一种数据压缩的方法,特点: 1)跟数据相关程度高 2)压缩数据是有损的 应用: 1)数据去噪 2)可视化降维 3)生成数据 4)数据压缩 自动编码器的结构 通常我们使用神经网络模型作为编码器和解码器。 PyTorch实现自动编码器 多层感知器 class autoencoder ( nn . Module ) : def __init__ ( self ) : super ( autoencoder , self ) . __init__ ( ) self . encoder = nn . Sequential ( nn . Linear ( 28 * 28 , 128 ) , nn . ReLU ( True ) , nn . Linear ( 128 , 64 ) , nn . ReLU ( True ) , nn . Linear ( 64 , 12 ) , nn . ReLU ( True ) , nn . Linear ( 12 , 3 ) ) self . decoder = nn . Sequential ( nn . Linear ( 3 , 12 ) , nn . ReLU ( True ) , nn . Linear ( 12 , 64 ) , nn . ReLU ( True ) , nn . Linear ( 64 ,