![](/img/trans.png)
[英]'DNN' object has no attribute 'fit_generator' in ImageDataGenerator() - keras - python
[英]Python Keras ImageDataGenerator: AttributeError: 'super' object has no attribute 'init'
我正在嘗試編寫一個數據生成器,我想從Keras繼承ImageDataGenerator對象。 目的是在我自己的生成器中使用Keras模塊的某些圖像預處理功能
from keras.preprocessing.image import ImageDataGenerator
不幸的是,我仍在嘗試了解超類的工作方式和繼承性,因此我很難調試代碼。
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):
super(dataGenerator, self).init(*args, **kwargs)
self.iterator=None
當我嘗試創建對象時,出現以下錯誤:
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
他繼承了同一個對象。 我猜這對他有用。
__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()在python 3.x中工作。可能您正在使用python 2.x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.