我正在尝试在训练时为每次观察增加体重。
取决于观察的难易程度。
注意:我正在使用fit_generator
我尝试建立一个新的生成器,生成(x,y,weight)
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可以接受我的生成器,但这没用。