Spring Boot中集成DJL运行Python PyTorch模型:MNIST实战

Java Spring Boot 使用DJL 部署python训练的PyTorch模型(MNIST)
  • Python 训练Pytorch模型
  • Java Spring Boot使用DJL调用模型
    • pom.xml
      • Translator
      • Criteria
      • NDArray
        • 创建NDArray(Tensor)
          • 变更数据类型
          • 运算
          • 切片
          • 赋值
          • 翻转
      • Predictor
      • MNIST实战
  • 环境

Java 使用 DJL 训练模型:https://blog.csdn.net/xundh/category_11361043.html?spm=1001.2014.3001.5515

DJL官网:https://docs.djl.ai/index.html

Python 训练Pytorch模型

本项目采用
PyTorch==1.10.0
版本训练。

pytorch                   1.10.0          py3.9_cuda11.3_cudnn8_0    pytorch
pytorch-mutex             1.0                        cuda    pytorch
requests                  2.28.1                   pypi_0    pypi
scipy                     1.9.3                    pypi_0    pypi
setuptools                65.6.3             pyhd8ed1ab_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
six                       1.16.0                   pypi_0    pypi
tbb                       2021.7.0             h91493d7_1    conda-forge
tk                        8.6.12               h8ffe710_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
torchaudio                0.10.0               py39_cu113    pytorch
torchsummary              1.5.1                    pypi_0    pypi
torchvision               0.11.0               py39_cu113    pytorch

修改模型保存方法:

model.eval()  # 模型验证模式
example = torch.rand(1, 1, 28, 28).to(device)  # 模型输入层
traced_script_module = torch.jit.trace(model, example)  # trace
traced_script_module.save('models/{}_model.pt'.format(val_ac))  # 保存模型

Java Spring Boot使用DJL调用模型

pom.xml

<!-- djl 依赖 -->
<dependency>
<groupId>ai.djl.pytorch</groupId>
<artifactId>pytorch-engine</artifactId>
<version>0.19.0</version>
<scope>runtime</scope>
</dependency><dependency>
<groupId>ai.djl.pytorch</groupId>
<artifactId>pytorch-jni</artifactId>
<version>1.12.1-0.19.0</version>
<scope>runtime</scope>
</dependency><dependency>
<groupId>ai.djl</groupId>
<artifactId>api</artifactId>
<version>0.19.0</version>
</dependency><dependency>
<groupId>ai.djl.opencv</groupId>
<artifactId>opencv</artifactId>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/42305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法力扣刷题总结篇 ——【四】

前言 栈和队列篇题目学习结束。 总结&#xff1a; 一、结构基础 stack类 &#xff08;1&#xff09;使用栈&#xff08;后入先出&#xff09;的结构时&#xff0c;用它。 &#xff08;2&#xff09;容器适配器&#xff08;container adaptor&#xff09;。本身不算容器&…

550kg级大载重长航时无人机直升机技术详解

550kg级大载重长航时无人机直升机&#xff0c;作为一种高性能的无人机系统&#xff0c;具备了多项先进的技术特点&#xff0c;以满足高海拔、高寒等复杂环境下的应用需求。这些无人机直升机通常具备高载重、长航时、强适应性、高可靠性和良好的任务拓展性。 设备由无人直升机平…

【面试八股文】java基础知识

引言 本文是java面试时的一些常见知识点总结归纳和一些拓展&#xff0c;笔者在学习这些内容时&#xff0c;特地整理记录下来&#xff0c;以供大家学习共勉。 一、数据类型 1.1 为什么要设计封装类&#xff0c;Integer和int区别是什么&#xff1f; 使用封装类的目的 对象化:…

数据结构——单链表专题

前言 本篇我们继续来介绍数据结构的知识——链表&#xff0c;这与顺序表是一个类别的知识&#xff0c;同样也非常重要&#xff0c;所以大家需要掌握好链表的内容&#xff0c;这对我们后面数据结构的学习也很重要&#xff0c;如果你对本篇的内容感兴趣&#xff0c;希望大佬可以…

使用RabbitMQ实现可靠的消息传递机制

使用RabbitMQ实现可靠的消息传递机制 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. RabbitMQ简介 RabbitMQ是一个开源的消息代理软件&#xff0c;实现了高级消息队列协议&#xff08;AMQP&…

四大常见的排序算法JAVA

1. 冒泡排序 相邻的元素两两比较&#xff0c;大的放右边&#xff0c;小的放左边 第一轮比较完毕之后&#xff0c;最大值就已经确定&#xff0c;第二轮可以少循环一次&#xff0c;后面以此类推 如果数组中有n个数据&#xff0c;总共我们只要执行n-1轮的代码就可以 package Bu…

mq虚拟主机实现数据隔离

如果一个mq系统需要被多个实际业务系统共用&#xff0c;那么我们需要对于不同的业务系统分设不同的虚拟机进行数据隔离 本文将主要演示如何使用mq的web端进行创建不同虚拟机完成数据隔离 首先我们需要针对新的业务系统创建一个专属的用户&#xff0c;并赋予admin权限&#xf…

【matlab】状态空间模型与传递函数模型的建立与转换

目录 SISO系统 MIMO系统 状态空间模型 状态空间模型到传递函数模型的转换 传递函数模型到状态空间模型的转换 (1) 转换函数ss() (2) 规范形转换函数canon() (3) 常微分方程(传递函数)转换为状态空间模型函数dif2ss() 状态空间模型的变换 特征值、特征向量与广义特征向量的计算…

everything高级搜索-cnblog

everything高级搜索用法 基础4选项验证 总结搜索方式 高级搜索搜指定路径文件名: 文件名 路径不含文件名: &#xff01;文件名包含单词 路径包含指定内容: 路径 content:内容 大小写 区分大小写搜索搜指定路径文件名: case:文件名 路径全字匹配 全字搜指定路径文件名: wholewo…

力扣刷题--908. 最小差值 I【简单】

题目描述 给你一个整数数组 nums&#xff0c;和一个整数 k 。 在一个操作中&#xff0c;您可以选择 0 < i < nums.length 的任何索引 i 。将 nums[i] 改为 nums[i] x &#xff0c;其中 x 是一个范围为 [-k, k] 的整数。对于每个索引 i &#xff0c;最多 只能 应用 一次…

中霖教育:二级建造师未注册还需要继续教育吗?

关键词&#xff1a;中霖教育怎么样&#xff0c;中霖教育口碑 如果通过了二级建造师考试但是没有注册&#xff0c;还用继续教育吗? 1. 未注册的二级建造师 二级建造师在其证书获取后三年内没有进行注册时&#xff0c;在申请初始注册之前必须完成规定的本专业继续教育课程。 …

ubuntu运行qq音乐闪退

ubuntu运行qq音乐闪退 修改/usr/share/applications中的qqmusic.desktop&#xff0c;在Exec后加上 --no-sandbox,如下图所示&#xff1a; 该文件有可能是只读&#xff0c;权限不够的话用sudo vim qqmusic.desktop

java项目的一些功能(完善登录功能、注册接口参数校验、完善分页查询、完善日期格式、更新文章分类和添加文章分类的分组校验、自定义校验、文件上传 )

目录 完善登录功能 注册接口参数校验 完善分页查询 完善日期格式 更新文章分类和添加文章分类的分组校验 ​编辑 自定义校验 文件上传 完善登录功能 对前端传过来的明文密码进行md5加密处理 password DigestUtils.md5DigestAsHex(password.getBytes()); 这样既可 注…

Python数据分析案例50——基于EEMD-LSTM的石油价格预测

案例背景 很久没更新时间序列预测有关的东西了。 之前写了很多CNN-LSTM&#xff0c;GRU-attention&#xff0c;这种神经网络之内的不同模型的缝合&#xff0c;现在写一个模态分解算法和神经网络的缝合。 虽然eemd-lstm已经在学术界被做烂了&#xff0c;但是还是很多新手小白或…

驾校管理系统的全面革新与升级

智慧驾校系统是一款专为现代驾校量身定制的综合性管理平台,它深度融合了云计算、大数据、物联网及人工智能等前沿技术,旨在为驾校打造一个高效、智能、便捷的运营生态系统。该系统通过数字化、信息化的手段,彻底革新了传统驾校的管理模式,不仅极大地提升了驾校的运营效率,…

Open3D 点云CPD算法配准(粗配准)

目录 一、概述 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2配准后点云 一、概述 在Open3D中&#xff0c;CPD&#xff08;Coherent Point Drift&#xff0c;一致性点漂移&#xff09;算法是一种经典的点云配准方法&#xff0c;适用于无序点云的非…

ECMAScript 6 新特性上篇

一、什么是ECMAScript ECMAScript(简写为ES)是一种基于标准化的脚本语言,用于在Web浏览器中编写交互式和动态的网页。它是由Ecma国际组织(以前称为欧洲计算机制造商协会)定义和标准化的。ECMAScript定义了语法、类型、控制结构、内置对象等方面的规范,使得不同的浏览器和…

【漏洞复现】宏景eHR LoadOtherTreeServlet SQL注入漏洞

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合&#xff0c;满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR LoadOtherTreeServlet接口处存在SQL注入漏洞&#xff0c;未经身份验证的远程攻击者除了可以利用 SQL 注入漏…

C++期末综合练习

id:159 A. 音像制品&#xff08;类与对象&#xff09; 题目描述 某商店出租音像制品&#xff0c;制品信息包括&#xff1a;类型、名称、租金单价、状态。 其中类型用单个数字表示&#xff0c;对应关系为&#xff1a;1-黑胶片&#xff0c;2-CD&#xff0c;3-VCD&#xff0c;4-…

孩子很内向,是不是自闭症?

作为星启帆寄宿制自闭症学校的老师&#xff0c;我深知内向与自闭症之间存在着本质的区别&#xff0c;尽管两者在社交表现上可能有一定的相似性。 首先&#xff0c;内向是一种性格特质&#xff0c;表现为个体在社交场合中相对安静、羞涩&#xff0c;更喜欢独处或与小范围的人交往…