在喀拉拉邦进行训练时,如何为每个训练示例增加体重

时间:2019-10-01 11:10:36

标签: python machine-learning keras deep-learning ensemble-learning

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

0 个答案:

没有答案