【Keras】序贯模型Sequential学习笔记

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

1、通过Sequential构建模型
可以通过向Sequential模型传递一个layer的list来构造该模型:

#导入序贯模型
from keras.models import Sequential
#导入神经网络前向传播层结构和激活函数
from keras.layers import Dense,Activation
#可以通过向Sequential传递一个layer的list来构造该模型
#model = Sequential([Dense(units = 32,input_shape(784,)),Activation('relu'),Dense(10),Activation('softmax')])

'''
在构建神经网络模型的时候,初始必须指定输入数据的列维度;
可以用input_dim指定数据的列数,后者input_shape的方式指定输入的shape;
如果是3D的数据,支持参数input_dim和input_length来指定输入的shape;
'''

也可以通过.add()方法一个个的将layer加入模型中:

#也可以通过.add()方法一个个的将layer加入模型中:
model = Sequential()
model.add(Dense(units = 32,input_shape(784,)))
#model.add(Dense(units = 32,input_dim=784))
model.add(Activation('relu'))
model.add(Dense(10))
model.add(Activation('softmax'))

2、编译模型
在训练模型之前,我们需要通过compile来对学习过程进行配置。compile接收三个参数:

  • 优化器optimizer:该参数可指定为已预定义的优化器名,如rmsprop、adagrad,或一个Optimizer类的对象
  • 损失函数loss:该参数为模型试图最小化的目标函数,它可为预定义的损失函数名,如categorical_crossentropy交叉熵、mse均方差,也可以为一个损失函数。
  • 指标列表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])

3、训练模型:
Keras以Numpy数组作为输入数据和标签的数据类型。训练模型一般使用fit函数。

# For a single-input model with 10 classes (categorical classification):
# Generate dummy data
import numpy as np
data = np.random.random((1000, 100))
#labels = np.random.randint(10, size=(1000, 1))
#将标签生成one_hot编码,使用keras.utils.to_categorical函数
labels = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)
print(labels)
# Train the model, iterating on the data in batches of 32 samples
model.fit(data, labels, epochs=10, batch_size=32)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值