<p>我pickle了一个模型,只想公开用<code>Flask</code>编写的<code>prediction</code>api。但是,当我编写一个dockerfile来生成一个没有<code>sklearn</code>的图像时,我得到了一个错误<code>ModuleNotFoundError: No module named 'sklearn.xxxx'</code>,其中<code>xxx</code>引用了sklearn的ML算法类,此时我使用pickle like<code>classifier = pickle.load(f)</code>加载模型。在</p>
<p>当我重写dockerfile以生成包含<code>sklearn</code>的图像时,即使在API中I<strong>never</strong>import<code>sklearn</code>,我也不会得到错误。<br/>
我的pickling概念非常简单,它将用它的所有数据序列化分类器类。所以当我们取消拾取它时,因为分类器类已经有了一个<code>predict</code>属性,我们可以直接调用它。为什么环境中需要<code>sklearn</code>?在</p>