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

时间:2020-08-27 21:29:11

标签: tensorflow keras tensorflow-serving google-cloud-ml gcp-ai-platform-notebook

我正在使用Tensorflow 2预训练模型(vgg16)对图像进行分类。我已经在本地计算机上进行了培训,现在我想将其部署到GCloud AI Platform。该模型的输入期望已解码和调整大小的图像。但是,当我尝试调用预测时,它返回的错误是我超出了大小限制。查看文档后,我发现此方法效率很低,因此必须使用base64编码来表示图像。问题在于该模型不期望编码的图像,并且我知道我需要在导出模型之前对其进行修改。但是,我看到的所有与此相关的问题(1234)都来自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 个答案:

答案 0 :(得分:0)

single online prediction request所包含的数据不得超过1.5 MB。使用gcloud工具创建的请求每个文件最多只能处理100个实例。我们之前已经看过这一点,我将从以下内容开始:

  1. 您的请求的大小和响应的大小。
  2. 您尝试过custom prediction routines吗?
  3. 您是否尝试过使用uint8强制转换输出?