keras学习笔记1

一、Sequential模型

1、构造方式

(1)可以通过向Sequential模型传递一个layer的list来构造

from keras.models import Sequential  #导入Sequential模型
from keras.layers import Dense,Activation  #导入Dense,Activation层

model = Sequential(
[Dense(32,input_dim=748),
Activation('relu'),
Dense(10),
Activation('softmax'),]
)

(2)通过.add()方法将layer一个一个的加入模型中

model = Sequential()
model.add(Dense(32,input_dim=784))
model.add(Activation('relu'))

2、参数

模型的第一层通常情况下需要传入一个输入数据的shape参数

  • input_shape:tuple类型的数据,不包含batch_size。可以填入None,表示该位置可以是任意正整数
  • batch_input_size:包含batch_size。

以下三种方式是等价的

model = Sequential()

#1
model.add(Dense(32,input_shape=(784,)))

#2
model.add(Dense(32,batch_input_shape=(None,784)))

#3
model.add(Dense(32,input_dim=784))
model = Sequential()

#1
model.add(LSTM(32,input_shape=(10,64)))

#2
model.add(LSTM(32,batch_input_shape=(None,10,64)))

#3
model.add(LSTM(32,input_length=10,input_dim=64))

3、Merge层

多个Sequential可经由一个Merge层合并到一个输出。Merge层的输出是一个可以被添加到新的Sequential的层对象。

from keras.layers import Merge

left_branch = Sequential()
left_branch.add(Dense(32,input_dim=784))

right_branch = Sequential()
right_branch.add(Dense(32,input_dim=784))

merged = Merge([left_branch,right_branch], mode='concat')

final_model = Sequential()
final_Model.add(merged)
final_Model.add(Dense(10,activation='softmax'))

合并模式:

sum:逐元素相加

concat:张量串联 concat_axis指定哪个轴

mul:逐元素相乘

ave:张量平均

dot:张量相乘

cos:2D张量中各个向量的余弦距离

4、compile编译

训练模型前,需要通过compile来对学习模型进行配置。

compile接收的参数:

  • 优化器optimizer:可为预定义的优化器名rmsprop、adagrad
  • 损失函数loss:该参数为模型试图最小化的目标函数,可为预定义的损失函数名categorical_crossentropy/mse
  • 指标列表metrics:分类问题需要将该列表设置为metrics=['accuracy']
#for a multi-class classification problem
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])

#for a binary-class classification problem
loss='binary_crossentropy'

#for a mean squared error regression problem
model.compile(optimizer='rmsprop',
loss='mse')

5、训练-fit函数

猜你喜欢

转载自www.cnblogs.com/cola-1998/p/12699460.html
今日推荐