关于 Google Colab Transformer 教程的问题

Posted

技术标签:

【中文标题】关于 Google Colab Transformer 教程的问题【英文标题】:Question about Google Colab Transformer Tutorial 【发布时间】:2022-01-16 00:26:06 【问题描述】:

我正在尝试按照此处的 Tensorflow Transformer 教程进行操作:

https://github.com/tensorflow/text/blob/master/docs/tutorials/transformer.ipynb

在教程中,他们从原始的“Attention is All You Need”论文中重现了 Transformer 模型的图像。在图像中,Transformer 模型的最后一层是 Dense 层,然后是 Softmax Activation。但是在代码中我只看到这样的内容:

self.final_layer = tf.keras.layers.Dense(target_vocab_size)

定义密集层的位置。但是我在教程中的任何地方都找不到 Softmax Activation。

我错过了什么?提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

再仔细看notebook,发现损失函数是这样计算的:

loss_object = tf.keras.losses.SparseCategoricalCrossentropy(
    from_logits=True, reduction='none')

如以下链接中所述,将 from_logits 设置为 True 可确保在损失计算期间应用 Softmax。

https://datascience.stackexchange.com/questions/73093/what-does-from-logits-true-do-in-sparsecategoricalcrossentropy-loss-function

因此 Softmax 激活不需要在 Transformer 模型的 Dense 层中应用。

【讨论】:

以上是关于关于 Google Colab Transformer 教程的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何查找 Google COLAB GPU 中的内核数?

20种小技巧,玩转Google Colab

20种小技巧,玩转Google Colab

如何确保所有 PyTorch 代码充分利用 Google Colab 上的 GPU

无法在 Google Colab 中使用 buildozer 构建我的应用 apk?

如何在 Google Colab 的笔记本中显示图像(如在 Anacondan Jupyter Notebook 中)?