我的 Keras 模型无法转换为 Tensorflow Lite,且未指示错误

问题描述 投票:0回答:1

我有一个 Keras 模块,可以检测某些面部表情并希望将其转换为 tflite,但它似乎不起作用。我正在使用 Kaggle 笔记本和 TensorFlow 版本:2.15.0 & Keras 版本:3.0.5

这是我的模型,在转换之前它运行良好:

model = Sequential()

# Convolutional layers
# input_shape = (128, 128, 1)
model.add(Conv2D(128, kernel_size=(3,3), activation="relu", input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.4))

model.add(Conv2D(256, kernel_size=(3,3), activation="relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.4))

model.add(Conv2D(512, kernel_size=(3,3), activation="relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.4))

model.add(Conv2D(512, kernel_size=(3,3), activation="relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.4))

model.add(Flatten())

# Fully connected layers
model.add(Dense(512, activation="relu"))
model.add(Dropout(0.4))

model.add(Dense(256, activation="relu"))
model.add(Dropout(0.3))

# Output layer
model.add(Dense(output_class, activation="softmax"))

model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])

我将模型保存为h5格式,并将其加载到新笔记本上,绝望地尝试它是否有效。

导入模块:

import tensorflow as tf
from keras.models import load_model

加载模型:

这正在工作,它打印了预期的消息

model = tf.keras.models.load_model('/kaggle/input/grimace-recognition/keras/grimace v1/1/grimace.h5')
print("loaded successfully")

尝试转换加载的模型:

然后我将模型传递给 tflite 转换器,它会打印第一条消息“转换器已建立”,但随后它会停止并且不会打印其他消息而不显示任何错误,然后我需要执行来自笔记本上的开头。

converter = tf.lite.TFLiteConverter.from_keras_model(model)
print("converter established")
tfmodel = converter.convert()
print("converted successfully")
open("grimace.tflite", "wb").write(tfmodel)

注意:我计划在 flutter 移动应用程序中使用 tflite 模型。

tensorflow keras tensorflow2.0 tensorflow-lite tflite
1个回答
0
投票

同样的问题...我必须在协作中再次训练模型并且它有效

© www.soinside.com 2019 - 2024. All rights reserved.