• Win11 + docker + tensorflow serving 完成模型部署


    花了半天的时间调通了在Win11 系统下,如何利用docker + tensorflow serving 实现模型部署。记录一下。 

    1. 安装docker 

    桌面版网址:Docker Desktop - Docker 

    安装过程中可能会出现一些问题,我这里参考了🎉 Docker 简介和安装 - Docker 快速入门

    2. 利用Docker 安装 tensorflow serving 

    docker pull tensorflow/serving

    3. 这里是准备模型有两种方法 

    先说第一种方法 

    (1)直接官网拉取 tensorflow serving 给的例子 ,代码如下 

    1. mkdir -p \tmp\tfserving
    2. cd /tmp/tfserving
    3. git clone https://github.com/tensorflow/serving
    4. 第一行 这里建立一个 tem的文件 下面的子文件夹是 tfserving , 注意这里我用的windows 系统 ,所以是斜杠 \ 。
    5. 第二行 找到建立的文件路径
    6. 第三行 下载官方的 tensorflow/serving 注意这里面如果没有 git 工具 可以自己下载一个 并且设置好环境变量 网上资料很多 我这里就不写了

    (2) 

    docker run -p 8501:8501 --mount type=bind,source=C:/tmp/tfserving/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu,target=/models/half_plus_two -e MODEL_NAME=half_plus_two -t tensorflow/serving '&'

    这步输入后得到了 

    这时候再打开一个cmd 命令窗口,输入 下面的代码  

    (3)

    curl -XPOST http://localhost:8501/v1/models/half_plus_two:predict -d "{\"instances\":[1.0, 2.0, 5.0]}"

    结果为 : 

     

    这是官方的方法。

    第二种 自己建立了一个模型 。

    (1)自己训练一个简单的模型 

    1. import pathlib
    2. import tensorflow as tf
    3. from tensorflow import keras
    4. import numpy as np
    5. import matplotlib.pyplot as plt
    6. xn = np.array([-1, 0, 1, 2, 3, 4, 5, 6])
    7. yn = np.array([-3, -1, 1, 3, 5, 7, 9, 11])
    8. # single neuron
    9. models = tf.keras.models.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])])
    10. models.compile(optimizer='sgd', loss='mean_squared_error')
    11. models.fit(xn, yn, epochs=500)
    12. export_dir = 'DL_Model_Save'
    13. tf.saved_model.save(models, export_dir) # 存放了一个原始训练的 DL 模型

     这时候DL_Model_Save 文件下面是这样的 

    但是这里面没有版本信息, 所以需要改一下 在  DL_Model_Save 文件下面 建立一个文件下 叫做 

    我 assets variables saved_model.pb 放到0001文件夹下面 

    这里面之所以这样做是因为一定要一个类似版本信息,否则会报错 :

    Did you forget to name your leaf directory as a number (eg. '/1/')?

     (2) 剩下的基本和方法1 一样但是需要改一些路径 

    docker run -p 8501:8501 --mount type=bind,source=C:/tmp/tfserving/serving/tensorflow_serving/servables/tensorflow/testdata/DL_Model_Save,target=/models/DL_Model_Save -e MODEL_NAME=DL_Model_Save -t tensorflow/serving '&'

    红色地方是与上面第一种方法不同的地方,可以看到就是改了一些路径。 

    (3)再打开一个cmd 文件 输入 

    curl -XPOST http://localhost:8501/v1/models/DL_Model_Save:predict -d "{\"instances\":[[1],[2]]}"

    注意这里面json 数据的格式稍微有点不同 因为是训练模型时候不太一样。 

    最终得到结果 : 

     

     

     

  • 相关阅读:
    计算机网络知识点(七)
    CentOS 7 安装教程(基于虚拟机安装)
    【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数
    IDEA中安装Docker插件实现远程访问Docker
    Java练习题-获取数组元素最大值
    [附源码]java毕业设计养老护理综合服务系统
    Go 语言 设计模式-生成器模式
    【51单片机】6-点亮第一个LED灯
    应用软件安全编程--06预防 XML 外部实体攻击
    Django全家桶
  • 原文地址:https://blog.csdn.net/chwei20002005/article/details/126750835