如何在android studio中为移动应用程序使用CNN Keras模型

2024-04-18 22:30:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我是机器学习新手。我对模型进行了两节课的训练,获得了82%的准确率。我用model.save()保存了这个模型。我在互联网上搜索了如何在android studio中使用这个经过keras培训的移动应用程序模型,但我什么都不懂。谁能告诉我在android studio中使用这个经过培训的模型应该怎么做。这是我使用的CNN模型:

model= Sequential()

model.add(Conv2D(64,(3,3),input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64,(3,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64,(3,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())

model.add(Dense(64))
model.add(Activation('relu'))

model.add(Dropout(0.5))

model.add(Dense(1))
model.add(Activation('sigmoid'))

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

history = model.fit_generator(
    train_generator,
    steps_per_epoch=nb_train_samples//batch_size,
    epochs=epochs,
    validation_data = validation_generator, 
    validation_steps = validation_generator.samples // batch_size,
)

这是我的模型的摘要:

Model: "sequential_6"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_16 (Conv2D)           (None, 148, 148, 64)      1792      
_________________________________________________________________
activation_26 (Activation)   (None, 148, 148, 64)      0         
_________________________________________________________________
max_pooling2d_16 (MaxPooling (None, 74, 74, 64)        0         
_________________________________________________________________
conv2d_17 (Conv2D)           (None, 72, 72, 64)        36928     
_________________________________________________________________
activation_27 (Activation)   (None, 72, 72, 64)        0         
_________________________________________________________________
max_pooling2d_17 (MaxPooling (None, 36, 36, 64)        0         
_________________________________________________________________
conv2d_18 (Conv2D)           (None, 34, 34, 64)        36928     
_________________________________________________________________
activation_28 (Activation)   (None, 34, 34, 64)        0         
_________________________________________________________________
max_pooling2d_18 (MaxPooling (None, 17, 17, 64)        0         
_________________________________________________________________
flatten_6 (Flatten)          (None, 18496)             0         
_________________________________________________________________
dense_11 (Dense)             (None, 64)                1183808   
_________________________________________________________________
activation_29 (Activation)   (None, 64)                0         
_________________________________________________________________
dropout_6 (Dropout)          (None, 64)                0         
_________________________________________________________________
dense_12 (Dense)             (None, 1)                 65        
_________________________________________________________________
activation_30 (Activation)   (None, 1)                 0         
=================================================================
Total params: 1,259,521
Trainable params: 1,259,521
Non-trainable params: 0

Tags: 模型noneaddsizemodelgeneratoractivationdense
1条回答
网友
1楼 · 发布于 2024-04-18 22:30:43

您可以在文档链接herehere中找到示例 保存模型后,运行以下命令

编辑

import tensorflow as tf
# Converting a SavedModel to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()

# Converting a tf.Keras model to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

# Converting ConcreteFunctions to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_concrete_functions([func])
tflite_model = converter.convert()

相关问题 更多 >