keras上手系列之: 代码的整体框架

2023-05-16

keras的名字来源于希腊史诗<奥德赛>里的牛角之门(Gate of Horn), 是追梦者之路,是梦想实现之门. Those that come through the Ivory Gate cheat us with empty promises that never see fullfillment. Those that come through the Gate of Horn inform the dreamer of the truth.
不得不说keras的作者真的太有文化了.
当然,keras正如名字所寓意的一样,非常好用. 在最新的tensorflow发布版本中, 已经将keras列入官方支持的高级API之一.
keras支持python语言,后台支持CNTK, theono和tensorflow三种深度学习框架. keras在设计时采用了高度模块化的方法, 强调快速建模, 实战中也的确如此. 下面就对keras开发的大致流程做一介绍.

1、载入数据
keras支持numpy的float数据类型的array. 通常可以用pandas的load_csv读取数据, 并转化为支持的格式.

import pandas
dataset = pandas.load_csv(filename, some_conditions)
dataset = dataset.values()
dataset = dataset.astype('float32')

2、归一化
数据归一化是神经网络模型非常重要的一步. 可以调用sklearn.preprocessing中的MinMaxScaler将数据区间转化到[0,1].

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0,1))
dataset = scaler.fit_transform(dataset)

之后调用scaler.inverse_transform(dataset) 就可以将数据恢复到原区间. 这里需要注意的是, dataset的维度不能发生改变. 也就是fit_transform()和 inverse_transform()处理的数据矩阵是同样大小的.

3、将数据分为训练数据和验证数据,便于交叉验证

train_size = int(len(dataset)*ratio)
test_size = len(dataset) - train_size
train_data, test_data = dataset[0:train_size,:], dataset[train_size:len(dataset), :]

4、 将数据规范化,生成LSTM网络适合的数据
keras的LSTM网络要求的数据的维度依次为:
data[samples, timesteps, data_dim_at_each_timestep]
或者说是
data[samples, time steps, features]

5、构建神经网络
keras提供了两种方式构建神经网络, 一种是序贯模型, 一种是函数式模型.
序贯模型: from keras.models import Sequential
函数式模型: from keras.models import Model
通常, 序贯模型比函数式模型建模更为简单, 但是函数式建模则更加灵活, 可以构建相对复杂的神经网络模型.
以下是一个序贯模型的方式编写的简单LSTM网络:

from keras.models import Sequential
from keras.layers import LSTM, Dense
model = Sequential()
model.add(LSTM(layer_output_dim, input_shape=(timesteps, features)))
model.add(Dense(output_dim))
model.compile(loss='mse', optimizer='adam')

查看网络的结构:

model_config = model.config()
print('model config: ', model_config)

或者用summary列表的方式显示模型的整体结构:

model_summary = model.summary()
print(model_summary)

6, 训练网络

model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=0/1/2) # verbose显示迭代步骤,0是不显示

7. 模型输出预测

predict_y = model.predict(predict_X)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

keras上手系列之: 代码的整体框架 的相关文章

随机推荐

  • Eclipse离线安装ADT插件

    Eclipse安装 ADT插件 但是由于某些不可抗拒的原因连上 https dl ssl google com android eclipse 后 xff0c 始终无法更新 ADT插件 卡死在 Fetchingcontent jar上 解决
  • ubuntu在shell中把文件拷贝进U盘

    1 创建挂载位置 xff0c 例如 sudo mkdir mnt u 这个位置只要建好 xff0c 以后就可以不用再建了 2 用mount命令将U盘挂载在这个位置 sudo mount dev sdb1 mnt u 注意U盘的盘符不一定是
  • linux文件管理

    linux文件管理 计算机操作系统都采用了目录树的文件结构 linux中 xff1a 符号名称 根目录 bin常见用户口令 boot内核和启动文件 dev设备文件 home系统默认的普通用户主目录 etc系统和服务配置文件 lib系统函数库
  • C++和Windows平台的一些书籍

    从2010年学习编程以来 xff0c 到现在有差不多3年时间了 xff0c 过的真快啊 目前在深圳工作 xff0c 主要使用的是C 43 43 语言 xff0c 那么我就说说C 43 43 和Windows平台的书籍吧 1 C primer
  • ubuntu上运行C程序

    ubuntu版本为Ukylin14 04LTS 首先配置编辑器vim step1 xff1a 查看系统是否安装vim 打开终端 xff0c 输入vi xff0c 按下tab键 xff0c 如果列表里没有vim xff0c 说明系统没有安装
  • 怎么让ubuntu变得更加好用

    ubunut14 04LTS版本其实已经很好用了 但是也有一些小小的美中不足 以下设置是陆续收集 摸索到的可以让系统更好用的方法 1 在终端打开已经安装的应用程序时 xff0c 总是会显示一些错误信息 在 bin下添加x文件 xff1a c
  • linux命令(1):touch

    touch 命令 功能说明 xff1a 改变文件或目录时间 xff0c 包括存取时间和更改时间 语 法 xff1a 补充说明 xff1a 使用touch指令可更改文件或目录的日期时间 最常用用法 xff1a touch fileA 如果fi
  • bash shell命令(1);、&&、||

    xff1b 命令 按照先后顺序一次执行多个命令 xff0c 命令之间用 xff1b 分割 xff1a command 1 command 2 command 3 amp amp 命令 如果前一个命令 command 1 顺利执行 xff0c
  • linux命令(2):less

    less工具也是对文件或其它输出进行分页显示的工具 xff0c 比more的功能更强大 命令格式 xff1a less 参数 文件1 xff08 文件2 xff09 命令功能 xff1a less 与 more 类似 xff0c 但使用 l
  • [zz] linux下vi或vim操作Found a swap file by the name的原因及解决方法

    在linux下用vi或vim打开Test java文件时 root 64 localhost tmp vi Test java 出现了如下信息 xff1a E325 ATTENTION Found a swap file by the na
  • ubuntu中使用判断符号[]

    鸟哥的私房菜p270中13 3 2使用 符号有这样一个例子 xff1a vim sh06 sh 脚本内容如下 xff1a bin bash Program This program shows the user 39 s choice Hi
  • 深度学习caffe框架(1):如何快速上手caffe?

    初识caffe 安装caffe跑一个例子mnist配置caffe框架的深度学习网络结构输入数据 数据层的定义图片数据如何保存为lmdb格式 模型的保存和读取 caffe的代码层次参考 初识caffe 安装caffe 跑一个例子 mnist
  • 深度学习caffe框架(2): layer定义

    caffe的代码层次 首先让我们回顾一下caffe的代码层次 blob layer net和solver 其中blob是数据结构 layer是网络的层 net是将layer搭建成的网络 solver是网络BP时候的求解算法 本节主要介绍ca
  • 安装Qt及相关问题解决

    安装Qt及相关问题解决 Download Qt 1 Qt下载 关于Qt下载 xff0c 官网可以下载 但是需要填一大堆信息 非常麻烦 可以打开下面的链接 xff0c 里面有各版本Qt http download qt io archive
  • 可编程的SQL是什么样的?

    背景 如果你使用传统编程语言 xff0c 比如Python xff0c 那么恭喜你 xff0c 你可能需要解决大部分你不需要解决的问题 xff0c 用Python你相当于拿到了零部件 xff0c 而不是一辆能跑的汽车 你花了大量时间去组装汽
  • matplotlib 绘制动画

    matplotlib动画 载入matplotlib动画绘制工具 span class hljs import span class hljs keyword import span matplotlib animation span cla
  • Robust Real-Time Extreme Head Pose Estimation

    基本思路 xff1a 用RGB D 的摄像头 xff0c 利用RGB和深度信息对人脸进行三位建模和合成 之后建立了一个由33个人不同头部姿态点云合成数据组成的数据库Dali3DHP xff0c 基于级联决策树 xff08 5个 xff09
  • 如何将ipython的历史记录导出到.py文件中?

    python绝对是生产力工具 真的太好用了 python jupyter提供了非常好的交互编程方式 最棒的就是在数据分析过程中 可以把想法和代码实现放在一起 大大加速了分析过程 也使得代码的可读性更好 回到上面的问题 两种办法解决 xff1
  • keras上手系列之: 模型的保存

    如何将训练好的网络进行保存以便以后使用 进行后续的研究呢 首先 定义一个简单的LSTM模型 span class hljs keyword from span keras models span class hljs keyword imp
  • keras上手系列之: 代码的整体框架

    keras的名字来源于希腊史诗 lt 奥德赛 gt 里的牛角之门 Gate of Horn 是追梦者之路 是梦想实现之门 Those that come through the Ivory Gate cheat us with empty