目前,深度学习都是用 python 写的,基础模型训练好之后,需要包成服务的形式去提供给客户。目前服务这边用的是 spring boot。但是找了一圈基本上没发现成熟的调用方法,jython 也很久没更新了。请问有什么好的解决方案吗?
1
zhuangzhuang1988 2019-07-30 13:18:46 +08:00
看下 spark 用的啥和 python 交互的?!
|
2
reus 2019-07-30 13:20:01 +08:00
jni 啊,还能怎样
jni -> C -> python C api -> python |
3
kaedea 2019-07-30 13:20:28 +08:00 via Android
命令行调用,args 传参,stdout 返回
|
4
wenzhoou 2019-07-30 13:20:39 +08:00 via Android
http 吧
|
5
oblivion 2019-07-30 13:27:20 +08:00
|
6
jingxyy 2019-07-30 13:28:32 +08:00
走 rpc 吧
|
7
lihongjie0209 2019-07-30 13:32:04 +08:00
rpc http mq 选一个
|
8
shidenggui 2019-07-30 13:33:06 +08:00
Python 调用 Java 有个 jpype 挺方便的,反过来就不清楚了。rpc 或者 http 应该是比较方便的吧。
|
9
nnnToTnnn 2019-07-30 13:33:11 +08:00
rpc
|
12
ioiogoo 2019-07-30 13:59:08 +08:00
如果只是用 Python 训练模型,Java 调用模型预测的话,可以考虑直接用 Java 加载模型完成预测过程,也就是个解析模型,然后根据模型参数运算的过程。
如果是想用 Java 调用 TensorFlow、Keras 等训练之后的模型,可以参考文章: https://www.ioiogoo.cn/2018/04/03/java%e8%b0%83%e7%94%a8keras%e3%80%81tensorflow%e6%a8%a1%e5%9e%8b/ |
13
wzwwzw 2019-07-30 14:05:45 +08:00
走 RPC 或者 HTTP 吧,命令性调用也行。
|
14
STRRL 2019-07-30 14:17:00 +08:00 via Android
冒昧问一下。。lz 是平安银行的吗
|
15
guoyuchuan 2019-07-30 14:19:12 +08:00
HTTP 不行吗
|
17
roricon 2019-07-30 14:42:04 +08:00 1
最简单的就是学 Storm 的方式,fork 出一个进程,然后用 stdin stdout 交互。
可行,我们生产上跑的模型就是用这种方式…… |
18
qq976739120 2019-07-30 14:44:20 +08:00
java 调用命令行,然后命令行里跑 python 脚本,这是最方便的
|
19
janxin 2019-07-30 14:46:00 +08:00 via iPad
rpc/http ?
|
20
flyingghost 2019-07-30 15:00:40 +08:00
两个异构子系统没必要直接调来调去啊。强扭的瓜不甜。
作为两个可执行程序,命令行就是个交互接口。 作为两个进程,有进程间通讯机制。 作为两个服务,有 http/rpc 接口或者 mq 做同步 /异步调用。 |
21
Raymon111111 2019-07-30 15:16:21 +08:00
http 吧简单
rpc 也可以, grpc 了解一下 |
22
wwqgtxx 2019-07-30 16:22:08 +08:00 via iPhone
tcp 或者 unix socket 呗,又简单又可靠
|
23
lkan 2019-07-30 16:35:54 +08:00 via iPhone
你们说的 http 是套接字 socket 吗
|
24
ffeii 2019-07-30 17:27:11 +08:00
今天了解到这个: https://www.graalvm.org/
|
25
25OHd2qObJmJ6P10 2023-03-23 11:34:37 +08:00
@ffeii 不实用啊,实例化一个 Context 就得一秒多,并发下扛不住
|