【发布时间】:2020-09-26 11:43:24
【问题描述】:
我已经有一个可以进行二进制分类的网络。现在我想将其扩展到多标签分类网络。我已经修改了模型(使用'sigmoid'作为输出层激活函数并使用'binary_crossentropy'损失)。但是,我想知道如何修改 DataGenerator 函数以使其可以提供多标签输出?
比如原来的DataGenerator函数是:
def __data_generation(self, list_IDs_temp):
'Generates data containing batch_size samples'
# Initialization
X = np.empty((self.batch_size, *self.dim, self.n_channels))
y = np.empty((self.batch_size), dtype=int)
# Generate data
for i, ID in enumerate(list_IDs_temp):
# Store sample
X[i, ] = np.load(train_dir + ID)
# Store class
y[i] = self.labels[ID]
return X, to_categorical(y, num_classes=self.n_classes)
对于二元分类,labels[ID] 是一个整数。现在,如果我想做多标签分类,标签[ID] 是一个类似 [0 1 0 0 1 0] 的序列(假设我有 6 个标签)。我想知道如何通过 DataGnerator() 函数传递这个序列?
非常感谢!
【问题讨论】:
标签: python tensorflow keras multilabel-classification data-generation