一 序贯模型(Sequential)
1 该模型是多个网络层的线性堆叠
2 可以通过add()的方法将一个个的layer加入模型中
model = Sequential()
model.add(Dense(32, input_shape=(784,))) #添加全连接层
model.add(Activation('relu')) #添加一层
3 输入数据的shape
模型需要知道输入数据的shape,因此,序贯模型的第一层接受一个关于输入数据shape的参数。后面的层可以自动推导数据的shape。
以下方式可以指定shape:
input_shape
input_dim
input_length
model= Sequential()
model.add(Dense(32, input_dim=784)) #指定输入的batch大小,以及样本的数目
model.add(Dense(32, input_shape=(784,)) #
4 编译参数
优化器 optimizer :可以指定为预定义的优化器名,如rmsprop、adagrad
损失函数 loss:即模型试图最小化的目标函数。可以使用预定义的损失函数名。
指标列表 metrics : 对于分类问题,我们一般设置为metrics=['accuracy']
2018.6.13学习到序贯模型
5 保存模型
model.save(filepath) #保存模型,将keras和权重保存在一个hdf5文件中,该文件包含:
#模型的结构
#模型的权重
#训练配置,包括损失函数,优化器
#优化器的状态,以便从上次训练终中断的地方开始
model.load_model(filepath) #加载模型重新实例化
json_string=model.to_json() #保存模型结构,而不包含权重
yaml_string=model.to_yaml()
model=model_from_json(json_string)
model=model_from_yaml(yaml_string)
model.save_weights('my_model_weights.h5') #保存模型的权重,利用HDF5保存
model.load_weights('my_model_weights.h5')#初始化一个完全相同的模型