前言

总体步骤介绍,执行整个流程,每个步骤可能会出现很多小问题

自己的模型,是用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模型预测相关推荐

  1. 时间序列深度学习:状态 LSTM 模型预测太阳黑子

    目录 时间序列深度学习:状态 LSTM 模型预测太阳黑子 教程概览 商业应用 长短期记忆(LSTM)模型 太阳黑子数据集 构建 LSTM 模型预测太阳黑子 1 若干相关包 2 数据 3 探索性数据分析 ...

  2. baostock证券数据集下使用LSTM模型预测A股走势

    baostock证券数据集下使用LSTM模型预测A股走势 作者信息:edencfc 更新日期:2022 年 11 月 10 日 摘要: 本示例将会演示如何使用飞桨完成多变量输入的时序数据预测任务.这个 ...

  3. bagging和时间序列预测_时间序列的LSTM模型预测——基于Keras

    一.问题背景     现实生活中,在一系列时间点上观测数据是司空见惯的活动,在农业.商业.气象军事和医疗等研究领域都包含大量的时间序列数据.时间序列的预测指的是基于序列的历史数据,以及可能对结果产生影 ...

  4. LSTM模型预测sin函数详解

    注解: fun_data()函数生成训练数据和标签,同时生成测试数据和测试标签HIDDEN_SIZE = 128,使用128维的精度来定义LSTM的状态和输出精度,就是LSTM中的h,c lstm_m ...

  5. python预测股票 keras_使用LSTM模型预测股价基于Keras

    本期作者:Derrick Mwiti 本期翻译:HUDPinkPig 未经授权,严禁转载 编者按:本文介绍了如何使用LSTM模型进行时间序列预测.股票市场的数据由于格式规整和非常容易获得,是作为研究的 ...

  6. LSTM模型预测时间序列(快速上手)

    写在前面 LSTM模型的一个常见用途是对长时间序列数据进行学习预测,例如得到了某商品前一年的日销量数据,我们可以用LSTM模型来预测未来一段时间内该商品的销量.但对于不熟悉神经网络或者对没有了解过RN ...

  7. LSTM模型预测新冠

    LSTM是RNN的改进型,传统RNN模型会随着时间区间的增长,对早期的因素的权重越来越低,有可能会损失重要数据.而LSTM模型通过遗忘门.输入门.输出门三个逻辑,来筛选和保留数据. 原理详解可以参考如 ...

  8. LSTM模型预测时间序列性质的进件量---详细步骤以及例子

    此博客适合刚刚入门LSTM的朋友学习,牛逼的朋友请略过,哈哈... github路径: https://github.com/zhouliping3712/LSTM_Times_Series 一.LS ...

  9. 利用yelp评论与lstm模型预测评分

    这篇博客想利用学习到的英文nlp相关的知识,分析来自yelp(美国点评网站)的用户评论信息.主要包括以下一些操作: 自然语言处理相关操作 基于tf-idf的预测模型 基于lstm的预测模型 导入数据 ...

最新文章

  1. 表单开发(一):获取文本框和密码框数据 用户登录网页
  2. 【OS】经典调度算法
  3. jsp输出所有请求头的名称
  4. 双十一!!作为程序员的你该如何拥有个人服务器和域名呢?
  5. windows下boost库的基本使用方法
  6. ubuntu重置root密码
  7. Redis笔记(六)Redis的消息通知
  8. 7-9 40059 四则运算 (15 分)
  9. 函数指针还是c++虚函数_C和C++哪个效率更高?
  10. ES6学习笔记九(函数的扩展)
  11. Elas Digital:定义一个Token的最简易方法
  12. 布朗运动、伊藤引理、BS公式
  13. 补习班停了,家长“卷向”兴趣班
  14. 我在 CMU 的八年博士生涯...
  15. 1.1.1 什么是程序?
  16. debian系统服务器读不出来,Debian10局域网服务器使用踩坑笔记
  17. 手绘vs码绘 动态对比
  18. python鼠标监听_用Python监听鼠标和键盘事件
  19. pandas强大的Python数据分析工具
  20. Java对base64编解码总结

热门文章

  1. 软件管理----安装软件、rpm、 yum、源码安装 卸载软件
  2. 专访平安科技CTO方国伟:云计算十年,最需要突破的不仅是技术
  3. windows10 自定义回收站图标
  4. python打印杨辉三角,直角形和正三角形的杨辉三角
  5. Vehicle Spy3软件常用功能之实时监控总线报文
  6. SpringBoot实现数据加密传输
  7. 新疆2016年弃风弃光比例或将达50%左右
  8. 九大独特的绿色数据中心
  9. GetByteArrayElements和GetByteArrayRegion的使用示例
  10. [linux-007] 国内的一些出版社laltex book模板汇集