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 ...
随机推荐
- Android远程桌面助手(B1185)for Android P开发者预览版
Android P的开发者预览版已出,其中App compatibility changes部分特别强调“The platform restricts the use of some non-SDK ...
- 自动化批量管理工具pssh - 运维小结
pssh提供OpenSSH和相关工具的并行版本.包括pssh,pscp,prsync,pnuke和pslurp.该项目包括psshlib,可以在自定义应用程序中使用.pssh是python写的可以并发 ...
- Redis 主从复制原理及雪崩 穿透问题
定义: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMw ...
- EOS开发入门
EOS开发入门 在上一篇文章<EOS开发环境搭建>中,我们已经完成了EOS开发环境的搭建,本次为大家带来的是EOS开发入门的相关内容. 1. EOS的合约开发基础 智能合约是一种旨 ...
- Video clip 视频剪辑:入门级
作为一个对小说漫画电视剧电影的设计有着自己独特需求的人,一直对视频剪辑有着浓厚的兴趣,之前用爱剪辑这种通俗易上手的软件做过简单的小视频.但是这个毕竟满足不了我自己的需求而且属于完全门外汉级别.这次终于 ...
- shell编程企业级实战
如何才能学好Shell编程 为什么要学习shell编程 Shell是Linux底层核心 Linux运维工作常用工具 自动化运维必备基础课程 学好shell编程所需Linux基础 熟练使用vim编辑器 ...
- python学习——读取染色体长度(五:从命令行输入染色体长度)
# 传递命令行参数 # 导入sys模块 import sys print(sys.argv) 命令行操作 python argv.py 10 20 30 40 50 回车输出 ['argv.py' ...
- 云计算openstack介绍
一.云计算的前世今生 所有的新事物都不是突然冒出来的,都有前世和今生.云计算也是IT技术不断发展的产物. 要理解云计算,需要对IT系统架构的发展过程有所认识. 请看下 IT系统架构的发展到目前为止大致 ...
- 01-Redhat/Centos7网卡命名介绍及修改方式
1. Redhat/Centos7网卡命名介绍 1.1 网络设备命名 Redhat/Centos7提供在网络接口中使用新的网络设备命名方法.这些功能会更改系统中的网络接口名称,以便定位和区分这些接口. ...
- 心智与认知(1): 反馈循环(Feedback loop)
目录: ** 0x01 反馈循环(Feedback loop) | How to see System in everyday life ** 0x02 如何像视频游戏一样剖析你的人生?| 打怪升级这 ...