Keras学习系列——神经网络层组件
对Keras提供的对各种层的抽象进行相对全面的概括
1 基础常用层
| 名称 | 作用 | 原型参数 |
| Dense | 实现全连接层 | Dense(units,activation,use_bias=True, kernel_initializer=’glorot_uniform’, bias_initializer=’zeros’) |
| Activation | 对上层输出应用激活函数 | Activation(activation) |
| Dropout | 对上层输出应用dropout以防止过拟合 | Dropout(ratio) |
| Flatten | 对上层输出一维化 | Flatten() |
| Reshape | 对上层输出reshape | Reshape(target_shape) |
| Permute | 对输入的维度按照指定的顺序交换并重排数据 | Permute(dims) |
| RepeatVector | 将输入重复若干次后进行输出 | RepeatVector(n) |
| Lambda | 对输入施加TF/TH表达式后输出 | Lambda(function, output_shape,arguments=None) |
| Masking | 屏蔽指定的序列值 | Masking(mask_value=0.0) |
PS1:Dense()参数说明
| 名称 | 说明 |
| units | 层中单元数,也是输出维度 |
| activation | 激活函数 |
| use_bias | 是否使用偏置 |
| kernel_initializer | 权值初始化方法 |
| bias_initalizer | 偏置初始化方法 |
| kernel_regularizer | 权值规范化方法 |
| bias_regularizer | 偏置规范化方法 |
| activity_regularizer | |
| kernel_constraints | 权值约束 |
| bias_constraints | 偏置约束 |
PS2: 预置激活函数/初始化器/正则化器说明
| 激活函数 | 初始化器 | 正则化器 |
| softmax | Zeros 全0 | l1 |
| elu | Ones 全1 | l2 |
| softplus | Constant 常数 | l1_l2 |
| softsign | RandomNormal 正态分布 | |
| relu | RandomUniform 平均分布 | |
| tanh | TruncatedNormal 无尾正态 | |
| sigmoid | Orthogonal 正交矩阵 | |
| hard_sigmoid | Identity 单位矩阵 | |
| linear | glorot_normal |
2 卷积层
| 层名 | 作用 | 原型 |
| Conv1D | 1维卷积层 | Conv1D(filters, kernel_size, strides=1, padding=’valid’) |
| Conv2D | 2维卷积层 | Conv2D(filters, kernel_size, strides=(1, 1), padding=’valid’,dilation_rate=(1, 1)) |
| UpSampling1D | 1维上采样,将数据重复指定的次数 | UpSampling2D(size=2) |
| UpSampling2D | 2维上采样,将数据在2个维度上重复指定的次数 | UpSampling2D(size=(2, 2)) |
| ZeroPadding2D | 边界填充0 | ZeroPadding2D(padding=(1, 1)) |
参数说明:
| 名称 | 说明 |
| filters | 卷积核的数目(即输出的维度) |
| kernel_size | 卷积核的宽度和长度。如为单个整数,表示在各个空间维度的相同长度 |
| strides | 为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长 |
| padding | 补0策略,为“valid”, “same” |
| activation | |
| data_format | channels_first或channels_last之一,代表图像的通道维的位置,默认为channels_last |
| use_bias | |
| kernel_initializer | |
| bias_initializer | |
| kernel_regularizer | |
| bias_regularizer | |
| activity_regularizer | |
| kernel_constraints | |
| bias_constraints |
3 池化层
| 层名 | 作用 | 原型 |
| MaxPooling1D | 对1维输入进行最大值池化过滤 | MaxPooling1D(pool_size=2, strides=None, padding=’valid’) |
| AveragePooling1D | 对1维输入进行平均池化过滤 | AveragePooling1D(pool_size=2, strides=None, padding=’valid’) |
| MaxPooling2D | 对2维输入进行最大值池化过滤 | MaxPooling2D(pool_size=(2, 2), strides=None, padding=’valid’, data_format=None) |
| AveragePooling2D | 对3维输入进行平均池化过滤 | AveragePooling2D(pool_size=(2, 2), strides=None, padding=’valid’, data_format=None) |
| GlobalMaxPooling1D | 对1维输入进行全局最大值池化过滤 | GlobalMaxPooling1D() |
| GlobalAveragePooling1D | 对1维输入进行全局平均值池化过滤 | GlobalAveragePooling1D() |
| GlobalMaxPooling2D | 对2维输入进行全局最大值池化过滤 | GlobalMaxPooling2D() |
| GlobalAveragePooling2D | 对2维输入进行全局平均值池化过滤 | GlobalAveragePooling2D() |
2d参数说明
| 名称 | 说明 |
| pool_size | 过滤器的大小,通常取(2,2)或(3,3) |
| strides | 过滤器的移动步长,取2使得输出shape缩小一半 |
| padding | valid为1填充,same为0填充 |
| data_format | 字符串,channels_first或channels_last之一 |
4 循环层
| 名称 | 作用 | 原型参数 |
| SimpleRNN | 全连接RNN网络 | SimpleRNN(units, activation=’tanh’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’,dropout=0.0, recurrent_dropout=0.0)) |
| GRU | 门限循环单元层 | GRU(units, activation=’tanh’, recurrent_activation=’hard_sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, dropout=0.0, recurrent_dropout=0.0) |
| LSTM | 长短期记忆模型层 | LSTM(units, activation=’tanh’, recurrent_activation=’hard_sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, unit_forget_bias=True, dropout=0.0, recurrent_dropout=0.0) |
5 嵌入层
| 名称 | 作用 | 原型参数 |
| Embedding | 嵌入层将输入中的整数转换为向量,导致原维度+1 | EmbeddingEmbedding(input_dim, output_dim, embeddings_initializer=’uniform’, embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None) |
参数说明:
input_dim: 字典长度,即输入数据最大下标+1
output_dim:全连接嵌入的维度
input_length:当输入序列的长度固定时,该值为其长度。如果要在该层后接Flatten层,然后接Dense层,则必须指定该参数,否则Dense层的输出维度无法自动推断。
Keras学习系列——神经网络层组件的更多相关文章
- Java并发包源码学习系列:同步组件CountDownLatch源码解析
目录 CountDownLatch概述 使用案例与基本思路 类图与基本结构 void await() boolean await(long timeout, TimeUnit unit) void c ...
- Java并发包源码学习系列:同步组件CyclicBarrier源码解析
目录 CyclicBarrier概述 案例学习 类图结构及重要字段 内部类Generation及相关方法 void reset() void breakBarrier() void nextGener ...
- Java并发包源码学习系列:同步组件Semaphore源码解析
目录 Semaphore概述及案例学习 类图结构及重要字段 void acquire() 非公平 公平策略 void acquire(int permits) void acquireUninterr ...
- 深度学习之TensorFlow构建神经网络层
深度学习之TensorFlow构建神经网络层 基本法 深度神经网络是一个多层次的网络模型,包含了:输入层,隐藏层和输出层,其中隐藏层是最重要也是深度最多的,通过TensorFlow,python代码可 ...
- DocX开源WORD操作组件的学习系列四
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- DocX开源WORD操作组件的学习系列三
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- DocX开源WORD操作组件的学习系列二
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- DocX开源WORD操作组件的学习系列一
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- Caffe学习系列——工具篇:神经网络模型结构可视化
Caffe学习系列——工具篇:神经网络模型结构可视化 在Caffe中,目前有两种可视化prototxt格式网络结构的方法: 使用Netscope在线可视化 使用Caffe提供的draw_net.py ...
随机推荐
- opensuse安装Tomcat碰到的问题
已经安装好JDE,并配置好环境变量 从官网下载Tomcat tar包,解压到用户目录,进入运行bin下的start.sh,显示运行成功,但是浏览器中输入localhost:8080连接不上 检查一番发 ...
- how to render html tag
使用autoescaping If autoescaping is turned on in the environment, all output will automatically be esc ...
- Java ArrayList类的简单介绍
ArrayList类的说明: ArrayList类是List接口的实现类,java.util.ArrayList集合数据存储的结构是数组结构. 特点: 元素增删慢,查找快.(由于日常开发中使用最多的功 ...
- 如何获取scrimba内部(内联框架)中网页地址?
看图: 将其在新窗口打开 方法一:按下F12 键 (打开 开发者工具) ,再照图中箭头用鼠标点击所示, 图中粗红下划线为该页面的URL 地址, 复制在新窗口打开即可 方法二:利用JS代码手动获取 ...
- 为什么双击打开py文件时窗口瞬间关闭了?
当前理解,py文件里没有input() 等暂停程序运行的函数,程序运行速度太快,运行完就立马关闭了. input()调用后,程序会立即暂停,等待用户输入
- 【Linux】---Linux系统下各种常用命令总结
在Linux系统下,“万物皆文件”,之所以强调在强调这个概念,是因为很多人已经习惯了win系统下找找点点得那种方式和思维,因此总是会觉得linux系统下很多指令既复杂又难记.其实都是一样得东西,只是w ...
- 【转】程序员"青春饭"问题之我见
1. 问题描述问题1: 什么是程序员?在本文中程序员的定义为: 拥有编程技能,在IT.互联网公司打工的IT从业人员.程序员与很多行业最大的不同是该行业的形成时间短:1954年第一台计算机才诞生,而中医 ...
- 4.JavaSE之标识符
标识符:Java所有的组成部分都需要名字.类名.变量名以及方法名都被称为标识符. 关键字:abstract.assert.boolean.breake.public.static.class...
- 代码审计之CVE-2018-7600-Drupal远程代码执行漏洞-Render API
今天学习一下Drupal的另一个漏洞,由于渲染数组不当造成的漏洞 poc: url:http://localhost/drupal-8.5.0/user/register?element_parent ...
- 【红外DDE算法】聊聊红外图像增强算法的历史进程(第一回)
宽动态红外图像增强算法综述回顾过去带你回顾宽动态红外图像增强算法的历史进程,历来学者的一步步革命(新的算法框架提出),一步步改革(改进优化),从简单粗暴到细致全面.正所谓是:改革没有完成时,只有进行时 ...