我的工作需要大量的计算时间。
所以我想根据键保存每个计算结果,例如,由元组组成的参数生成的散列键包括数字、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()