• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Kontinue
V2EX  ›  程序员

请问 Java 调用 Python 有什么成熟的方案吗

  •  1
     
  •   Kontinue · Jul 30, 2019 · 6206 views
    This topic created in 2653 days ago, the information mentioned may be changed or developed.

    目前,深度学习都是用 python 写的,基础模型训练好之后,需要包成服务的形式去提供给客户。目前服务这边用的是 spring boot。但是找了一圈基本上没发现成熟的调用方法,jython 也很久没更新了。请问有什么好的解决方案吗?

    25 replies  •  2023-03-23 11:34:37 +08:00
    zhuangzhuang1988
    zhuangzhuang1988
    Jul 30, 2019
    1
    看下 spark 用的啥和 python 交互的?!
    reus
    reus
    Jul 30, 2019
    2
    jni 啊,还能怎样

    jni -> C -> python C api -> python
    kaedea
    kaedea
    Jul 30, 2019 via Android
    3
    命令行调用,args 传参,stdout 返回
    wenzhoou
    wenzhoou
    Jul 30, 2019 via Android
    4
    http 吧
    oblivion
    oblivion
    Jul 30, 2019
    5
    https://github.com/keijack/python-eureka-client

    我司目前是做成微服务,注册到 Eureka,Spring Boot 这边直接 Feign 调用的
    jingxyy
    jingxyy
    Jul 30, 2019
    6
    走 rpc 吧
    lihongjie0209
    lihongjie0209
    Jul 30, 2019
    7
    rpc http mq 选一个
    shidenggui
    shidenggui
    Jul 30, 2019
    8
    Python 调用 Java 有个 jpype 挺方便的,反过来就不清楚了。rpc 或者 http 应该是比较方便的吧。
    nnnToTnnn
    nnnToTnnn
    Jul 30, 2019
    9
    rpc
    Kontinue
    Kontinue
    OP
    Jul 30, 2019
    10
    @reus 目前暂时就是这么在做的
    reus
    reus
    Jul 30, 2019
    11
    @Kontinue 这些都很成熟的了
    ioiogoo
    ioiogoo
    Jul 30, 2019
    12
    如果只是用 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/
    wzwwzw
    wzwwzw
    Jul 30, 2019
    13
    走 RPC 或者 HTTP 吧,命令性调用也行。
    STRRL
    STRRL
    Jul 30, 2019 via Android
    14
    冒昧问一下。。lz 是平安银行的吗
    guoyuchuan
    guoyuchuan
    Jul 30, 2019
    15
    HTTP 不行吗
    Kontinue
    Kontinue
    OP
    Jul 30, 2019
    16
    @STRRL 不是
    roricon
    roricon
    Jul 30, 2019❤️1
    17
    最简单的就是学 Storm 的方式,fork 出一个进程,然后用 stdin stdout 交互。
    可行,我们生产上跑的模型就是用这种方式……
    qq976739120
    qq976739120
    Jul 30, 2019
    18
    java 调用命令行,然后命令行里跑 python 脚本,这是最方便的
    janxin
    janxin
    Jul 30, 2019 via iPad
    19
    rpc/http ?
    flyingghost
    flyingghost
    Jul 30, 2019
    20
    两个异构子系统没必要直接调来调去啊。强扭的瓜不甜。
    作为两个可执行程序,命令行就是个交互接口。
    作为两个进程,有进程间通讯机制。
    作为两个服务,有 http/rpc 接口或者 mq 做同步 /异步调用。
    Raymon111111
    Raymon111111
    Jul 30, 2019
    21
    http 吧简单

    rpc 也可以, grpc 了解一下
    wwqgtxx
    wwqgtxx
    Jul 30, 2019 via iPhone
    22
    tcp 或者 unix socket 呗,又简单又可靠
    lkan
    lkan
    Jul 30, 2019 via iPhone
    23
    你们说的 http 是套接字 socket 吗
    ffeii
    ffeii
    Jul 30, 2019
    24
    今天了解到这个: https://www.graalvm.org/
    25OHd2qObJmJ6P10
    25OHd2qObJmJ6P10
    Mar 23, 2023
    25
    @ffeii 不实用啊,实例化一个 Context 就得一秒多,并发下扛不住
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5068 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 07:54 · PVG 15:54 · LAX 23:54 · JFK 02:54
    ♥ Do have faith in what you're doing.