美文网首页机器学习
keras的模型学习笔记—— 序贯(Sequential)模型

keras的模型学习笔记—— 序贯(Sequential)模型

作者: gaoshine | 来源:发表于2017-09-15 18:00 被阅读493次

做一个深度学习的项目,开始必须要搭建一个模型,我们通过代码逐步了解keras的模型的搭建

深度学习模型

定义模型

序贯模型是多个网络层的线性堆叠,也就是“一条路走到黑”。

  1. 可以通过向Sequential模型传递一个layer的list来构造该模型
  2. 也可以通过.add()方法一个个的将layer加入模型中

模型需要知道输入数据的shape,因此,Sequential的第一层需要接受一个关于输入数据shape的参数.

  1. 传递一个input_shape的关键字参数给第一层
  2. 有些2D层,如Dense,支持通过指定其输入维度input_dim来隐含的指定输入数据shape。
  3. 如果你需要为输入指定一个固定大小的batch_size(常用于stateful RNN网络),可以传递batch_size参数到一个层中,例如你想指定输入张量的batch大小是32,数据shape是(6,8),则你需要传递batch_size=32和input_shape=(6,8)

编译

在训练模型之前,我们需要通过compile来对学习过程进行配置。compile接收三个参数:
  1. 优化器optimizer:该参数可指定为已预定义的优化器名,如rmsprop、adagrad,或一个Optimizer类的对象,详情见optimizers
  2. 损失函数loss:该参数为模型试图最小化的目标函数,它可为预定义的损失函数名,如categorical_crossentropy、mse,也可以为一个损失函数。详情见losses
  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.backend as K

def mean_pred(y_true, y_pred):
    return K.mean(y_pred)

model.compile(optimizer='rmsprop',
              loss='binary_crossentropy',
              metrics=['accuracy', mean_pred])

快速开始序贯(Sequential)模型

from keras.models import Sequential
from keras.layers import Dense, Activation


from IPython.display import SVG
from keras.utils.vis_utils import model_to_dot
import pandas as pd
import matplotlib.pyplot as plt
# 定义模型
model = Sequential()

model.add(Dense(32, input_shape=(784,)))
model.add(Activation('relu'))
model.add(Dense(10))
model.add(Activation('softmax'))

model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])

model.summary()
SVG(model_to_dot(model,show_shapes=True).create(prog='dot', format='svg'))

Layer (type) Output Shape Param #

dense_9 (Dense) (None, 32) 25120


activation_6 (Activation) (None, 32) 0


dense_10 (Dense) (None, 10) 330


activation_7 (Activation) (None, 10) 0

Total params: 25,450
Trainable params: 25,450
Non-trainable params: 0

模型

相关文章

网友评论

    本文标题:keras的模型学习笔记—— 序贯(Sequential)模型

    本文链接:https://www.haomeiwen.com/subject/wghesxtx.html