From b679e39b071125b0567aa06cff6710116dccb47a Mon Sep 17 00:00:00 2001 From: conglanjun Date: Wed, 23 Apr 2025 10:24:31 +0800 Subject: [PATCH 1/2] fix: hidden state#0 number --- .../2.1-\345\233\276\350\247\243attention.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/docs/\347\257\207\347\253\2402-Transformer\347\233\270\345\205\263\345\216\237\347\220\206/2.1-\345\233\276\350\247\243attention.md" "b/docs/\347\257\207\347\253\2402-Transformer\347\233\270\345\205\263\345\216\237\347\220\206/2.1-\345\233\276\350\247\243attention.md" index 0b7bec6..ed54c90 100644 --- "a/docs/\347\257\207\347\253\2402-Transformer\347\233\270\345\205\263\345\216\237\347\220\206/2.1-\345\233\276\350\247\243attention.md" +++ "b/docs/\347\257\207\347\253\2402-Transformer\347\233\270\345\205\263\345\216\237\347\220\206/2.1-\345\233\276\350\247\243attention.md" @@ -63,7 +63,7 @@ for Statistical Machine Translation](http://emnlp2014.org/papers/pdf/EMNLP201417 让我们来进一步可视化一下基于RNN的seq2seq模型中的编码器在第1个时间步是如何工作: -![rnn](./pictures/1-6-rnn.gif) 动态图:如图所示,RNN在第2个时间步,采用第1个时间步得到hidden state#10(隐藏层状态)和第2个时间步的输入向量input#1,来得到新的输出hidden state#1。 +![rnn](./pictures/1-6-rnn.gif) 动态图:如图所示,RNN在第2个时间步,采用第1个时间步得到hidden state#0(隐藏层状态)和第2个时间步的输入向量input#1,来得到新的输出hidden state#1。 看下面的动态图,让我们详细观察一下编码器如何在每个时间步得到hidden sate,并将最终的hidden state传输给解码器,解码器根据编码器所给予的最后一个hidden state信息解码处输出序列。注意,最后一个 hidden state实际上是我们上文提到的context向量。 ![](./pictures/1-6-seq2seq.gif) 动态图:编码器逐步得到hidden state并传输最后一个hidden state给解码器。 From f5d3b2d5a734cb1ab61d08aad0e16b69cac79cd1 Mon Sep 17 00:00:00 2001 From: conglanjun Date: Wed, 23 Apr 2025 10:28:10 +0800 Subject: [PATCH 2/2] fix: hidden state#0 number --- .../2.1-\345\233\276\350\247\243attention.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/docs/\347\257\207\347\253\2402-Transformer\347\233\270\345\205\263\345\216\237\347\220\206/2.1-\345\233\276\350\247\243attention.md" "b/docs/\347\257\207\347\253\2402-Transformer\347\233\270\345\205\263\345\216\237\347\220\206/2.1-\345\233\276\350\247\243attention.md" index ed54c90..36536f9 100644 --- "a/docs/\347\257\207\347\253\2402-Transformer\347\233\270\345\205\263\345\216\237\347\220\206/2.1-\345\233\276\350\247\243attention.md" +++ "b/docs/\347\257\207\347\253\2402-Transformer\347\233\270\345\205\263\345\216\237\347\220\206/2.1-\345\233\276\350\247\243attention.md" @@ -65,7 +65,7 @@ for Statistical Machine Translation](http://emnlp2014.org/papers/pdf/EMNLP201417 ![rnn](./pictures/1-6-rnn.gif) 动态图:如图所示,RNN在第2个时间步,采用第1个时间步得到hidden state#0(隐藏层状态)和第2个时间步的输入向量input#1,来得到新的输出hidden state#1。 -看下面的动态图,让我们详细观察一下编码器如何在每个时间步得到hidden sate,并将最终的hidden state传输给解码器,解码器根据编码器所给予的最后一个hidden state信息解码处输出序列。注意,最后一个 hidden state实际上是我们上文提到的context向量。 +看下面的动态图,让我们详细观察一下编码器如何在每个时间步得到hidden sate,并将最终的hidden state传输给解码器,解码器根据编码器所给予的最后一个hidden state信息解码输出序列。注意,最后一个 hidden state实际上是我们上文提到的context向量。 ![](./pictures/1-6-seq2seq.gif) 动态图:编码器逐步得到hidden state并传输最后一个hidden state给解码器。 接着,结合编码器处理输入序列,一起来看下解码器如何一步步得到输出序列的l。与编码器类似,解码器在每个时间步也会得到 hidden state(隐藏层状态),而且也需要把 hidden state(隐藏层状态)从一个时间步传递到下一个时间步。