电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

java 如何調用Python文件包括傳參

瀏覽:2日期:2022-07-27 17:07:13

最近在和我的小伙伴們做一個物體識別的小程序,主要是他通過深度學習,然后訓練出了一個模型,只要向模型傳圖片的路徑,即可得到識別的結果,

然后我主要負責做服務器和通過java調用他的模型,簡單的說就是在java環境下調用Python腳本,

主要有兩個方式

第一個是通過jython,這個方法不太好用,當Python用到第三方庫的時候,由于jython不可能涵蓋所有python第三方類庫,

所以建議用第二種Runtime.getRuntime()開啟進程來執行python腳本文件

String[] arguments = new String[] {'python','D:ccc1.py',str};//指定命令、路徑、傳遞的參數try { Writer out = response.getWriter(); //獲得HttpServletResponse輸出流對象 Process process = Runtime.getRuntime().exec(arguments);//開啟進程來執行腳本文件 BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));//獲取字符輸入流對象 String line = null; while ((line = in.readLine()) != null) {JSONArray Resulet = JSONArray.fromObject(util.DataHandle(line.toString()));//讀取到結果(一行文字)進行數據處理 String json = Resulet.toString(); out.write(json);//使用輸出流對象向小程序發送字符數據 } out.close(); in.close(); } catch (Exception e) { e.printStackTrace();}

第一行代碼傳遞的參數str就是圖片的路徑(我這實例代碼只傳遞一個參數,如果傳遞多個參數直接在str,后面加,格式都是一樣,Python代碼接收參數也是不一樣,接著往下看),剩下的代碼我都上了注釋

from keras.models import load_modelimport numpy as npfrom keras.preprocessing import imageimport sysimport redef predict(pic_dir): model = load_model('D:/ccc/model.h5') images = image.load_img(pic_dir, target_size=(32,32)) images = image.img_to_array(images) images = np.expand_dims(images, axis=0) images=np.array(images,dtype=int) images_normalize=images.astype('float32')/255.0pre_y=model.predict(images_normalize) pre_y=pre_y.reshape(-1) np.set_printoptions(suppress=False) pre_y=[pre_y[i]*100 for i in range(len(pre_y))] pre_y=[str(pre_y[i]) for i in range(len(pre_y))]for i in range(len(pre_y)):if pre_y[i].find(’e’,0,len(pre_y[i]))!=-1: wei=int(pre_y[i][len(pre_y[i])-1])-1 pre_y[i]=re.sub(r’e-.*$’,’’,pre_y[i]) pre_y[i]=re.sub(r’[^0-9]’,’’,pre_y[i]) for j in range(0,wei): pre_y[i]=’0’+pre_y[i] pre_y[i]=’0’+’.’+pre_y[i] pre_y=[pre_y[i]+'%' for i in range(len(pre_y))] return pre_yprediction=predict(sys.argv[1])print(prediction)

上面是Python代碼,prediction=predict(sys.argv[1])代碼里面的sys.argv[1]就是接收傳遞過來的參數str,如果多個參數就以此類推接收

java 如何調用Python文件包括傳參

小程序接收到數據并輸出到控制臺

java 如何調用Python文件包括傳參

然后就是顯示數據,給我小伙伴的深度學習點個贊!準確率還是挺高的

補充:Java調用Python文件

有時候我們想要通過java調用一個python文件,而這個python文件又必須在特定的virtualenv虛擬環境下才能運行。如果直接將這個python文件所需要的包安裝到python系統環境下難免有些暴力

我想到了如下方法解決這個問題:

創建虛擬環境后,如果虛擬環境的文件夾叫做env,我們平時激活虛擬環境的命令是 source env/bin/activate 。在bin目錄中還有一個文件叫做activate_this.py,我們通過這個文件切換到虛擬環境,在一個python文件(假設叫a.py)中調用該文件(activate_this.py),再書寫想要調用的目標python文件,再由Java調用a.py即可完成指定虛擬環境下的python文件調用。

python文件名為a.py,代碼如下

import osactivate_this = ’path/to/activate_this.py’execfile(activate_this, dict(__file__=activate_this))os.system('python target.py')

java代碼

import java.io.BufferedReader;import java.io.InputStreamReader; public class Test { public static void main(String[] args) { try { System.out.println('start'); Process pr = Runtime.getRuntime().exec('python /home/kui/桌面/a.py'); BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line; while ((line = in.readLine()) != null) { System.out.println(line); } in.close(); pr.waitFor(); System.out.println('end'); } catch (Exception e) { e.printStackTrace(); } }}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 布袋除尘器-单机除尘器-脉冲除尘器-泊头市兴天环保设备有限公司 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 我车网|我关心的汽车资讯_汽车图片_汽车生活! | 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | 低粘度纤维素|混凝土灌浆料|有机硅憎水粉|聚羧酸减水剂-南京斯泰宝 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 二手Sciex液质联用仪-岛津气质联用仪-二手安捷伦气质联用仪-上海隐智科学仪器有限公司 | ISO9001认证咨询_iso9001企业认证代理机构_14001|18001|16949|50430认证-艾世欧认证网 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 热处理炉-退火炉-回火炉设备厂家-丹阳市电炉厂有限公司 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 一技任务网_有一技之长,就来技术任务网| 房间温控器|LonWorks|海思 | 包装盒厂家_纸盒印刷_礼品盒定制-济南恒印包装有限公司 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 成都茶楼装修公司 - 会所设计/KTV装修 - 成都朗煜装饰公司 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 全自动不干胶贴标机_套标机-上海今昂贴标机生产厂家 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 压滤机-洗沙泥浆处理-压泥机-山东创新华一环境工程有限公司 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 全自动包装机_灌装机生产厂家-迈驰包装设备有限公司 | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 路面机械厂家| 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 |