大量类的情况下如何使用神经网络进行分类?

How to use neural nets for classification with a large number of classes?

有没有我可以使用大量 类 对数据进行分类的技术(我正在使用 pytorch)?

我注意到,如果我尝试构建一个多层感知器网络,我会 运行 GPU 内存不足,因为最后一层必须有太多神经元,即使我的 GPU 有 24Gb 内存。我有大约 3000 类.

是否有处理此类情况的方法或技术?

请注意,我并不是要就哪种技术更好发表意见。我要的是一份 objective 可以在这种情况下使用的技术列表。这可以以基于事实的方式回答,并在需要时包括引用等。

您可以尝试遵循的一种棘手方法是将模型分为两个子 nn.Module。您将第一个发送到 GPU 并保留最后一层,即 CPU 中的分类器。这样做你会损失一些训练速度和整体性能,但你将能够处理 MLP 中的这一巨大层。

然而,拥有如此大量的类并不常见,你是在做一些计算机视觉或 NLP 任务吗?如果是这样,您可以使用一些特定于任务的网络类型,例如 CNN 或 LSTM,它们在处理更多有效参数的情况下表现更好(例如,在 CNN 中使用池化层)。如果您必须使用 MLP,请尝试降低倒数第二层的维度。