如何解决如何使用Joblib或其他并行计算优化此python函数?
使用此函数计算距离矩阵,这会花费大量时间。如何优化呢?我应该使用Job lib / parallel计算吗?
这在ML项目的服务器中运行,并且花费大量时间来执行此任务/功能。
def get_dtw_matrix(self,lotrunnums,target_lotrunnums=None,data_targets=None,data_clusters=None,data_train=None):
Now = datetime.datetime.Now()
#print("inside get_dtw_matrix function - AMKPIV_SP.py",Now.strftime("%Y-%m-%d %H:%M:%s"))
if data_train is None:
data_train,metric_preprocess = self.preprocess()
data_lotrunnums=self.get_data_to_dict(data_train,lotrunnums)
#print("data_lotrunnums calculated",Now.strftime("%Y-%m-%d %H:%M:%s"))
if data_targets is None:
#print("data_targets is None here...",Now.strftime("%Y-%m-%d %H:%M:%s"))
data_targets=self.get_data_to_dict(data_train,target_lotrunnums)
data=data_lotrunnums
targets=[]
clusters=[]
targets=data_targets.keys()
data.update(data_targets)
if data_clusters is not None:
clusters=data_clusters.keys()
data.update(data_clusters)
lotrunnums=data.keys()
indexes,columns=lotrunnums,lotrunnums
distance_matrix = pd.DataFrame(index=indexes,columns=columns)
lotrunnums=distance_matrix.columns
for i in range(len(lotrunnums)):
lotrunnum1=lotrunnums[i]
trace1=data[lotrunnum1]
for j in range(i,len(lotrunnums)):
lotrunnum2=lotrunnums[j]
trace2=data[lotrunnum2]
if lotrunnum1==lotrunnum2:
distance_matrix.loc[lotrunnum1,lotrunnum2]=0
else:
distanceDTW=DTWdistanceAMKPIV(self.distance_tol,self.distance_lagmax,self.distancetype,self.remove_repeated)
res1=distanceDTW.distance_to_target(trace2,trace1)
if lotrunnum1 in targets:
distance=float(res1[0]["distance"])
else:
res2=distanceDTW.distance_to_target(trace1,trace2)
distance=min(float(res1[0]["distance"]),float(res2[0]["distance"]))
distance_matrix.loc[lotrunnum1,lotrunnum2]=distance
distance_matrix.loc[lotrunnum2,lotrunnum1]=distance
indexes=dict({"target": list(targets),"cluster": list(clusters)})
#print("returning data of get_dtw_matrix",Now.strftime("%Y-%m-%d %H:%M:%s"))
return distance_matrix,indexes
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。