1

我正在使用不平衡学习的“balanced_batch_generator”来尝试对具有 4 维的图像数组执行欠采样。我运行了下面的代码:

training_generator, steps_per_epoch = balanced_batch_generator(x_train, y_train, sampler=NearMiss(), batch_size=10)

并得到以下错误:

ValueError: Found array with dim 4. Estimator expected <= 2.

我知道这个函数不接受> 2维数据但是我想知道是否有解决这个问题的方法。我会通过手动拆分数据自己执行欠采样/过采样,但是我想利用 keras 很好实现的功能,例如NearMiss智能地对我的数据进行采样。

4

1 回答 1

1

您需要为您的数组重塑x_train

x.train.shape #So you know the values for all 4 dims (1st dim, 2nd dim, 3rd dm, 4th dm)
x_train = x_train.reshape(x_train.shape[0],-1)

然后使用balanced_batch_generator. 然后:

x_train = x_train.reshape(x_train.shape[0], initial Value for the 2nd dim, initial Value for the 3rd, initial Value for the 4th)

for x_train, y_train in training_generator:
    break

并且您x_train包含具有初始尺寸的平衡批次。您不需要重塑y_train,因为它只包含标签。( dim <=2)

如果您不想一直输入 dims 的值,我会使用保存值的​​变量。

于 2020-05-24T22:36:51.787 回答