003、torchserve 调用LSTM模型预测
前言
总体步骤介绍,执行整个流程,每个步骤可能会出现很多小问题
自己的模型,是用LSTM 模型进行预测,前12个数据预测下一个数据,
参考文章 https://blog.csdn.net/weixin_45492560/article/details/121316540
一、总体步骤
1、保存模型为.pt 或者.pth 格式
import torch
from ... import # 训练模型
model
model.fit()# 转换模型
model.eval()traced_script_module = torch.jit.script(model)# 保存 TorchScript model
traced_script_module.save("xxx.pt")
2、转为.mar 格式
在serve/model-archiver 下输入
torch-model-archiver -f --model-name xxx \ # mar格式的模型名称xxx
--version 1.0 \ # 版本
--serialized-file xxx.pt \ # pt文件
--handler handlers/xxx_handler.py \ # 模型输入前数据预处理,输出结果处理,展示处理等功能,这块很重要
--export-path targets/ # 输出mar 文件的位置 ,一般是serve/model-archiver/model-store 下
3、docker 启动
在serve/model-archiver 下输入
docker run --rm -it -p 8080:8080 -p 8081:8081 --name mar -v $(pwd)/model-store:/home/model-server/model-store -v $(pwd)/examples:/home/model-server/examples pytorch/torchserve:latest
-v 目录映射
4、注册一个模型
curl --location --request POST 'http://localhost:8081/models' \
--header 'Content-Type: application/json' \
--data-raw '{
"url": "xxx.mar",
"batch_size": 64,
"initial_workers": 1
}'
注册后, curl http://127.0.0.1:8081/models ,查询是否注册成功
5、预测数据
curl --location --request POST 'http://localhost:8080/predictions/xxx -T # 要预测的数据
展示预测数据
二、坑指南
保存模型这块基本不会出错。
1、遇到 OSError: [Errno 13] Permission denied:
ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: ‘/home/venv/lib/python3.8/site-packages/threadpoolctl.py’
Check the permissions.
应该是遇到了不能安装的包
解决方法:
1、 加个–requirements-file ,加上依赖 ,参考链接 https://pip.pypa.io/en/stable/user_guide/#requirements-files
2、根据这个包信息,不调用,自己写代码
2、第二步中,handle文件编写。至关重要
2.1 preprocess ,数据预处理
首先数据data 是list格式,需要获取data、body数据信息,我采用的是csv 文件
def preprocess(self, data):# processed = []print("data原数据",data)for row in data:print("row:",row)values_ori = row.get("data") or row.get("body") # 字节数组values_str = values_ori.decode('utf-8') # strvalues_str_split = values_str.split("\r\n") # splitvalues_str_split.pop() # 删除最后一个空字符串values = list(map(float, values_str_split))print("values数据:",values)print("values数据类型",type(values))tensor = super().preprocess(values) # 转为Tensor 类型print("tensor 数据:",tensor)# 归一化处理max_values = torch.max(tensor)min_values = torch.min(tensor)normalized_values = (tensor - min_values) / \(max_values - min_values + EPSILON)# 处理后,数据格式变换,输入到模型中expanded_values = torch.unsqueeze(normalized_values, dim=0).t()print("expanded_values全部数据:", expanded_values)print("expanded_valuesshape:", (np.array(expanded_values)).shape)# processed.append(expanded_values) # 获取数据return expanded_values
2.2 postprocess,预测后的数据处理
def postprocess(self, data):pred = []with torch.no_grad():print("data:",data)print("data type:",type(data))# tensor 转为 numpydata_num = data.numpy()print("data_num:", data_num)print("data_num type:", type(data_num))data_num = data_num * 100pred.append(data_num.tolist())print("pred:",pred)return pred # 转为 list
3、遇到TypeError,多少是在preprocess 阶段,对数据解析出现问题,刚开始编写代码时,可以多打印出来看看,定位问题具体是什么。
003、torchserve 调用LSTM模型预测相关推荐
- 时间序列深度学习:状态 LSTM 模型预测太阳黑子
目录 时间序列深度学习:状态 LSTM 模型预测太阳黑子 教程概览 商业应用 长短期记忆(LSTM)模型 太阳黑子数据集 构建 LSTM 模型预测太阳黑子 1 若干相关包 2 数据 3 探索性数据分析 ...
- baostock证券数据集下使用LSTM模型预测A股走势
baostock证券数据集下使用LSTM模型预测A股走势 作者信息:edencfc 更新日期:2022 年 11 月 10 日 摘要: 本示例将会演示如何使用飞桨完成多变量输入的时序数据预测任务.这个 ...
- bagging和时间序列预测_时间序列的LSTM模型预测——基于Keras
一.问题背景 现实生活中,在一系列时间点上观测数据是司空见惯的活动,在农业.商业.气象军事和医疗等研究领域都包含大量的时间序列数据.时间序列的预测指的是基于序列的历史数据,以及可能对结果产生影 ...
- LSTM模型预测sin函数详解
注解: fun_data()函数生成训练数据和标签,同时生成测试数据和测试标签HIDDEN_SIZE = 128,使用128维的精度来定义LSTM的状态和输出精度,就是LSTM中的h,c lstm_m ...
- python预测股票 keras_使用LSTM模型预测股价基于Keras
本期作者:Derrick Mwiti 本期翻译:HUDPinkPig 未经授权,严禁转载 编者按:本文介绍了如何使用LSTM模型进行时间序列预测.股票市场的数据由于格式规整和非常容易获得,是作为研究的 ...
- LSTM模型预测时间序列(快速上手)
写在前面 LSTM模型的一个常见用途是对长时间序列数据进行学习预测,例如得到了某商品前一年的日销量数据,我们可以用LSTM模型来预测未来一段时间内该商品的销量.但对于不熟悉神经网络或者对没有了解过RN ...
- LSTM模型预测新冠
LSTM是RNN的改进型,传统RNN模型会随着时间区间的增长,对早期的因素的权重越来越低,有可能会损失重要数据.而LSTM模型通过遗忘门.输入门.输出门三个逻辑,来筛选和保留数据. 原理详解可以参考如 ...
- LSTM模型预测时间序列性质的进件量---详细步骤以及例子
此博客适合刚刚入门LSTM的朋友学习,牛逼的朋友请略过,哈哈... github路径: https://github.com/zhouliping3712/LSTM_Times_Series 一.LS ...
- 利用yelp评论与lstm模型预测评分
这篇博客想利用学习到的英文nlp相关的知识,分析来自yelp(美国点评网站)的用户评论信息.主要包括以下一些操作: 自然语言处理相关操作 基于tf-idf的预测模型 基于lstm的预测模型 导入数据 ...
最新文章
- 表单开发(一):获取文本框和密码框数据 用户登录网页
- 【OS】经典调度算法
- jsp输出所有请求头的名称
- 双十一!!作为程序员的你该如何拥有个人服务器和域名呢?
- windows下boost库的基本使用方法
- ubuntu重置root密码
- Redis笔记(六)Redis的消息通知
- 7-9 40059 四则运算 (15 分)
- 函数指针还是c++虚函数_C和C++哪个效率更高?
- ES6学习笔记九(函数的扩展)
- Elas Digital:定义一个Token的最简易方法
- 布朗运动、伊藤引理、BS公式
- 补习班停了,家长“卷向”兴趣班
- 我在 CMU 的八年博士生涯...
- 1.1.1 什么是程序?
- debian系统服务器读不出来,Debian10局域网服务器使用踩坑笔记
- 手绘vs码绘 动态对比
- python鼠标监听_用Python监听鼠标和键盘事件
- pandas强大的Python数据分析工具
- Java对base64编解码总结