我想在这里学习Tensorflow转换器教程:
https://github.com/tensorflow/text/blob/master/docs/tutorials/transformer.ipynb
在本教程中,他们从最初的“注意就是你需要的一切”的论文中复制变压器模型的图像。在图像中,变压器模型的最后一层是密集层,然后是Softmax激活。但是,在代码中,我只看到这样的内容:
self.final_layer = tf.keras.layers.Dense(target_vocab_size)
稠密层的定义。但是我在本教程中的任何地方都找不到Softmax激活。
我遗漏了什么?提前感谢您的协助。
发布于 2021-12-12 01:14:25
仔细看一看笔记本,我发现损失函数的计算如下:
loss_object = tf.keras.losses.SparseCategoricalCrossentropy(
from_logits=True, reduction='none')正如下面的链接所解释的,将from_logits设置为True可以确保在计算损失期间应用Softmax。
因此,不需要在变压器模型的密集层中应用Softmax激活。
https://stackoverflow.com/questions/70319286
复制相似问题