首页 > 解决方案 > 如何在一维卷积中使用批量平衡器

问题描述

存在不平衡分类问题,我正在尝试使用“imblearn”库中的“BalancedBatchGenerator”将输入批次中的类平衡到张量流中一维卷积中的“model.fit()”。问题是,当我尝试将数据提供给“BalancedBatchGenerator”时,它需要一个二维的数据,但是当我尝试将数据提供给一维卷积时,它需要一个二维的数据。这两种类型的数据形状在尝试使用“model.fit()”时不兼容,因为一维卷积的输入必须是 3,而批量生成器的大小是 2。我想知道是否有人可以帮助修复它

import tensorflow
import imblearn
import tensorflow.keras
from imblearn.keras import BalancedBatchGenerator
from imblearn.under_sampling import NearMiss
training_generator = BalancedBatchGenerator(
    x_train, y_train, sampler=NearMiss(), batch_size=10, random_state=42)

model = Sequential()
model.add(Conv1D(256,kernel_size=3,activation='relu', input_shape =(1680,)))
model.add(Flatten())
model.add(Dense(200, activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(2, activation='softmax'))
model.compile(loss='binary_crossentropy',
              optimizer='adadelta',
              metrics= ['accuracy'])

model.fit(training_generator,  epochs = 30, verbose = 1)

标签: pythontensorflowimbalanced-data

解决方案


推荐阅读