Tensorflow Keras发电机无缘无故地保持循环
我有一台凯拉斯发电机Tensorflow Keras发电机无缘无故地保持循环,tensorflow,keras,Tensorflow,Keras,我有一台凯拉斯发电机 train_datagen = ImageDataGenerator(rotation_range=360, horizontal_flip=True, vertical_flip=True, validation_split=0.15,
train_datagen = ImageDataGenerator(rotation_range=360,
horizontal_flip=True,
vertical_flip=True,
validation_split=0.15,
preprocessing_function=preprocess_image,
rescale=1 / 128.)
left_test_generator=train_datagen.flow_from_dataframe(dataframe=df_test_left,
directory = test_images_path,
x_col="pic_id",
target_size=(IMG_WIDTH, IMG_HEIGHT),
batch_size=1,
shuffle=False,
class_mode=None, seed=SEED)
左_测试_发生器的长度为500
但是如果我运行这个
for image_count, image in enumerate(right_test_generator):
print(image_count)
这将打印大于8000的图像计数。
这是怎么回事?有什么想法吗?这就是生成器的工作方式,它们内部有一个无限循环,可以生成成批的数据,
\uuu len\uuu
方法仅供参考,以了解到达一个历元需要对生成器进行多少次调用
因此,如果您想从生成器中获取特定数量的样本,您不应该像那样对其进行迭代,而是使用具有特定迭代次数的for循环。生成器就是这样工作的,在内部,它们有一个无限循环,可以生成批量数据,
\uuuu len\uuuu
方法仅供参考,以了解达到一个历元需要多少对生成器的调用
因此,如果您希望从生成器中获取特定数量的样本,则不应该像那样对其进行迭代,而是使用具有特定迭代次数的for循环