我可以得到已选择的文件名列表吗?

2024-09-29 21:56:36 发布

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

我目前正在使用ImageDataGenerator

datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255.)
train_it = datagen.flow_from_directory("MyTrainImgDir",batch_size=8,target_size=(1024,1024))
...

history = model.fit(train_it,epochs=10,steps_per_epoch=16,
                              callbacks=[TrainingCallback()],
                              ...
                              );
class TrainingCallback(Callback):
       def on_train_batch_begin(self, batch, logs=None):
             print(f"Training: Starting batch {batch}")
             ## I believe I would need to write some code here..
       

我想要的是…在这个回调中,我想打印培训期间选择的图像文件名…这可能吗

我很确定,每批将选择不同的图像文件进行训练…我想看看哪些图像文件已被选择训练可能

因此,输出将类似于

培训:开始第0批

1234.jpg

23456.jpg ...

培训:开始第1批

5679.jpg

98542.jpg

任何帮助都将不胜感激

谢谢

注意,我在那个目录下的图像文件总数是1000,这里的批量大小是8。所以每个历元的步长是125,但我提供的不到125。据我所知,在这种情况下,批次将随机选择

实际上,我可以像这样打印文件名

start = batch * 8
end = start + 8
train_it.filenames[start : end]

然而,这只有在步长每历元=125时才有意义。 如果每个历元的步长不等于125,我相信我需要通过拟合方法选择的实际批号,如果我是正确的,我相信它应该是随机的。。。。我的意思是,因为我提供了16个步骤,所以选择的实际批号可能是1、4、10(总共16个),…110。。。或者8,12,…100(总共16)…诸如此类


Tags: sizetf图像文件batchittrainstartend

热门问题