1

我在 2017 年关注了“诗人的 Tensorflow”,并重新训练了我自己的图像集并创建了“retrained_graph.pb”和“retrained_labels.txt”
今天我需要在 Tensorflow Serving 上运行这个模型。有两种选择可以完成此操作:

  1. 升级旧模型以将其保存为“saved_model”格式并在 Tensorflow Serving 上使用它——我发现了一些 SO 帖子来完成它(这个那个)。

  2. 使用最新的 tensorflow Hub 和 Keras ( https://www.tensorflow.org/tutorials/images/hub_with_keras )

我正在寻找其中最好的选择,或者一个新的。

4

1 回答 1

0

在我看来,使用Tensorflow Hub或使用Pre-Trained Models内部tf.keras.applications更可取,因为在任何一种情况下,保存模型都不需要太多代码更改,以使其与 Tensorflow Serving 兼容。

MobileNet内部存在的用于重用预训练模型的代码tf.keras.applications如下所示:

#Import MobileNet V2 with pre-trained weights AND exclude fully connected layers
IMG_SIZE = 224

from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
from tensorflow.keras import Model


IMG_SHAPE = (IMG_SIZE, IMG_SIZE, 3)

# Create the base model from the pre-trained model MobileNet V2
base_model = tf.keras.applications.MobileNetV2(input_shape=IMG_SHAPE,
                                               include_top=False,
                                               weights='imagenet')

# Add Global Average Pooling Layer
x = base_model.output
x = GlobalAveragePooling2D()(x)

# Add a Output Layer
my_mobilenetv2_output = Dense(5, activation='softmax')(x)

# Combine whole Neural Network
my_mobilenetv2_model = Model(inputs=base_model.input, outputs=my_mobilenetv2_output)

您可以使用下面给出的代码保存模型:

version = 1
MODEL_DIR = 'Image_Classification_Model'
export_path = os.path.join(MODEL_DIR, str(version))

tf.keras.models.save_model(model = model, filepath = export_path)
于 2020-04-22T08:33:55.250 回答