我在2017年遵循“诗人的Tensorflow”并重新训练了自己的图像集,并创建了“ retrained_graph.pb”和“ retrained_labels.txt”
今天,我需要在Tensorflow Serving上运行此模型。
有两种方法可以完成此任务:
升级旧模型以将其保存为“ saved_model”格式,并在Tensorflow Serving上使用它-我发现一些SO帖子可以完成它(this或 that。
与Keras(https://www.tensorflow.org/tutorials/images/hub_with_keras)一起使用最新的tensorflow Hub
我正在寻找其中的最佳选择,或者是一个新的选择。
答案 0 :(得分: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)