【问题标题】:Fast Ai: AttributeError: 'Learner' object has no attribute 'fine_tune'Fast Ai: AttributeError: 'Learner' 对象没有属性 'fine_tune'
【发布时间】:2020-12-03 14:40:32
【问题描述】:

Fast Ai 使用了from fastai import * 等非常规的风格。

我不喜欢它,所以煞费苦心地识别 chapter 2 of the fastai book 中的每个导入,但遇到了错误

AttributeError: 'Learner' object has no attribute 'fine_tune'

但是,当我然后去做的时候

from fastbook import *

它有效。这是一个非常奇怪的行为,因为如果完成上述导入,对 cnn_learner 类或包含它的模块进行了某些操作,使其具有fine_tune 方法。

我想避免这种编码风格,那么我应该怎么做才能加载正确版本的 Learner?

【问题讨论】:

    标签: fast-ai


    【解决方案1】:

    我刚刚遇到了完全相同的问题。在查看了他们的一篇教程后,我发现 cnn 学习器没有从预期的包中导入。

    from fastai.vision.all import cnn_learner
    # rather than
    from fastai.vision.learner import cnn_learner
    

    调用fine_tune 方法然后按预期工作!

    【讨论】:

      【解决方案2】:

      Fastai 做了很多猴子补丁。不仅是它自己的导入,还包括其他库,例如 pathlibtorch。我个人也不喜欢这种编码风格,但它就是这样。

      我强烈建议创建一个单独的环境(例如通过 conda),在那里安装 fastai 并使用他们的 from ... import *。我过去曾尝试解决这些导入问题,但是由于您不知道(除非您深入研究源代码)猴子修补的位置/内容,因此您将遇到missing attribute 和各地的类似错误。

      此外,它与其他一些库不兼容。我记得由于包依赖关系,很难让它与opencv 一起工作,安装opencv 破坏了fastai 的一些功能(我后来才发现),因为覆盖了一些外部库中已经被fastai 修补的东西.

      【讨论】:

      • 让我想起了为什么我从 Perl 切换到 Python
      猜你喜欢
      • 1970-01-01
      • 2012-12-01
      • 2021-04-19
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多