K e r a s Keras Keras主要有2中模型, S e q u e n t i a l Sequential Sequential模型和 M o d e l Model Model模型。
S e q u e n t i a l Sequential Sequential模型:
模型
from keras.models import Sequential
from keras.layers import Flatten,Dense,Embedding
model = Sequential()
model.add(Embedding(max_words,embedding_dim,input_length=maxlen))
model.add(Flatten())
model.add(Dense(16,activation='relu'))
model.add(Dense(1,activation='sigmoid'))
model.summary()
先令
m
o
d
e
l
=
S
e
q
u
e
n
t
i
a
l
(
)
model=Sequential()
model=Sequential()
然后往后面不断的添加层就可以了,非常方便。
要注意第一层需要有一个输入的维度大小的相关信息,其他层不需要这类信息。
最后
s
u
m
m
a
r
y
(
)
summary()
summary()一下,看看模型长什么样子
编译
编译的时候可以指定优化器,损失函数,监控指标等等。
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['acc'])
回调函数
可以设置保存点,提前终止等等,写好以后命名为 c a l l b a c k _ l i s t callback\_list callback_list。
from keras.callbacks import EarlyStopping
from keras.callbacks import ModelCheckpoint
model_name='glove_model_1.h5'
callback_list=[
#EarlyStopping(
# monitor='val_acc',
# patience=5
#),
ModelCheckpoint(
filepath=model_name,
monitor='val_acc',
save_best_only=True
)
]
训练
设置训练集, e p o c h epoch epoch大小, b a t c h batch batch大小,验证集,以及回调函数等等。
history = model.fit(x_train,y_train,epochs=30,batch_size=32,validation_data=(x_val,y_val),callbacks=callback_list)
m o d e l model model模型
m o d e l model model模型比 s e q u e n t i a l sequential sequential模型更为复杂一点,能够实现共享层,多层输出等模型。
from keras.models import Model
from keras.layers import Input, Dense
a = Input(shape=(32,))
b = Dense(32)(a)
model = Model(inputs=a, outputs=b)
剩下的编译,调回,训练部分和
s
e
q
u
e
n
t
i
a
l
sequential
sequential模型一样。
区别在于:
- m o d e l model model模型需要指定输入,输出。
- 层的输入需要作为变量写在层的后面。
这样, m o d e l model model模型就能实现更为复杂的神经网络结构
参考:keras中文文档