AttributeError:模块'keras.utils'没有使用segmentation_models的属性'get_file'

Posted

技术标签:

【中文标题】AttributeError:模块\'keras.utils\'没有使用segmentation_models的属性\'get_file\'【英文标题】:AttributeError: module 'keras.utils' has no attribute 'get_file' using segmentation_modelsAttributeError:模块'keras.utils'没有使用segmentation_models的属性'get_file' 【发布时间】:2021-08-19 20:18:32 【问题描述】:

我正在尝试使用分段模型,但无法修复此错误。我已经搜索过这个特别的 一个,但找不到答案。我正在使用 pycharm,此错误与此特定代码行相关联 BACKBONE = 'resnet34'

model1 = sm.Unet(BACKBONE, weights=None,
                 encoder_weights='imagenet',
                 classes=num_classes,
                 activation='softmax',
                 decoder_block_type = 'upsampling') 

这也是第 83 个。我在文档中进行了搜索,显然 tensorflow keras 等的版本满足要求。考虑到我真的尝试以多种组合方式安装和卸载所有内容,以便让这段代码工作。谢谢大家的帮助和时间!下面是完整的错误,希望对你有帮助!

    `Traceback (most recent call last):
      File "C:\Users\Giulia\PycharmProjects\multiclass_new\main.py", line 83, in <module>
        model1 = sm.Unet('resnet34', weights=None,
      File "C:\Users\Giulia\PycharmProjects\multiclass_new\venv\lib\site- 
   packages\segmentation_models\__init__.py", line 34, in wrapper
        return func(*args, **kwargs)
      File "C:\Users\Giulia\PycharmProjects\multiclass_new\venv\lib\site- 
   packages\segmentation_models\models\unet.py", line 221, in Unet
        backbone = Backbones.get_backbone(
      File "C:\Users\Giulia\PycharmProjects\multiclass_new\venv\lib\site- 
   packages\segmentation_models\backbones\backbones_factory.py", line 103, in get_backbone
        model = model_fn(*args, **kwargs)
      File "C:\Users\Giulia\PycharmProjects\multiclass_new\venv\lib\site- 
   packages\classification_models\models_factory.py", line 78, in wrapper
        return func(*args, **new_kwargs)
      File "C:\Users\Giulia\PycharmProjects\multiclass_new\venv\lib\site- 
   packages\classification_models\models\resnet.py", line 314, in ResNet34
        return ResNet(
      File "C:\Users\Giulia\PycharmProjects\multiclass_new\venv\lib\site- 
   packages\classification_models\models\resnet.py", line 280, in ResNet
        load_model_weights(model, model_params.model_name,
      File "C:\Users\Giulia\PycharmProjects\multiclass_new\venv\lib\site- 
   packages\classification_models\weights.py", line 25, in load_model_weights
        weights_path = keras_utils.get_file(
    AttributeError: module 'keras.utils' has no attribute 'get_file'

【问题讨论】:

在 Colab 中,我遇到了同样的错误,并试图通过查看 github 中的问题来解决它,但它对我不起作用。然后转到kaggle,通过在导入前添加%env SM_FRAMEWORK=tf.keras解决了问题 【参考方案1】:

你可以试试:

import segmentation_models as sm

sm.set_framework('tf.keras')

sm.framework()

在 google colab 上为我工作!

【讨论】:

这也适用于 tf 2.7。谢谢! 我在 Linux 上,但这并没有解决它。 :(

以上是关于AttributeError:模块'keras.utils'没有使用segmentation_models的属性'get_file'的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:模块'asyncio'没有属性'run'

AttributeError:模块'mysql'没有属性'connector'

AttributeError:“模块”对象没有属性“作者”

AttributeError:模块 'urllib' 没有属性 'parse'

AttributeError:模块“cupy”没有属性“cupyx”

AttributeError:“模块”对象没有属性