如何准备Tensorflow模型以部署在AI平台中



我使用Tensorflow 2预训练模型(vgg16(对图像进行分类。我已经在我的本地机器上进行了培训,现在我想部署它GCloud AI平台。该模型的输入期望一个已经解码并调整大小的图像。然而,当我尝试调用预测时,它会返回一个错误,即我超出了大小限制。在查看了文档后,我发现这种方法效率很低,因此我必须使用base64编码来表示图像。问题是模型不需要编码的图像,我知道在导出之前我需要修改模型。然而,我看到的所有与此相关的问题(1,2,3,4(都来自TF版本1,使用了TF 2中不推荐使用的占位符。

有人能帮我吗?

这是我用于迁移学习的代码:

base_model = VGG16(input_shape=(IMG_SIZE, IMG_SIZE, 3), include_top=False, weights='imagenet')
inputs = tf.keras.Input(shape=IMG_SIZE + (3,))
x = base_model(inputs, training=False)
x = layers.GlobalAveragePooling2D()(x)
x = layers.Dropout(0.2)(x)
x = layers.Dense(128, activation="relu")(x)
x = layers.Dropout(0.2)(x)
x = layers.Dense(1, activation="sigmoid")(x)
model = Model(inputs, x)
model.compile(loss='binary_crossentropy',
optimizer=Adam(lr=LEARN_RATE),
metrics=metrics)
hist_log = model.fit(
train_generator,
steps_per_epoch=steps_train,
epochs=EPOCHS,
validation_data=valid_generator,
validation_steps=steps_val,
verbose=1,
callbacks=callbacks)
model.save(export_path)

单个在线预测请求包含的数据不得超过1.5 MB。使用gcloud工具创建的请求每个文件最多可以处理100个实例。我们以前见过这种情况,我会从以下内容开始:

  1. 您的请求大小和响应大小是多少
  2. 你试过自定义预测程序吗
  3. 你试过用uint8铸造输出吗

相关内容

最新更新