【发布时间】:2019-11-14 20:05:28
【问题描述】:
我创建了 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'])
我已经测试过模型,十个 epoch 后的准确率大约是 85-90%。我不知道,但是当我将模型转换为 TF Lite 并在我的 android 应用程序中运行解释器时,会出现可怕的预测。结果不好的原因是什么? keras -> tensorflow -> tensorflow lite line 不兼容?我应该以另一种方式运行它,使用 servlet + keras 模型之类的东西吗?
【问题讨论】:
-
你很快就进入了你的模型,你有没有考虑过它可能是训练数据?
-
但如果是同一部手机,同样的活动,数据会有什么问题?
-
每次活动我收集的方式都是一样的,即保持在首选位置或放在我的口袋里。
标签: python android tensorflow keras tensorflow-lite