具有大量 类 的 tflearn 标签编码

tflearn label encoding with large number of classes

我正在尝试调整 Convolutional Neural Net example of tflearn 以使用约 12000 个不同的 class 标签和超过 100 万个训练示例进行 class 化。就单热编码时的内存消耗而言,标签的数量显然是一个问题。我首先将我的字符串标签映射到连续整数,然后将它们作为列表传递给 to_categorical() 函数。以下代码导致内存错误:

trainY = to_categorical(trainY, nb_classes=n_classes)

我是否必须像这样对标签进行编码,或者我应该使用与交叉熵不同的损失函数?我可以使用 tflearn 进行批量训练吗?我可以将生成器传递给 DNN.fit() 函数吗?

感谢任何建议!

在回归层 link 中,您可以指定输入的标签应该在 运行

上进行单热编码
tflearn.layers.regression(incoming_net,
                          loss = 'categorical_crossentropy',
                          batch_size = 64,
                          to_one_hot = True,
                          n_classes = 12000)

这样应该不会出现内存错误,因为标签会在训练的时候分批编码。