【深度学习模型部署】使用TensorFlow Serving + Tornado部署深度学习模型

前言

学术界、科研一般到模型训练完成就结束了,但工业界应用还需要将模型部署到服务器上,TensorFlow Serving提供了一种优雅的部署方案。注:本人是用的TensorFlow2 (主要是Keras)进行的模型训练,有关Pytorch的部署这里不适用。

准备模型

一般在训练时往往仅保存权重参数,保存的模型形式大多为checkpoint文件形式(如下图所示),模型部署时则需要完整的模型(包含模型结构),所以可以在确定最优参数后,直接load模型参数,然后再将完整的模型进行保存,示例代码见下示代码段。

# 模型定义,这里为使用Keras自定义模型
model = seq2seq_model2(vocab_size=VOCAB_SIZE,
                          max_seq_len=padding_len,
                          embedding_dim=embedding_dim,
                          embedding_matrix=emb_matrix,
                          lstm1_hidden_dim=128,
                          lstm2_hidden_dim=64,
                          classes_num=class_num)
# 保存模型时可以将complie方式一并保存
model.compile(optimizer=Adam(learning_rate), loss='binary_crossentropy', metrics=accuracy_metric])

if mode == 'load_then_save_total_model':  # 加载最优模型参数并保存完整模型
    model_path = './checkpoints/seq2seq/best-199'  # 保存模型参数的路径
    save_path = os.path.join(model_path, 'best-whole')  # 完整模型的保存位置

    print('Loading weights from saved model.................')
    model.load_weights(model_path)
    print('Loading finish\n Saving Whole-model...')
    
    # 保存完整模型,注意tf1.x版本默认保存格式为h5文件,tf2.x版本默认保存格式为tf格式文件,此处要保存为tf格式文件,tf1.x版本要指定save_format='tf'
    model.save(save_path)  # 保存完整模型
    print('Whole-model has been saved to {}'.format(save_path)

完整的模型保存好了就可以开始部署啦。

TensorFlow Serving部署模型

本文使用docker来使用TensorFlow Serving,这是最简单、省心的使用方式,也是官方最推荐的方式(具体可参考官方Guide:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值