【Keras】序贯模型Sequential学习笔记
2018-01-08 15:17
495 查看
序贯模型是多个网络层的线性堆叠,也就是“一条路走到黑”。
1、通过Sequential构建模型
可以通过向Sequential模型传递一个layer的list来构造该模型:
也可以通过.add()方法一个个的将layer加入模型中:
2、编译模型
在训练模型之前,我们需要通过compile来对学习过程进行配置。compile接收三个参数:
优化器optimizer:该参数可指定为已预定义的优化器名,如rmsprop、adagrad,或一个Optimizer类的对象
损失函数loss:该参数为模型试图最小化的目标函数,它可为预定义的损失函数名,如categorical_crossentropy交叉熵、mse均方差,也可以为一个损失函数。
指标列表metrics:对分类问题,我们一般将该列表设置为metrics=[‘accuracy’]。指标可以是一个预定义指标的名字,也可以是一个用户定制的函数.指标函数应该返回单个张量,或一个完成metric_name- > metric_value映射的字典.
3、训练模型:
Keras以Numpy数组作为输入数据和标签的数据类型。训练模型一般使用fit函数。
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)
相关文章推荐
- keras学习笔记-二(Sequential 模型)
- 11.11学习笔记之keras的sequential模型
- Deep learning基于theano的keras学习笔记(1)-Sequential模型
- 深入学习keras中Sequential模型及方法
- 【keras】序贯Sequential模型实例之MLP的二分类
- Keras 序贯(sequential)模型简介
- 【keras】序贯Sequential模型实例之基于多层感知器的softmax多分类
- 【keras】序贯Sequential模型实例之类似VGG的卷积神经网络
- keras中文文档笔记7——序贯模型
- 【keras】序贯Sequential模型实例之使用LSTM的序列分类
- 【keras】序贯Sequential模型实例之使用1D卷积的序列分类
- Keras 深度学习代码笔记——模型保存与加载
- 【keras】序贯Sequential模型实例之用于序列分类的栈式LSTM
- 【keras】序贯Sequential模型实例之采用stateful LSTM的相同模型
- Javascript MVC 学习笔记(一) 模型和数据
- keras-学习笔记
- TensorFlow学习笔记2:构建CNN模型
- keras:保存keras学习好的深度神经网络模型参数为二进制和txt文件
- 【deep learning学习笔记】注释yusugomori的LR代码 --- 模型测试
- 概率图模型(PGM)学习笔记(五)——模板模型