Я пытаюсь добавить вес для каждого наблюдения во время тренировки.
В зависимости от того, насколько сложно это наблюдение.
Примечание: я использую fit_generator
Я пытался построить новоегенератор, который генерирует (x, y, вес)
def ensembleCategoricalGenerator(generator, nBatches, batchSize):
i = 0
while i < nBatches:
train_x, train_y = generator[i]
yhat = classifier.predict(train_x)
yTrue = train_y[:, np.newaxis] # convert shape (batchSize,) to (batchSize, 1)
result = yTrue == yhat.round()
nCorrect = result.sum()
correctWeight, incorrectWeight = .5/nCorrect, .5/(batchSize-nCorrect)
weights = np.array([correctWeight if oneResult else incorrectWeight for oneResult in result])
yield (train_x, train_y, weights)
i = i + 1
#### End
ensembleGenerator = ensembleCategoricalGenerator(trainIterator,len(trainIterator), batchSize)
print(type(ensembleGenerator))
print(type(trainIterator))
Вывод: -
class 'generator'
class 'keras_preprocessing.image.dataframe_iterator.DataFrameIterator'
Я ожидал, что fit_generator примет мой генератор, но это не сработало.