如何根据从元组创建的哈希键或 numpy.ndarray 列表保存对象



我的工作需要大量的计算时间。

所以我想根据键保存每个计算结果,例如,由元组组成的参数生成的散列键包括数字、numpy.ndarray 等。

为了解决这个任务,我尝试根据键保存结果(例如,机器学习模型),例如,它是从元组或代码下方的 numpy.ndarray 列表生成的散列键。

但是我无法从元组对象包括numpy.ndarray中获取散列键。

# Load dataset
iris = datasets.load_iris()
# generating model of SVM
from sklearn import svm
clf = svm.LinearSVC()
key_m=(iris.data, iris.target)
clf.fit(*key_m) # learn form the data according to parameter.
d = shelve.open("testDB")
# save object according to key(key_m)        
d[hash(key_m)]=clf ## xx <- Error occurred.
# load object according to key(key_m)    
clf_cron=d[hash(key_m)]
# Compare with base and retrieve    
if clf==clf_cron:    
    print("Equaln")
else:
    print("Not Equaln")

Numpy的ndarray对象没有哈希方法,但您可以使用md5或类似的东西:

import md5
m = md5.new()
m.update(iris.data)
m.update(iris.target)
key_m = m.hexdigest()

最新更新