model.fit_generator中的class_weight参数如何与数据生成器一起使用?

时间:2020-10-01 20:25:34

标签: python tensorflow keras deep-learning generator

我正在尝试使用keras拟合CNN模型以对2类数据进行分类。我的数据集不平衡,我想平衡数据。我该怎么做? ,我不知道如何在代码中使用class_weight来获得平衡的数据集。

任何帮助将不胜感激。

代码:

history=model.fit_generator(generate_arrays_for_training(indexPat, filesPath, end=75),
          validation_data=generate_arrays_for_training(indexPat, filesPath, start=75),
          steps_per_epoch=int((len(filesPath)-int(len(filesPath)/100*25))),
          validation_steps=int((len(filesPath)-int(len(filesPath)/100*75))),
          verbose=2, epochs=15, max_queue_size=2, shuffle=True, callbacks=[callback])

def generate_arrays_for_training(indexPat, paths, start=0, end=100):
    while True:
        from_=int(len(paths)/100*start)
        to_=int(len(paths)/100*end)
        for i in range(from_, int(to_)):
            f=paths[i]
            x = np.load(PathSpectogramFolder+f)
            x = np.expand_dims(x, axis=0)
            if('P' in f):
                y = np.repeat([[0,1]],x.shape[0], axis=0)
            else:
                y =np.repeat([[1,0]],x.shape[0], axis=0)
            yield(x,y)



0 个答案:

没有答案
相关问题