Tensorflow:分层 Softmax 实现
Tensorflow: Hierarchical Softmax Implementation
我目前有用向量表示的文本输入,我想对它们的类别进行分类。因为它们是多级类别,所以我打算使用 Hierarchical Softmax
.
Example:
- Computer Science
- Machine Learning
- NLP
- Economics
- Maths
- Algebra
- Geometry
我不知道如何在Tensorflow中实现它。我遇到的所有示例都是使用其他框架。
谢谢
实际上如果你的类别总数在几百到几千之间(小于 50K),你不需要考虑使用 hierarchical softmax,它旨在 运行 更快地训练分类分为数百万个类别(例如,词汇表中的单词数量)。
根据我的经验(使用朴素贝叶斯和神经网络),在训练时使用层次结构不一定会提高分类质量。
但是,如果您有兴趣实现 Hierarchical Softmax,那就另当别论了。
终于改用Pytorch了。它比 Tensorflow 更容易、更直接。
对于任何对实施 HS 更感兴趣的人,您可以查看我的示例说明:https://gist.github.com/paduvi/588bc95c13e73c1e5110d4308e6291ab
对于任何仍然想要 Tensorflow 实现的人来说,这个是给你的:https://github.com/tansey/sdp/blob/87e701c9b0ff3eacab29713cb2c9e7181d5c26aa/tfsdp/models.py#L205。但是有点乱,作者推荐使用Pytorch或者其他动态图框架
我目前有用向量表示的文本输入,我想对它们的类别进行分类。因为它们是多级类别,所以我打算使用 Hierarchical Softmax
.
Example:
- Computer Science
- Machine Learning
- NLP
- Economics
- Maths
- Algebra
- Geometry
我不知道如何在Tensorflow中实现它。我遇到的所有示例都是使用其他框架。
谢谢
实际上如果你的类别总数在几百到几千之间(小于 50K),你不需要考虑使用 hierarchical softmax,它旨在 运行 更快地训练分类分为数百万个类别(例如,词汇表中的单词数量)。
根据我的经验(使用朴素贝叶斯和神经网络),在训练时使用层次结构不一定会提高分类质量。
但是,如果您有兴趣实现 Hierarchical Softmax,那就另当别论了。
终于改用Pytorch了。它比 Tensorflow 更容易、更直接。
对于任何对实施 HS 更感兴趣的人,您可以查看我的示例说明:https://gist.github.com/paduvi/588bc95c13e73c1e5110d4308e6291ab
对于任何仍然想要 Tensorflow 实现的人来说,这个是给你的:https://github.com/tansey/sdp/blob/87e701c9b0ff3eacab29713cb2c9e7181d5c26aa/tfsdp/models.py#L205。但是有点乱,作者推荐使用Pytorch或者其他动态图框架