我正在使用Tensorflow 2预训练模型(vgg16)对图像进行分类。我已经在本地计算机上进行了培训,现在我想将其部署到GCloud AI Platform。该模型的输入期望已解码和调整大小的图像。但是,当我尝试调用预测时,它返回的错误是我超出了大小限制。查看文档后,我发现此方法效率很低,因此必须使用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)
答案 0 :(得分:0)
single online prediction request所包含的数据不得超过1.5 MB。使用gcloud工具创建的请求每个文件最多只能处理100个实例。我们之前已经看过这一点,我将从以下内容开始: