Tensorflow Serving部署推荐模型

本文详细介绍了如何使用TensorFlow Serving部署推荐模型,包括模型保存、转换为saved_model格式、Dockerfile配置及docker镜像构建。重点讲解了模型参数的保存、模型转换以及docker容器的创建,以实现模型的线上服务。同时提供了模型接口的定义和测试方法。

Tensorflow Serving部署推荐模型

1、找到当前模型中定义的variables,并在此定义一个saver用于保存模型参数

def saveVariables(self):
    variables_dict = {
   
   }
    variables_dict[self.user_embedding.op.name] = self.user_embedding
    variables_dict[self.item_embedding.op.name] = self.item_embedding

    for v in self.reduce_dimension_layer.variables:
        variables_dict[v.op.name] = v

    self.saver = tf.train.Saver(variables_dict)

在模型的输入和输出的地方,尽量自行定义name,这样在之后的部署的时候会方便很多!

self.item_input = tf.placeholder("int32", [None, 1],name="gat_iteminput") 
self.user_input = tf.placeholder("int32", [None, 1],name="gat_userinput") 
...
self.prediction = tf.sigmoid(tf.reduce_sum(self.predict_vector, 1, keepdims=True),name="gat_predict")

2、在需要保存模型参数的地方调用save方法,一般建议在模型取到最高指标处保存模型

#此处的saver为上面模型中定义的saver
#sess即为session;weights_save_path为自定义的文件路径;global_step表示当前为第几次epoch
model.saver.save(sess, weights_save_path + '/weights', global_step=epoch)

3、最终会保存为如下图所示的文件

在这里插入图片描述

110、111、112、119、127是最近5次模型指标最高的5次记录,可以根据自己需要选择最高的记录,也可以在self.saver = tf.train.Saver(variables_dict)这里指定好保存的次数,例如保留最多两次:self.saver = tf.train.Saver(variables_dict,max_to_keep=2)

此处训练中,我得到的最高指标epoch为127,所以我使用127的weights

在这里插入图片描述

因为tensorflow serving需要saved_model的格式,所以我们需要将ckpt的格式转成savedModel格式,转换的代码如下:

import tensorflow as tf

#两个参数都是文件夹的名称,一个是ckpt文件所在文件夹,一个是之后导出的文件夹
def restore_and_save(input_checkpoint, export_path):
    checkpoint_file = tf.train.latest_checkpoint(input_checkpoint)
    graph = tf.Graph()
    with graph.as_default():
        session_conf = tf.ConfigProto(allow_soft_placement=True, log_device_placement=False)
        sess = tf.Session(config=session_conf)

        with sess.as_default():
            # 载入保存好的meta graph,恢复图中变量,通过SavedModelBuilder保存可部署的模型
            saver = tf.train.import_meta_gr
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值