日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab 自动处理数据,Matlab Remote IPC自动化数据处理

發布時間:2023/12/19 循环神经网络 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab 自动处理数据,Matlab Remote IPC自动化数据处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Matlab Remote IPC 實現數據自動化處理

轉載請注明作者夢里茶

需求

在研究中遇到這樣一種需求,

在Matlab端做GPU運算;

在Python端做數據清洗和數據分析;

兩端分屬兩個服務器;

M端需要等待P端完成數據清洗才能開始做訓練和預測

P端需要等待M端完成訓練和預測才能做數據分析

問題

數據很多,不適合將兩端合并到一個服務器上

存在增量訓練,對同一份數據,可能要結合多份額外數據進行N次傳輸

由于采用10折交叉驗證,數據劃分為10份,總共要進行10×N次傳輸

M端和P端都需要各自運行一段時間才能出結果,需要等待,說快不快,說慢不慢

上面的幾個點使得訓練的過程非常繁瑣耗時

探索

作為不耐心而且懶的程序員,超過15秒的事情就想要自動化,于是開始想能不能把上面這個過程自動化

方案一 用一種語言重寫另一方的代碼

Python端邏輯復雜,與數據關聯密切,重構為Matlab代碼工程量大(而且我還是比較熟悉Python)

Matlab端是某篇論文的代碼,使用了MatConvNet這個庫做CNN,用Python實現工程量也很大,而且因為是別人的代碼,還可能有很多未知的坑

方案二 使用第三方庫作為Lib相互調用

由于Matlab端涉及GPU運算,配置比較復雜

作為庫相互調用使得兩個模塊的耦合增加,不符合解耦原則

需要編寫接口代碼

方案三 Matlab和Python進行進程間通信

進程間通信要求兩邊各有一個可執行程序,但是Matlab打包麻煩(需要下另一個收費的打包工具)具體看這里,在GUI界面中操作相對方便,并且打包后不好調試

遠程進程間通信有許多方案可以選擇,例如socket,這個工作量比上面的方案小,但也需要額外編寫一部分功能代碼

方案四 (Final)使用Matlab進行執行shell命令進行scp,以文件的方式進行數據傳輸

改動的代碼最少

依舊是兩個模塊,依舊低耦合

通信性能沒有庫調用或者Socket那么好,但程序主要性能瓶頸不在數據傳輸,而在于訓練和預測,所以沒關系

執行ssh的時候可以同時執行另一個服務器上的命令,從而調用Python端腳本進行Python端工作

下面具體講方案四的實現

實現

Matlab執行shell命令

setenv('d_name', dataset_name);

setenv('std_idx', num2str(i));

% transport raw image predict data

!env LD_LIBRARY_PATH='' scp ${d_name}_train.log cwh@192.168.231.171:/home/cwh/coding/Project/data/${std_idx}-train/renew_pid.log

!env LD_LIBRARY_PATH='' ssh cwh@192.168.231.171 "cd /home/cwh/coding/Project; python data_analysis.py data/${std_idx}-train"

其中

通過setenv來設置環境變量,從而動態決定要執行的腳本的內容

在matlab代碼中,使用!開頭,代表這是一行shell命令

需要把LD_LIBRARY_PATH這個環境變量置為空,防止使用matlab自帶的一些lib,導致ssh等命令執行失敗

SSH

Matlab是有一個庫可以做ssh和scp的

但是,不想把密碼寫在代碼里,并且懶得去用第三方的東西

于是想直接用shell調用

shell調用有一個老大難的問題,就是需要輸密碼

受Hadoop分布式配置的啟發,發現可以做ssh免密碼配置,避開輸密碼的問題

免密碼具體參考這個教程

ssh配置免密之后,scp也是免密的,另外還有一個好處,ssh可以通過""來嵌入ssh之后要執行的代碼,從而做Python調用

Python

如果之前Python端是用IDE開發的,轉為shell調用就要注意兩個問題路徑,cd到正確的目錄,Python端的文件操作和lib import的相對路徑是相對于要執行的py文件

庫# 加載對應的庫

env LD_LIBRARY_PATH='/your/lib/path/sth.so'

命令行參數,參考這個教程

同步控制

由于matlab調用shell命令時會陷入等待,會等待命令完成再執行下一步,不像socket發完消息后不知道什么時候另一邊運行結束,所以不需要自己實現排隊等待同步互斥的東西

如果需要在等待的時候做些并發,可以考慮matlab 并行工具箱,結合Python端的并發幾乎就是一個分布式框架了,有空再深入去搞一搞

SUMMARY

matlab調shell

shell中ssh做遠程進程調用

scp做數據傳輸

效果:盡可能輕量地解決自動化的問題

總結

以上是生活随笔為你收集整理的matlab 自动处理数据,Matlab Remote IPC自动化数据处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。