from tensorflow import keras
class Generator(keras.utils.Sequence):
def __init__(self, X, Y, batch_size=32):
self.X = X # X是一个list
self.Y = Y # Y是一个list
self.batch_size = batch_size
def __len__(self):
#math.ceil表示向上取整
#调用len(BaseSequence)时返回,返回的是每个epoch我们需要读取数据的次数
return math.ceil(len(self.X) / self.batch_size)
def preprocess_img(self, img):
# 数据归一化
img = np.asarray(img, np.float32) / 255.0
return img
def __getitem__(self, idx):
batch_x = self.X[idx * self.batch_size: (idx + 1) * self.batch_size]
batch_y = self.Y[idx * self.batch_size: (idx + 1) * self.batch_size]
return np.array(batch_x)/255.0, np.array(batch_y)/255.0
#重写的父类Sequence中的on_epoch_end方法,在每次迭代完后调用。
def on_epoch_end(self):
#每次迭代后重新打乱训练集数据
c = list(zip(self.X,self.Y))
random.shuffle(c)
self.X[:], self.Y[:] = zip(*c)
keras model.fit_generator()
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- fit_generator 使用 Python 生成器(或 Sequence 实例)逐批生成的数据,按批次训练模型...
- ## 为何使用fit_generator? 在深度学习中,我们数据通常会很大,即使在使用GPU的情况下,我们如果一...
- 参考 https://stanford.edu/~shervine/blog/keras-how-to-gener...
- fit_generator函数 callback类 每一个epoch结束(on_epoch_end)时,都要调用c...
- gpu内存不足使用keras时,使用model.fit_generator.大致分为2种情况 1.已知文件路径需读...