keras和tensorflow lite模型之间的预测差异

时间:2019-11-14 20:05:28

标签: python android tensorflow keras tensorflow-lite

我已经基于移动加速度计的数据创建了可识别人类活动的keras模型:

model = Sequential()
model.add(Reshape((const.PERIOD, const.N_FEATURES), input_shape=(240,)))
model.add(Conv1D(100, 10, activation='relu', input_shape=(const.PERIOD, const.N_FEATURES)))
model.add(Conv1D(100, 10, activation='relu'))
model.add(MaxPooling1D(const.N_FEATURES))
model.add(Conv1D(160, 10, activation='relu'))
model.add(Conv1D(160, 10, activation='relu'))
model.add(Flatten())
model.add(Dropout(0.5))
model.add(Dense(7, activation='softmax'))
model.summary()
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

我已经测试了模型,十个星期后的准确度约为85-90%。我不知道,但是当我将模型转换为TF Lite并在我的android应用程序中运行解释器时,会有可怕的预测。结果不好的原因是什么? keras上没有兼容性-> tensorflow-> tensorflow lite行?我是否应该使用诸如servlet + keras模型之类的其他方式来运行它?

1 个答案:

答案 0 :(得分:0)

一些建议:

  1. 尝试使用来可视化您的tflite图 https://lutzroeder.github.io/netron/。看看有什么 意外的。
  2. 尝试首先使用tensorflow lite的python API进行调试。喂一样 输入keras模型和tflite模型并比较输出 张量。