【问题标题】:Saving a Python object保存 Python 对象
【发布时间】:2018-09-01 11:03:07
【问题描述】:

我想保存以下类型的对象(“集群”)以便以后使用。 对象具有类型

<class 'pyemma.coordinates.clustering.kmeans.KmeansClustering'>

我尝试使用pickle,但加载的对象导致错误。

n_clusters = 3
clustering = coor.cluster_kmeans(Y, k=n_clusters, max_iter=100, tolerance=1e-10, fixed_seed=True)    
with open("clustering.file", "wb") as f:
    pickle.dump(clustering, f, pickle.HIGHEST_PROTOCOL)
with open("clustering.file", "rb") as f:
    clustering=pickle.load(f)
clustering.save_traj()
dtrajs = clustering.dtrajs  # get discrete trajectories

这是错误:

  File "pyemma_dG.py", line 102, in <module>
    dtrajs = clustering.dtrajs  # get discrete trajectories
  File "/home/local/andtos-loc/anaconda3/lib/python3.5/site-packages/pyemma/coordinates/clustering/interface.py", line 101, in dtrajs
    self._dtrajs = self.assign(stride=1)
  File "/home/local/andtos-loc/anaconda3/lib/python3.5/site-packages/pyemma/coordinates/clustering/interface.py", line 217, in assign
    mapped = self.get_output(stride=stride, chunk=self.chunksize, skip=skip)
  File "/home/local/andtos-loc/anaconda3/lib/python3.5/site-packages/pyemma/coordinates/data/_base/transformer.py", line 182, in chunksize
    return self.default_chunksize
  File "/home/local/andtos-loc/anaconda3/lib/python3.5/site-packages/pyemma/coordinates/data/_base/iterable.py", line 74, in default_chunksize
    if self._default_chunksize is None:
AttributeError: 'KmeansClustering' object has no attribute '_default_chunksize'

【问题讨论】:

    标签: python-3.x object save pickle


    【解决方案1】:

    不幸的是,这个旧版本的 PyEMMA 不支持在坐标子包中酸洗复杂对象。高于 2.5 的版本正确支持它。我建议使用内置的保存和加载功能,因为它还通过 HDF5 提供了非常快速和 io 高效的数组序列化。

    【讨论】:

      猜你喜欢
      • 2021-02-11
      • 2011-08-12
      • 1970-01-01
      • 2016-06-17
      • 2018-06-06
      • 2017-12-09
      • 1970-01-01
      • 2016-02-21
      • 2012-07-11
      相关资源
      最近更新 更多