AI开发平台MODELARTS-在Notebook中通过Dockerfile从0制作自定义镜像用于推理:模型包文件样例
模型包文件样例
模型包文件model.zip中需要用户自己准备模型文件,此处仅是举例示意说明,以一个手写数字识别模型为例。
Model目录下必须要包含推理脚本文件customize_service.py,目的是为开发者提供模型预处理和后处理的逻辑。
推理脚本customize_service.py的具体写法要求可以参考模型推理代码编写说明。
本案例中提供的customize_service.py文件具体内容如下:
import logging import threading import numpy as np import tensorflow as tf from PIL import Image from model_service.tfserving_model_service import TfServingBaseService class mnist_service(TfServingBaseService): def __init__(self, model_name, model_path): self.model_name = model_name self.model_path = model_path self.model = None self.predict = None # 非阻塞方式加载saved_model模型,防止阻塞超时 thread = threading.Thread(target=self.load_model) thread.start() def load_model(self): # load saved_model 格式的模型 self.model = tf.saved_model.load(self.model_path) signature_defs = self.model.signatures.keys() signature = [] # only one signature allowed for signature_def in signature_defs: signature.append(signature_def) if len(signature) == 1: model_signature = signature[0] else: logging.warning("signatures more than one, use serving_default signature from %s", signature) model_signature = tf.saved_model.DEFAULT_SERVING_SIGNATURE_DEF_KEY self.predict = self.model.signatures[model_signature] def _preprocess(self, data): images = [] for k, v in data.items(): for file_name, file_content in v.items(): image1 = Image.open(file_content) image1 = np.array(image1, dtype=np.float32) image1.resize((28, 28, 1)) images.append(image1) images = tf.convert_to_tensor(images, dtype=tf.dtypes.float32) preprocessed_data = images return preprocessed_data def _inference(self, data): return self.predict(data) def _postprocess(self, data): return { "result": int(data["output"].numpy()[0].argmax()) }
- ModelArts自定义镜像_自定义镜像简介_如何使用自定义镜像
- ModelArts推理部署_创建AI应用_自定义镜像规范-华为云
- ModelArts推理部署_模型_AI应用来源-华为云
- ModelArts模型训练_创建训练作业_如何创建训练作业
- 华为云ModelArts_ModelArts开发_AI全流程开发
- ModelArts AI Gallery_市场_资产集市
- ModelArts计费说明_计费简介_ModelArts怎么计费
- ModelArts分布式训练_分布式训练介绍_分布式调测
- ModelArts推理部署_OBS导入_模型包规范-华为云
- ModelArts开发环境_开发环境简介_开发环境怎么使用