由于项目需要,可能会用到tensorflow和keras的模型,并且需要在App(安卓)上跑模型,实现了这一功能之后,把过程总结一下,分享了出来。
一、在PC端训练Keras模型
下面给出我的实例代码
from __future__ import print_function
import keras
from keras.models import Sequential,save_model,load_model
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras import backend as K
import numpy as np
data = np.random.rand(9,28,28,1)
label = np.random.rand(9,8)
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',padding='same',
input_shape=(28,28,1),name='op_data'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(32, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(8, activation='softmax',name='op_out'))
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.RMSprop(),
metrics=['accuracy'])
model.fit(data,label,epochs=3)
二、保存Keras模型为H5文件
h5_path = 'data/keras.h5'
# model.save(h5_path)
save_model(model,h5_path)
newmodel = load_model(h5_path)
model.summary()
'''
op_data (Conv2D) (None, 28, 28,