Python Keras ImageDataGenerator: AttributeError: super object has no attribute init

2024-09-29 23:29:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个数据生成器,我想从Keras继承ImageDataGenerator对象。目的是在我自己的生成器中使用Keras模块的一些图像预处理功能

from keras.preprocessing.image import ImageDataGenerator

不幸的是,我仍在试图理解超级类是如何工作的和继承的,所以我很难调试我的代码。在

^{pr2}$

当我试图创建一个对象时,我得到以下错误:

d = dataGenerator()

Traceback (most recent call last):

  File "<ipython-input-10-44bd98315a72>", line 1, in <module>
    d = dataGenerator()

  File "C:/Users/joshu/Documents/Code/Self Driving Car/data_utils.py", line 152, in __init__
    super(dataGenerator, self).init(*args, **kwargs)

AttributeError: 'super' object has no attribute 'init'

我引用的是GitHub上的mratsim代码示例:

[1]https://github.com/mratsim/Amazon_Forest_Computer_Vision/blob/master/src/k_dataloader.py

他继承了同一个物体。我猜这对他有用。。在


Tags: 模块数据对象代码inpy目的init
2条回答

__init__方法必须有4个下划线,就像您在它的def部分所做的那样。在

这是一个Python模式,父类也遵循这个模式:

super(dataGenerator,self).__init__(...)

主题外:通常,类名以大写字母开头,以区别于普通值变量。因此,DataGenerator将是一个更好的名称,遵循该建议。在

from keras.preprocessing.image import ImageDataGenerator

class dataGenerator(ImageDataGenerator):
    """
    A data generator object that flows data from selected source.
    Initializes with parameters from Keras ImageDataGenerator.
    """
    def __init__(self, *args, **kwargs):
        ImageDataGenerator.__init__(self,*args, **kwargs)
        self.iterator=None

super()在python3.x中工作,可能您使用的是python2.x

相关问题 更多 >

    热门问题