keras的数据传递——X=Layer()(X)
X = Conv1D(196,15,strides=4)(X_input)
X = BatchNormalization()(X)
X = Activation(‘relu’)(X)
X = Dropout(0.8)(X)
model = Model(inputs=X_input,outputs=X)
或
model = Sequential()
model.add(Bidirectional(LSTM(10, return_sequences=True), input_shape=(5, 10)))
model.add(Bidirectional(LSTM(10)))
model.add(Dense(5))
model.add(Activation(‘softmax’))
model.compile(loss=‘categorical_crossentropy’, optimizer=‘rmsprop’)
模型的生成过程
#生成模型实体
model = Model(inputs=X_input,outputs=X)
#查看模型
model.summary()
#保存模型的方式
##保存模型结构及权重信息
model.save(‘trainmodel.h5’)
##仅保存模型权重
model.save_weights(‘my_model_weights.h5’)
##需要在代码中初始化一个完全相同的模型
model.load_weights(‘my_model_weights.h5’)
##需要加载权重到不同的网络结构(有些层一样)中,例如fine-tune或transfer-learning,可以通过层名字来加载模型
model.load_weights(‘my_model_weights.h5’, by_name=True)
#加载模型
model = load_model(’./models/tr_model.h5’)
#编译模型-设置求解器
opt = Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, decay=0.01)
model.compile(loss=‘binary_crossentropy’, optimizer=opt, metrics=[“accuracy”])
#训练模型
model.fit(X, Y, batch_size = 5, epochs=1)
#评估模型
loss, acc = model.evaluate(X_dev, Y_dev)
print("Dev set accuracy = ", acc)
#测试模型
predictions = model.predict(x)