如何用 Java 直接调用 Python 模型

261 天前
 qinfengge

首先排除 API 的方式 一种是用 python 导出模型然后用 DJL(deep java Library)直接调用,但需要转译 还有一种是命令行调用,还不如 API 呢

大佬们还有没有其它方法能够直接调用 python 导出的模型,类似安卓调模型?

2928 次点击
所在节点    Java
22 条回复
ruanimal
261 天前
PMML
qinfengge
261 天前
@ruanimal 简单看了下,如果模型需要的入参是文件,比如图片应该怎么搞?
ruanimal
261 天前
这个得看你具体的模型框架,不太熟这块
qinfengge
261 天前
@ruanimal #3 好的,感谢😊
huangzongzhuan
261 天前
仅供参考:
1. 相应模型框架的 Java bindings ,将模型直接内嵌到 Java 应用程序中
2. TF-Serving 、triton server 这类推理服务,Java 和 模型之间走 RESTful 或者 gRPC (某些对框架有要求,比如 TFS )
3. ONNX 、PMML 这类
astkaasa
261 天前
mark 一下, 可能有需求
xiaodi666
261 天前
类似于 flink 调 Python 写的算子?
SimonOne
261 天前
@huangzongzhuan #5 你这字咋变色的,也不是代码块啊
David1119
261 天前
pemja ?
pannanxu
261 天前
以前做过这个。用的是 Runtime.getRuntime().exec()。
kopnux
261 天前
用 python 的 web 框架搞 flask django 等
OysterQAQ
261 天前
tf 模型就用 TF-Serving (拥有 batch 能力,图模式执行效率高),pytorch 方案很多,尽量找支持 batch 的,要不就自己用 web 实现一个
zjp
261 天前
用过 PMML ,最后还是选择了 Http 调用
不用考虑兼容性舒服多了,除了接口定义,两端可以独立开发
SmileDup
261 天前
把最基础的功能(比如 llm 的对话)封装成一个 flask 服务器,暴露一个 restapi ,然后就跟调 api 一样
dayeye2006199
261 天前
Onnx 转译。Java 里面调用 onnxruntime 把模型读进来。
但是有些算子是不支持的。

好奇为啥不通过 API 通讯
jingcjie
261 天前
折腾过各种,cpp ,tensort ,java ,kotlin ,你只要模型能生成 onnx ( pytorch 和 tf 都可以直接搞),java 爱怎么用怎么用,但现在很多复杂模型导 onnx 很麻烦,要改模型里的操作,甚至重训。
dcsuibian
261 天前
grpc
k1263
261 天前
老 Java JNI ,新 Java FFI
qinfengge
261 天前
感谢各位大佬,找到了一个 onnx 不错的 demo
https://gitee.com/agricultureiot/yolo-onnx-java
Jwyt
261 天前
用 jni 调

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/967114

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX