gpt4 book ai didi

tensorflow - 以可提供的格式转换 TensorFlow 模型

转载 作者:行者123 更新时间:2023-12-03 12:36:33 24 4
gpt4 key购买 nike

我正在关注 Tensorflow 服务文档,将我训练的模型转换为可以在 Docker 容器中提供的格式。由于我是 Tensorflow 的新手,我正在努力将这个训练有素的模型转换为适合服务的形式。

该模型已经过训练,我有检查点文件和 .meta 文件。因此,我需要从上述两个文件中获取 .pb 文件和变量文件夹。任何人都可以向我建议一种如何为模型提供服务的方法吗?

.
|-- tensorflow model
| -- 1
| |-- saved_model.pb
| -- variables
| |-- variables.data-00000-of-00001
| -- variables.index

最佳答案

有多种方法可以做到这一点,更复杂的模型可能需要其他方法。
我目前正在使用描述的方法 here ,这对 tf.keras.models.Model 和 tf.keras.Sequential 模型非常有用(不确定 tensorflow 子类化?)。

下面是一个最小的工作示例,包括使用 python 创建模型(您似乎已经通过文件夹结构完成了此操作,可以忽略第一步)

import tensorflow as tf
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model
import tensorflow.keras.backend as K

inputs = Input(shape=(2,))
x = Dense(128, activation='relu')(inputs)
x = Dense(32, activation='relu')(x)
outputs = Dense(1)(x)

model = Model(inputs=inputs, outputs=outputs)
model.compile(optimizer='adam', loss='mse')

# loading existing weights, model architectural must be the same as the existing model
#model.load_weights(".//MODEL_WEIGHT_PATH//WEIGHT.h5")

export_path = 'SAVE_PATH//tensorflow_model//1'

with K.get_session() as sess:
tf.saved_model.simple_save(
sess,
export_path,
inputs={'inputs': model.input}, # for single input
#inputs={t.name[:-5]: t for t in model.input}, # for multiple inputs
outputs={'outputs': model.output})

我建议您使用文件夹名称“tensorflow_model”而不是“tensorflow model”,以避免可能出现的空格问题。

然后我们可以通过以下方式在终端中构建 docker 镜像(对于 Windows,使用 ^ 而不是\用于线路制动,并在路径中使用//C/而不是 C:\):
docker run -p 8501:8501 --name tfserving_test \
--mount type=bind,source="SAVE_PATH/tensorflow_model",target=/models/tensorflow_model \
-e MODEL_NAME=tensorflow_model -t tensorflow/serving

现在容器应该启动并运行,我们可以用 python 测试服务

import requests
import json
#import numpy as np

payload = {
"instances": [{'inputs': [1.,1.]}]
}

r = requests.post('http://localhost:8501/v1/models/tensorflow_model:predict', json=payload)
print(json.loads(r.content))
# {'predictions': [[0.121025]]}

容器正在使用我们的模型,为输入 [1., 1.] 提供预测值 0.121025

关于tensorflow - 以可提供的格式转换 TensorFlow 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56641890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com