Keras之序贯(Sequential)模型
序贯模型(Sequential)
序贯模型是多个网络层的线性堆叠。
可以通过向Sequential模型传递一个layer的list来构造该模型:
from Keras.models import Sequential
from Keras.layers import Dense,Activation model = Sequential([Dense(32,units=784),Activation('relu'),Dense(10),Activation('softmax'),])
也可以通过.add()方法一个个的将layer加入到模型中:
model = Sequential()
model.add(Dense(32,input_shape=(784,)))
model.add(Activation('relu'))
指定输入数据的Shape
模型需要知道输入数据的shape,因此,Sequential的第一层需要接受一个关于输入数据shape的参数,后面的各个层则可以自动推导出中间数据的shape,因此不需要为每个层都指定这个参数。有几种方法来为第一层指定输入数据的shape,因此不需要为每个层都指定这个参数。有几种方法来为第一层指定输入数据的shape
- 传递一个input_shape的关键字给第一层,input_shape是一个tuple类型的数据,其中也可以填入None,如果填入None则表示此位置可能是任何正整数。数据的batch大小不应该包含在其中。
- 有些2D层,如Dense,支持通过指定其输入维度input_dim来隐含的指定指定输入数据shape。一些3D的时域层支持通过参数input_dim和input_length来指定输入shape
- 如果你需要为输入指定一个固定大小的batch_size(常用于stateful RNN网络),可以传递batch_size参数到一个层中,例如你想指定输入张量的batch大小是32,数据shape是(6,8),则你需要传递batch_size=32和input_shape()=(6,8)。
model = Sequential()
model.add(Dense(32,input_dim(784))) model = Sequential()
model.add(Dense(32,input_shape=784))
编译
在训练模型之前,我们需要通过compile来对学习过程进行配置。compile接收三个参数:
1.优化器optimizer:该参数可指定为已预定义的优化器名称,如rmsprop、adagrad,或一个Optimizer类的对象
2.损失函数loss:该参数为模型试图最小化的目标函数,它可为预定义的损失函数名,如categorical_crossentropy、mse,也可以为一个损失函数。
3.指定列表metrics:对分类问题,我们一般将列表设置为metrics=[‘accuracy’].指标可以是一个预定义指标的名字,也可以是一个用户定制的函数。指标函数应该返回单个张量,或一个完成metric_name -> metric_value映射的字典
#For a multi-class classification problem
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'
#For a binary classification problem
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])
#For a mean squared error regression problem
model.compile(optimizer='rmsprop',loss='mse')
#For custom metrics
import keras.backed as k def men_pred(y_true,y_pred):
return K.mean(y_pred) model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy',mean_pred])
训练
Keras以Numpy数组作为输入数据和标签的数据类型。训练模型一般使用fit函数。下面给出一些例子:
#For a single-input model with 2 class (binary classification)
model = Sequential()
model.add(Dense(32,activation='relu', input_dim=100))
model.add(Dense(1,activation='sigmoid'))
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy']) #Generate dummy data
import numppy as np
data = np.random.random((100,100))
labels = np.random.randint(2,size=(1000,1)) #Train the model,iterating on the data in batches of 32 samples
model.fit(data,labels,epochs=10,batch_size=32)
#For a sinale-input model with 10 class (categorical classfication):
model = Sequential()
model.add(Dense(32,activation='relu',input_dim=100))
model.add(Dense(10,activation='softmax'))
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy']) #Generate dummy data
import numpy as np
data = np.random.random((1000,100))
labels = np.random.randint(10,size=(1000,1)) #Convert Labels to categorical one-hot encoding
one_hot_labels = keras.utils.to_categorical(labels,num_classes=10) #Train the model,interating on the data in batches of 32 samples
model.fit(data,one_hot_labels,epochs=10,batch_size=32)
Keras之序贯(Sequential)模型的更多相关文章
- Python机器学习笔记:深入理解Keras中序贯模型和函数模型
先从sklearn说起吧,如果学习了sklearn的话,那么学习Keras相对来说比较容易.为什么这样说呢? 我们首先比较一下sklearn的机器学习大致使用流程和Keras的大致使用流程: skl ...
- keras模块学习之Sequential模型学习笔记
本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作! Sequential是多个网络层的线性堆叠 可以通过向Sequential模型传递一个layer的list来构造该模型: from ...
- Keras官方中文文档:序贯模型
快速开始序贯(Sequential)模型 序贯模型是多个网络层的线性堆叠,也就是"一条路走到黑". 可以通过向Sequential模型传递一个layer的list来构造该模型: f ...
- Keras官方中文文档:序贯模型API
Sequential模型接口 如果刚开始学习Sequential模型,请首先移步这里阅读文档,本节内容是Sequential的API和参数介绍. 常用Sequential属性 model.layers ...
- Python机器学习笔记:深入学习Keras中Sequential模型及方法
Sequential 序贯模型 序贯模型是函数式模型的简略版,为最简单的线性.从头到尾的结构顺序,不分叉,是多个网络层的线性堆叠. Keras实现了很多层,包括core核心层,Convolution卷 ...
- 【Keras学习】Sequential模型
序贯(Sequential)模型 序贯模型是多个网络层的线性堆叠,也就是“一条路走到黑”. 可以通过向Sequential模型传递一个layer的list来构造该模型: from keras.mode ...
- Keras(一)Sequential与Model模型、Keras基本结构功能
keras介绍与基本的模型保存 思维导图 1.keras网络结构 2.keras网络配置 3.keras预处理功能 模型的节点信息提取 config = model.get_config() 把mod ...
- Keras Model Sequential模型接口
Sequential 模型 API 在阅读这片文档前,请先阅读 Keras Sequential 模型指引. Sequential 模型方法 compile compile(optimizer, lo ...
- mnist手写数字识别——深度学习入门项目(tensorflow+keras+Sequential模型)
前言 今天记录一下深度学习的另外一个入门项目——<mnist数据集手写数字识别>,这是一个入门必备的学习案例,主要使用了tensorflow下的keras网络结构的Sequential模型 ...
随机推荐
- poj 1182 食物链 并查集的又一个用法
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 41584 Accepted: 12090 Descripti ...
- Oracle之配置客户端登陆多个远程数据库
一.引言 一直搞不明白Oracle数据库的客户端是怎么回事,怎么配置,前几天由于工作中需要用到Oracle,而且需要连接两个不同的数据库,就通过上网和请教同事终于把客户端的配置搞定了,记录之,学习之 ...
- CCNA2.0笔记_IP连接排错
IPv4 路由排错 ping tracert traceroute telnet show mac address-table show interfaces fastEthernet 0/1 sho ...
- 第一个MICO CORBA demo实录
因为忙于其他事情没有仔细去学习CORBA原理,也就大概根据网上的教程搭了一个使用MICO的demo 记录如下. 这里的话,代码我就不贴了,程序也不详细解释了,因为项目文件夹里有一个PPT详细解释了这个 ...
- 小型云服务器搭建GitLab遇到的坑
云服务商:腾讯云,搞活动买的 3年800块钱,和同时一人一台 配置:1C.1G.50G 用三年,挺划算的 项目中以前一直使用SVN作为代码版本控制,秉着程序员做到老学到老的精神,想尝试一下先进的GIT ...
- 使用心跳机制实现CS架构下多客户端的在线状态实时更新以及掉线自动重连
此文讲述的内容是一个实际项目开发中的一部分内容,笔者将亲身经历写成文章. [背景] 现需要实现这样的功能:有多个客户端连着同一个服务器.服务器和客户端之间需要“互相”知道彼此的连接状态.比如在某一时刻 ...
- poj3565 Ants km算法求最小权完美匹配,浮点权值
/** 题目:poj3565 Ants km算法求最小权完美匹配,浮点权值. 链接:http://poj.org/problem?id=3565 题意:给定n个白点的二维坐标,n个黑点的二维坐标. 求 ...
- java模板引擎替换代码
import java.text.ParseException; import java.util.HashMap; import java.util.Map; import java.util.re ...
- redux-effect
npm install --save redux-effect 通过redux中间件的方式使async方法可以在redux中使用. 如果你使用redux-saga,应该非常容易上手redux-effe ...
- javascript获取html标记的的绝对定位值
function getElementLeft(element) { var actualLeft = element.offsetLeft; var current = element.offset ...