擅长:python、mysql、java
<p>我使用dill,它存储所有的数据,我想可能模块信息?也许不是。我记得我试图用<code>pickle</code>来存储这些非常复杂的对象,但这对我来说不起作用。<code>cPickle</code>可能和<code>dill</code>做同样的工作,但我从未尝试过<code>cpickle</code>。看起来它的工作原理完全一样。我使用“obj”扩展,但这绝不是传统的……这对我来说很有意义,因为我正在存储一个对象。</p>
<pre><code>import dill
wd = "/whatever/you/want/your/working/directory/to/be/"
rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True)
rf.fit(Predx, Predy)
dill.dump(rf, open(wd + "filename.obj","wb"))
</code></pre>
<p>顺便说一下,不确定您是否使用了iPython,但有时用这种方式编写文件却不行,因此您必须执行以下操作:</p>
<pre><code>with open(wd + "filename.obj","wb") as f:
dill.dump(rf,f)
</code></pre>
<p>再次调用对象:</p>
<pre><code>model = dill.load(open(wd + "filename.obj","rb"))
</code></pre>