我已经实现了一个自定义生成器,该生成器针对每个批次调用index.js
✓ exists
✓ is valid JavaScript
1) defines items such that it contains three elements
2) defines items such that it contains three list item elements
的方法ImageDataGenerator
,以创建一个随机采样的批次,该批次具有每个类的一个实例:
flow_from_dataframe
这会导致 def __getitem__(self, idx):
batch_df = pd.DataFrame()
# create a dataframe with one random sample for each class
for class_name in batch_class_names:
rand_row = self.df_dict[class_name].sample(n = 1)
batch_df = batch_df.append(rand_row, ignore_index=True)
# create generator
batch_gen = self.generator.flow_from_dataframe(
dataframe=batch_df, directory=self.directory, x_col="filename",
y_col="brand", classes=self.class_names,
class_mode="categorical",
target_size=self.image_dims, color_mode="rgb", batch_size=batch_df.shape[0], shuffle=self.shuffle)
# return batch
return next(batch_gen)
为每个批次打印新行,这会破坏历元输出。
而不是在每个时期(有100个批次)之后打印新行,而是在每个批次之后打印新行:
flow_from_dataframe to
我尝试将 1/100 [..............................] - ETA: 20:05 - loss: 3.4795 - tpr_metric: 0.0000e+00Found 9 validated image filenames belonging to 28 classes.
2/100 [..............................] - ETA: 11:11 - loss: 3.4328 - tpr_metric: 0.0000e+00Found 9 validated image filenames belonging to 28 classes.
3/100 [..............................] - ETA: 8:10 - loss: 3.4140 - tpr_metric: 0.0000e+00Found 9 validated image filenames belonging to 28 classes.
4/100 [>.............................] - ETA: 6:39 - loss: 3.4309 - tpr_metric: 0.0000e+00Found 9 validated image filenames belonging to 28 classes.
5/100 [>.............................] - ETA: 5:45 - loss: 3.4323 - tpr_metric: 0.0000e+00Found 9 validated image filenames belonging to 28 classes.
6/100 [>.............................] - ETA: 5:08 - loss: 3.4221 - tpr_metric: 0.0000e+00Found 9 validated image filenames belonging to 28 classes.
7/100 [=>............................] - ETA: 4:41 - loss: 3.4188 - tpr_metric: 0.0000e+00Found 9 validated image filenames belonging to 28 classes.
放在sys.stdout = open(os.devnull, 'w')
之前,然后将flow_from_dataframe
放在之后,但这会停止所有打印(也包括划时代的打印)。
有什么建议吗?