keras使用
from keras.preprocessing.sequence import pad_sequences
keras只能接受长度相同的序列输入。因此如果目前序列长度参差不齐,这时需要该模块
该函数是将序列转化为经过填充以后的一个长度相同的新序列新序列
Sequential更准确的应该理解为堆叠,通过堆叠许多层,构建出深度神经
Sequential模型的核心操作是添加layers(图层),以下展示如何将一些最流行的图层添加到模型中:
如下代码向模型添加一个带有64个大小.3 * 3的过滤器的卷积层:
from keras.models import Sequential
from keras.layers import Conv2D model = Sequential()
model.add( Conv2D(64, (3, 3), activation='relu') )
嵌入层将正整数(下标)转换为具有固定大小的向量,如 [ [4],[20] ] ->[ [0.25,0.1],[0.6,-0.2] ],Embedding层只能作为模型的第一层
from keras.layers import Embedding
embedding_layer = Embedding(VOCAB_SIZE + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=TIME_STAMPS,
trainable=False,
mask_zero=True)
这里的参数解释一下:
input_dim:大或等于0的整数,字典长度,即输入数据最大下标+1
output_dim:大于0的整数,代表全连接嵌入的维度
init:初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的Theano函数。该参数仅在不传递
weights参数时有意义。weights:权值,为numpy array的list。该list应仅含有一个如(input_dim,output_dim)的权重矩阵
W_regularizer:施加在权重上的正则项,为WeightRegularizer对象
W_constraints:施加在权重上的约束项,为Constraints对象
mask_zero:布尔值,确定是否将输入中的‘0’看作是应该被忽略的‘填充’(padding)值,该参数在使用递归层处理变长输入时有用。设置为
True的话,模型中后续的层必须都支持masking,否则会抛出异常input_length:当输入序列的长度固定时,该值为其长度。如果要在该层后接
Flatten层,然后接Dense层,则必须指定该参数,否则Dense层的输出维度无法自动推断。dropout:0~1的浮点数,代表要断开的嵌入比例
关于Embedding层,请参考
from keras.models import Sequential
from keras.layers import Bidirectional, LSTM
model.add( Bidirectional( LSTM(128, return_sequences=True) ) )
return_sequences: 如果为True的话,只返回最后一个状态的输出,是一个(samples,output_dim)2D张量,如果是False,则是返回所有序列状态的输出,是一个(samples,timesteps,output_dim)3D张量
LSTM中的128,即是units参数,表示输出向量维度,请参考
关于其过程,请参考,下面的图片来自该博客:

Dense就是常用的全连接层
from keras_contrib.layers.crf import CRF
crf_layer = CRF(self.NUM_CLASSES, sparse_target=True)
model.add(crf_layer)
八、compile
keras使用的更多相关文章
- [Keras] Develop Neural Network With Keras Step-By-Step
简单地训练一个四层全连接网络. Ref: http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/ 1 ...
- keras 中如何自定义损失函数
http://lazycoderx.com/2016/10/09/keras%E4%BF%9D%E5%AD%98%E6%A8%A1%E5%9E%8B%E6%97%B6%E4%BD%BF%E7%94%A ...
- keras安装
找对工具真的很重要,周末和学霸折腾了一天才装了几个包,问了同事找了一个方便的包,装起来不要太快啊.二十分钟全部搞定. 一.Anaconda 真是大杀器,牛到飞起来,一键部署,所有常用的机器学习包全部包 ...
- ubuntu系统theano和keras的安装
说明:系统是unbuntu14.04LTS,32位的操作系统,以前安装了python3.4,现在想要安装theano和keras.步骤如下: 1,安装pip sudo apt-get install ...
- neurosolutions 人工神经网络集成开发环境 keras
人工神经网络集成开发环境 : http://www.neurosolutions.com/ keras: https://github.com/fchollet/keras 文档 http ...
- Keras官方Example里Mnist-cnn的调试运行
问题:老板让测试运行Keras官网里的Mnist-cnn.py,结果从下载数据就是一路坑-- 当前环境:Ubuntu12.04.python2.7.Keras 1.1.1(不知道这个版本号对不对,在启 ...
- [Keras] mnist with cnn
典型的卷积神经网络. Keras傻瓜式读取数据:自动下载,自动解压,自动加载. # X_train: array([[[[ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0. ...
- [Keras] Install and environment setting
Documentation: https://keras.io/ 1. 利用anaconda 管理python库是明智的选择. conda update conda conda update anac ...
- linux install Theano+Tensorflow+Keras
安装过程中,网络状态一定要好,如果安装过程中出现time out的提示信息,今天就可以洗洗睡啦,等明天网络状态好的时候再安装. 安装过程出现不知名的错误的时候,执行第一步,update一下 1.#up ...
- Keras学习~试用卷积~跑CIFAR-10
import numpy as np import cPickle import keras as ks from keras.layers import Dense, Activation, Fla ...
随机推荐
- C#中try catch finally 用法
1.将预见可能引发异常的代码包含在try语句块中. 2.如果发生了异常,则转入catch的执行. catch有几种写法: catch 这将捕获任何发生的异常. catch(Exception e) ...
- Python 基于python操纵zookeeper介绍
基于python操纵zookeeper介绍 by:授客 QQ:1033553122 测试环境 Win7 64位 Python 3.3.4 kazoo-2.6.1-py2.py3-none-any.w ...
- Flask技术问题汇总
1:Flask 使用 request对象代理了当前请求的上下文.这么做什么好处和坏处? 好处:flask封装了C端发起request对象,这样就可以使用上下文临时把某些对象变为全局可访问:如果不封装, ...
- iOS:我的学习路径
1.复习C语言(半个月) <C Primer Plus>1-6章 2.学习Objective-C基础语法(一周) 黑马程序员视频 3.直接用Xcode开始APP的实战(半个月) 黑马程序员 ...
- 做优化的数据库工程师请参考!CynosDB的计算层设计优化揭秘
本文由云+社区发表 本文作者:孙旭,腾讯数据库开发工程师,9年数据库内核开发经验:熟悉数据库查询处理,并发控制,日志以及存储系统:熟悉PostgreSQL(Greenplum,PGXC等).Terad ...
- 【spring源码分析】IOC容器初始化(十一)
前言:前面分析了doCreateBean中的createBeanInstance函数,接下来分析其剩余流程. 首先贴上doCreateBean函数: // AbstractAutowireCapabl ...
- Django Template(模板)
一.模板组成 组成:HTML代码 + 逻辑控制代码 二.逻辑控制代码的组成 1.变量 语法格式 : {{ name }} # 使用双大括号来引用变量 1.Template和Context对象(不推荐使 ...
- 《你必须掌握的Entity Framework 6.x与Core 2.0》勘误
第5章 5.1.1----致谢网友[宪煌] public virtual ICollection Post {get;set;} 修改为 public virtual ICollection<P ...
- codeforces#1139E. Maximize Mex(逆处理,二分匹配)
题目链接: http://codeforces.com/contest/1139/problem/E 题意: 开始有$n$个同学和$m$,每个同学有一个天赋$p_{i}$和一个俱乐部$c_{i}$,然 ...
- scala的多种集合的使用(5)之数组Array(ArrayBuffer)的操作
1.创建和更新数组的不同方式 1)定义一个数组的初始大小和类型,随后填充值. scala> val array = new Array[String](3) array: Array[Strin ...