具有大量 类 的 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)
这样应该不会出现内存错误,因为标签会在训练的时候分批编码。
我正在尝试调整 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)
这样应该不会出现内存错误,因为标签会在训练的时候分批编码。