我目前有用向量表示的文本输入,并且我想对它们进行分类。因为它们是多级别的分类,所以我打算使用Hierarchical Softmax
。
Example:
- Computer Science
- Machine Learning
- NLP
- Economics
- Maths
- Algebra
- Geometry
我不知道如何在Tensorflow中实现它。我遇到的所有示例都使用其他框架。谢谢
我目前有用向量表示的文本输入,并且我想对它们进行分类。因为它们是多级别的分类,所以我打算使用Hierarchical Softmax
。
Example:
- Computer Science
- Machine Learning
- NLP
- Economics
- Maths
- Algebra
- Geometry
我不知道如何在Tensorflow中实现它。我遇到的所有示例都使用其他框架。如果您的总类别数在数百到数千个范围内(少于50K),实际上您无需考虑使用分层Softmax。这种方法是为了在分类成数百万类别时(例如词汇表中单词的数量)更快地运行训练而设计的。
根据我的经验(使用朴素贝叶斯和神经网络),在训练时利用分层结构不一定会提高您的分类质量。
然而,如果您有兴趣实现分层Softmax,那就是另外一回事了。
最后,我已经改用Pytorch了。它比Tensorflow更容易和直观。
对于任何想要实现HS的人,您可以查看我的示例说明:https://gist.github.com/paduvi/588bc95c13e73c1e5110d4308e6291ab
对于仍然想要Tensorflow实现的人,这个是给你的:https://github.com/tansey/sdp/blob/87e701c9b0ff3eacab29713cb2c9e7181d5c26aa/tfsdp/models.py#L205。但它有点凌乱,作者建议使用Pytorch或其他动态图框架。
loss_of_that_input = softmax_cross_entropy(A1|Ax) + softmax_cross_entropy(A10|A1x) + softmax_cross_entropy(A101|A10x)
。 - Viet Phan