使用分段模型库时的问题

Posted

技术标签:

【中文标题】使用分段模型库时的问题【英文标题】:issue while using segmentation-models library 【发布时间】:2021-02-24 13:26:58 【问题描述】:
from tensorflow import keras
from segmentation_models import PSPNet

运行此程序时,我遇到以下错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-14-fbd9360b4944> in <module>()
      1 
      2 from tensorflow import keras
----> 3 from segmentation_models import PSPNet

3 frames
/usr/local/lib/python3.6/dist-packages/segmentation_models/__init__.py in <module>()
     96 _framework = os.environ.get('SM_FRAMEWORK', _DEFAULT_KERAS_FRAMEWORK)
     97 try:
---> 98     set_framework(_framework)
     99 except ImportError:
    100     other = _TF_KERAS_FRAMEWORK_NAME if _framework == _KERAS_FRAMEWORK_NAME else _KERAS_FRAMEWORK_NAME

/usr/local/lib/python3.6/dist-packages/segmentation_models/__init__.py in set_framework(name)
     66     if name == _KERAS_FRAMEWORK_NAME:
     67         import keras
---> 68         import efficientnet.keras  # init custom objects
     69     elif name == _TF_KERAS_FRAMEWORK_NAME:
     70         from tensorflow import keras

/usr/local/lib/python3.6/dist-packages/efficientnet/keras.py in <module>()
     15 preprocess_input = inject_keras_modules(model.preprocess_input)
     16 
---> 17 init_keras_custom_objects()

/usr/local/lib/python3.6/dist-packages/efficientnet/__init__.py in init_keras_custom_objects()
     69     
     70 
---> 71     keras.utils.generic_utils.get_custom_objects().update(custom_objects)
     72 
     73 

AttributeError: module 'keras.utils' has no attribute 'generic_utils'

我使用 pip 作为提供的指令安装了分段模型库 (link) 如果有人可以帮助我解决它,我将不胜感激。我只是从指令中复制代码,我在网上找到的都是一样的。是不是安装有问题?

请指导我完成这个!:)

【问题讨论】:

【参考方案1】:

您遇到此问题是因为您使用的是Tensorflow version &gt;= 2.2。要解决此问题,您必须使用 Tensorflow 2.1/2.0Tensorflow 1.x (i.e 1.15.2)

请按照以下步骤执行Image segmentation 使用Segmentation models 使用TF 2.1

    !pip install q tensorflow==2.1
    !pip install segmentation-models
    
    import tensorflow as tf
    from segmentation_models import PSPNet
    
    #Instantiate PSPNet model
    model = PSPNet()

    #Display model summary
    model.summary()

【讨论】:

以上是关于使用分段模型库时的问题的主要内容,如果未能解决你的问题,请参考以下文章

不使用 Android 支持库时的 NavUtils 等价物?

使用 iOS 4.0 库时的向后兼容性

发布到 Nexus 上的私有 NPM 存储库时的身份验证错误

对向量使用 Push Back 功能时的分段错误

使用Spring BOOT集成测试JPA存储库时的NoSuchMethodError(getMetaModel)

尝试从 toran 获取所需的私有库时的 Composer 警告