关于sampled_softmax_with_cross_entropy设计疑问
Created by: Meiyim
使用sampled_softmax的场景是当输出分类数过于庞大时,通过采样来减少fc计算量。 而paddle sampled_softmax的输入和普通softmax一样都是logits.shape = [batch_size, vocab_size], 这样就达不到目的了。因为输入已经是vocab_size了,那个大fc已经被完全计算了。
对于这种常见功能,paddle的api设计完全可以参考tf。把fc的计算放到这个函数里。 https://www.tensorflow.org/api_docs/python/tf/nn/sampled_softmax_loss 这样实现之后这个fc会接受到稀疏的梯度,在多卡、多机通信时的效率问题需要多加考虑。