再现
import evalml
根本原因
get_importable_subclasses
尝试初始化每个组件get_importable_subclasses
来生成估计器和组件的静态列表似乎我们应该尽我们所能避免在导入时发出警告。
修复的想法
get_importable_subclasses
生成的列表更新为在运行时生成,而不是在导入时生成。 即在组件实用程序中def _all_estimators():
return get_importable_subclasses(Estimator, used_in_automl=False)
...
TextFeaturizer
以不引发此特定警告。 添加单元测试以检查没有警告。get_importable_subclasses
以抑制来自组件初始化的任何警告我建议我们做第 1 项和第 2 项。
合并 #1022 时 - 删除了运行时警告。 但是,我仍然看到以下警告:
2020-08-11 12:17:34,559 featuretools - WARNING Featuretools failed to load plugin nlp_primitives from library nlp_primitives. For a full stack trace, set logging to debug.
@dsherry我会提出 PR 来做上面提到的第 1 项和第 2 项,但@eccabay告诉我这个警告不是来自我们这边。
在与@rwedge讨论后,上述功能工具警告似乎有两种解决方案:
使用 beta pip 依赖解析器
featuretools 正在使 tensorflow 成为可选项,可以由 EOD 完成 8/12/2020
我建议我们等待新的 featuretools 发布并确认警告是否仍然是一个问题。
谢谢@jeremyliweishih ! 我同意这里的选项 2 最适合处理 featuretools 警告。
除此之外,我的理解是您目前正在处理我上周评论中的选项 1 和选项 2,对吗? 我认为这两个变化,尤其是第一个变化,都会增加价值。
nlp-primitives 1.0 现在在 pypi 上发布,tensorflow 不再是必需的依赖项
确认nlp-primitives
最新版本不会弹出警告。 谢谢@rwedge! 你可以在这里查看。
太棒了,谢谢两位!
最有用的评论
nlp-primitives 1.0 现在在 pypi 上发布,tensorflow 不再是必需的依赖项