系列文章目录

第一章 Python Keras中的深度学习的模型:序列模型(Sequential)和通用模型(Model)


目录

系列文章目录

一、序列模型(Sequential)

1、list构造

2、add()构造

二、通用模型(Model)

3、示例

总结

一、序列模型(Sequential)

序列模型是一个线性的层次堆栈。可以通过传递一系列 layer 实例给构造器来创建一个序列模型。通过堆叠许多层,构建出深度神经网络。

序列模型的两种创建方式:list构造add()构造

1、list构造

通过向Sequential模型传递一个layer的list来构造该模型:

from keras.models import Sequential
from keras.layers import Dense, Activationlayers = [Dense(32, input_shape = (784,)),Activation('relu'),Dense(10),Activation('softmax')]model = Sequential(layers)

2、add()构造

通过add()逐层向Sequential中添加layer

from keras.models import Sequential
from keras.layers import Dense, Activationmodel = Sequential() # 定义模型
model.add(Dense(units=64, activation='relu', input_dim=100)) # 定义网络结构
model.add(Dense(units=10, activation='softmax')) # 定义网络结构
model.compile(loss='categorical_crossentropy', # 定义loss函数、优化方法、评估标准optimizer='sgd',metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, batch_size=32) # 训练模型
loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128) # 评估模型

二、通用模型(Model)

from keras.layers import Input, Dense
from keras.models import Model# 输入层,确定输入维度
input = Input(shape = (784, ))
# 2个隐含层,每个都有64个神经元,使用relu激活函数,且由上一层作为参数
x = Dense(64, activation='relu')(input)
x = Dense(64, activation='relu')(x)
# 输出层
y = Dense(10, activation='softmax')(x)model = Model(inputs=input, outputs=y)
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(data, labels)

3、示例

一个CNN网络处理一维信号代码如下:

from keras.layers import Conv1D, Dense, Dropout, BatchNormalization, MaxPooling1D, Activation, Flatten,Input
import preprocess
from keras.callbacks import TensorBoard
import matplotlib.pyplot as plt
import numpy as np
from keras.regularizers import l2
import tensorflow as tf
from tensorflow import keras
from keras import Model, layers
import mathbatch_size = 128
epochs = 20
num_classes = 10
length = 2048
BatchNorm = True # 是否批量归一化
number = 1000 # 每类样本的数量
normal = True # 是否标准化
rate = [0.7,0.2,0.1] # 测试集验证集划分比例# 数据路径
path = xxx
# 数据经preprocess预处理
x_train, y_train, x_valid, y_valid, x_test, y_test = preprocess.prepro(d_path=path,length=length,number=number,normal=normal,rate=rate,enc=True, enc_step=28)x_train, x_valid, x_test = x_train[:,:,np.newaxis], x_valid[:,:,np.newaxis], x_test[:,:,np.newaxis]# 输入数据的维度
input_shape =x_train.shape[1:]input = Input(shape = input_shape)# 卷积层1
x = Conv1D(filters=16, kernel_size=64, strides=16, padding='same',kernel_regularizer=l2(1e-4),input_shape=input_shape)(input)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = MaxPooling1D(pool_size=2)(x)# 卷积层2
x = Conv1D(filters=32, kernel_size=3, strides=1, padding='same',kernel_regularizer=l2(1e-4))(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = MaxPooling1D(pool_size=2)(x)# 从卷积到全连接需要展平
x = Flatten()(x)# 添加全连接层
x = Dense(units=100, activation='relu', kernel_regularizer=l2(1e-4))(x)# 增加输出层
output = Dense(units=num_classes, activation='softmax', kernel_regularizer=l2(1e-4))(x)
model =Model(inputs = input,outputs = output)
model.compile(optimizer='Adam', loss='categorical_crossentropy',metrics=['accuracy'])# TensorBoard调用查看一下训练情况
tb_cb = TensorBoard(log_dir='logs')history = model.fit(x=x_train, y=y_train, batch_size=batch_size, epochs=epochs,verbose=1, validation_data=(x_valid, y_valid), shuffle=True,callbacks=[tb_cb])# 评估模型
score = model.evaluate(x=x_test, y=y_test, verbose=0)
print("测试集上的损失:", score[0])
print("测试集上的准确率:",score[1])
#plot_model(model=model, to_file='wdcnn.png', show_shapes=True)#####################################################################
# 绘制训练 & 验证的准确率值
plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('Model accuracy')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()# 绘制训练 & 验证的损失值
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('Model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()

总结

记录一下学习到的Keras中序列模型(Sequential)和通用模型(Model)的用法

Keras中的深度学习的模型:序列模型(Sequential)和通用模型(Model)相关推荐

  1. 在浏览器中进行深度学习:TensorFlow.js (四)用基本模型对MNIST数据进行识别

    2019独角兽企业重金招聘Python工程师标准>>> 在了解了TensorflowJS的一些基本模型的后,大家会问,这究竟有什么用呢?我们就用深度学习中被广泛使用的MINST数据集 ...

  2. 如何为Keras中的深度学习模型建立Checkpoint

    深度学习模式可能需要几个小时,几天甚至几周的时间来训练. 如果运行意外停止,你可能就白干了. 在这篇文章中,你将会发现在使用Keras库的Python训练过程中,如何检查你的深度学习模型 Checkp ...

  3. 如何在Keras中检查深度学习模型(翻译)

    本文翻译自:How to Check-Point Deep Learning Models in Keras 深度学习模型可能需要数小时,数天甚至数周才能进行训练. 如果意外停止运行,则可能会丢失大量 ...

  4. 使用keras进行深度学习_如何在Keras中通过深度学习对蝴蝶进行分类

    使用keras进行深度学习 A while ago I read an interesting blog post on the website of the Dutch organization V ...

  5. 在浏览器中进行深度学习:TensorFlow.js (十二)异常检测算法

    2019独角兽企业重金招聘Python工程师标准>>> 异常检测是机器学习领域常见的应用场景,例如金融领域里的信用卡欺诈,企业安全领域里的非法入侵,IT运维里预测设备的维护时间点等. ...

  6. Keras深度学习实战(1)——神经网络基础与模型训练过程详解

    Keras深度学习实战(1)--神经网络基础与模型训练过程详解 0. 前言 1. 神经网络基础 1.1 简单神经网络的架构 1.2 神经网络的训练 1.3 神经网络的应用 2. 从零开始构建前向传播 ...

  7. 我的机器学习入门之路(中)——深度学习(自然语言处理)

    继上一篇<我的机器学习入门之路(上)--传统机器学习>,这一篇博客主要记录深度学习(主要是自然语言处理)这一块内容的学习过程.以下均将自然语言处理简称NLP. 这一块内容的学习路线分为三部 ...

  8. 精准医学中的深度学习和影像组学

    影像科正在经历一种范式转变,即使用人工智能与机器集成以及深度学习与影像组学更好地定义组织特征,从而实现计算机科学与影像学的共生关系.研究的目标是使用集成的深度学习和具有影像学参数的影像组学来为患者进行 ...

  9. 在Tensorflow中使用深度学习构建图像标题生成器

    by Cole Murray 通过科尔·默里(Cole Murray) 在Tensorflow中使用深度学习构建图像标题生成器 (Building an image caption generator ...

  10. 从原理到应用落地,一文读懂推荐系统中的深度学习技术

    作者丨gongyouliu.zandy 来源丨大数据与人工智能(ID:ai-big-data) 2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一时成为轰动全球的重 ...

最新文章

  1. MIT副教授赵宇飞团队登数学四大顶刊,华人作者中两位是本科生,最小的是00后...
  2. tensorflow中使用tf.ConfigProto()配置Session运行参数GPU设备指定
  3. GROUP BY 和SUBSTRING 的配合使用
  4. Alpha 冲刺 (1/10)
  5. Linux版本的安装文件jdk,tomcat
  6. nginx反向代理模块配置详解_nginx反向代理配置详解
  7. java 反射覆盖方法,java – 确定一个方法是否覆盖使用反射的另一个?
  8. 12c r2单实例 静默安装软件
  9. 计算机设备管理系统论文,设备管理系统论文-.doc
  10. convert oracle 字符串_oracle的concat、convert、listagg函数(字符串拼接和类型转换)...
  11. -XX:+PrintGCTimeStamps -XX:+PrintGCDetails 日志分析
  12. AUTOCAD——Excel表格导入CAD、CAD合并两兄弟
  13. Android开发技术周报 Issue#8
  14. [转]Android 上百实例源码分析以及开源分析
  15. 10种网站推广的常用方法
  16. 100集华为HCIE安全培训视频教材整理 | Agile Controller终端安全管理特性(四)
  17. Python爬虫:抓取多级页面数据
  18. 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇1、ArcGIS RasterType Extension for Chinese Satellites 2.0插件介绍
  19. 【风雨哈佛路】原型——全美“奇迹女孩”:从流浪女到哈佛女
  20. 对于后台站点的用户活跃度统计 除了记录用户登陆时间进行筛选,还有没有别的方法

热门文章

  1. 电脑上计算机三个键盘的使用方法,干货:全方面介绍电脑键盘各键功能与组合键使用方法...
  2. 金融风控系统设计 - 外汇管理风控系统
  3. Java多线程系列--“JUC集合”09之 LinkedBlockingDeque
  4. 【转】对程序中常出现的EINT、DINT、ERTM、DRTM的理解
  5. mysql中dint,请教一下Dint和Real型变量在使用过程中出现的问题
  6. Redmine安装与入门指南
  7. Python基础:while循环 以及 练习题 :三位数的水仙花数 GDP 计算π 判断一个数是否是素数
  8. 作为面试官,我是如何甄别应聘者的包装程度
  9. 字谜游戏(b)C语言
  10. 技术分享 | Online DDL 工具 gh-ost