diff --git a/code/chapter06_RNN/6.7_gru.ipynb b/code/chapter06_RNN/6.7_gru.ipynb index 4a1b8d85993ae4f7bf2b750fc5ac1ffd027d6a0f..ff1ebd9d72cd1831d864b5f374f8d7a107774d9d 100644 --- a/code/chapter06_RNN/6.7_gru.ipynb +++ b/code/chapter06_RNN/6.7_gru.ipynb @@ -17,7 +17,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "1.0.0 cpu\n" + "1.2.0 cpu\n" ] } ], @@ -114,7 +114,7 @@ " for X in inputs:\n", " Z = torch.sigmoid(torch.matmul(X, W_xz) + torch.matmul(H, W_hz) + b_z)\n", " R = torch.sigmoid(torch.matmul(X, W_xr) + torch.matmul(H, W_hr) + b_r)\n", - " H_tilda = torch.tanh(torch.matmul(X, W_xh) + R * torch.matmul(H, W_hh) + b_h)\n", + " H_tilda = torch.tanh(torch.matmul(X, W_xh) + torch.matmul(R * H, W_hh) + b_h)\n", " H = Z * H + (1 - Z) * H_tilda\n", " Y = torch.matmul(H, W_hq) + b_q\n", " outputs.append(Y)\n", @@ -149,18 +149,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "epoch 40, perplexity 149.477598, time 1.08 sec\n", - " - 分开 我不不你 我想你你的爱我 你不你的让我 你不你的让我 你不你的让我 你不你的让我 你不你的让我 你\n", - " - 不分开 我想你你的让我 你不你的让我 你不你的让我 你不你的让我 你不你的让我 你不你的让我 你不你的让我\n", - "epoch 80, perplexity 31.689210, time 1.10 sec\n", - " - 分开 我想要你 我不要再想 我不要再想 我不要再想 我不要再想 我不要再想 我不要再想 我不要再想 我不\n", - " - 不分开 我想要你 我不要再想 我不要再想 我不要再想 我不要再想 我不要再想 我不要再想 我不要再想 我不\n", - "epoch 120, perplexity 4.866115, time 1.08 sec\n", - " - 分开 我想要这样牵着你的手不放开 爱过 让我来的肩膀 一起好酒 你来了这节秋 后知后觉 我该好好生活 我\n", - " - 不分开 你已经不了我不要 我不要再想你 我不要再想你 我不要再想你 不知不觉 我跟了这节奏 后知后觉 又过\n", - "epoch 160, perplexity 1.442282, time 1.51 sec\n", - " - 分开 我一定好生忧 唱着歌 一直走 我想就这样牵着你的手不放开 爱可不可以简简单单没有伤害 你 靠着我的\n", - " - 不分开 你已经离开我 不知不觉 我跟了这节奏 后知后觉 又过了一个秋 后知后觉 我该好好生活 我该好好生活\n" + "epoch 40, perplexity 150.963116, time 1.11 sec\n", + " - 分开 我想你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我\n", + " - 不分开 我想你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我不你 我\n", + "epoch 80, perplexity 31.683252, time 1.16 sec\n", + " - 分开 我想要你的微笑 一定 \n", + " - 不分开 不知不觉 我不要再想 我不要再想 我不 我不 我不 我不 我不 我不 我不 我不 我不 我不 我不\n", + "epoch 120, perplexity 5.855305, time 1.49 sec\n", + " - 分开我 想要你这样打我妈妈 难道你手不会痛吗 我想你这样打我妈妈 难道你手 你怎么在我想 说散 你说我久\n", + " - 不分开 没有你在我有多烦熬多烦恼 没有你烦 我有多烦恼 没有你在我有多难熬多难多 没有你烦 我有多\n", + "epoch 160, perplexity 1.815359, time 1.04 sec\n", + " - 分开 我想要这样牵 对你依依不舍 连隔壁邻居都猜到我现在的感受 河边的风 在吹着头发飘动 牵着你的手 一\n", + " - 不分开 是后过风 迷不知蒙 我给再这样活 我该好好生活 不知不觉 你已经离开我 不知不觉 我跟了这节奏 \n" ] } ], @@ -188,18 +188,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "epoch 40, perplexity 1.022157, time 1.02 sec\n", - " - 分开手牵手 一步两步三步四步望著天 看星星 一颗两颗三颗四颗 连成线背著背默默许下心愿 看远方的星是否听\n", - " - 不分开暴风圈来不及逃 我不能再想 我不能再想 我不 我不 我不能 爱情走的太快就像龙卷风 不能承受我已无处\n", - "epoch 80, perplexity 1.014535, time 1.04 sec\n", - " - 分开始想像 爸和妈当年的模样 说著一口吴侬软语的姑娘缓缓走过外滩 消失的 旧时光 一九四三 在回忆 的路\n", - " - 不分开始爱像 不知不觉 你已经离开我 不知不觉 我跟了这节奏 后知后觉 又过了一个秋 后知后觉 我该好好\n", - "epoch 120, perplexity 1.147843, time 1.04 sec\n", - " - 分开都靠我 你拿着球不投 又不会掩护我 选你这种队友 瞎透了我 说你说 分数怎么停留 所有回忆对着我进攻\n", - " - 不分开球我有多烦恼多 牧草有没有危险 一场梦 我面对我 甩开球我满腔的怒火 我想揍你已经很久 别想躲 说你\n", - "epoch 160, perplexity 1.018370, time 1.05 sec\n", - " - 分开爱上你 那场悲剧 是你完美演出的一场戏 宁愿心碎哭泣 再狠狠忘记 你爱过我的证据 让晶莹的泪滴 闪烁\n", - " - 不分开始 担心今天的你过得好不好 整个画面是你 想你想的睡不著 嘴嘟嘟那可爱的模样 还有在你身上香香的味道\n" + "epoch 40, perplexity 1.018485, time 0.79 sec\n", + " - 分开的快乐是你 想你想的都会笑 没有你在 我有多难熬 没有你在我有多难熬多烦恼 没有你烦 我有多烦恼\n", + " - 不分开不 我不 我不要再想你 爱情来的太快就像龙卷风 离不开暴风圈来不及逃 我不能再想 我不能再想 我不 \n", + "epoch 80, perplexity 1.028805, time 0.74 sec\n", + " - 分开始想像 爸和妈当年的模样 说著一口吴侬软语的姑娘缓缓走过外滩 消失的 旧时光 一九四三 回头看 的片\n", + " - 不分开不 我不 我不 我不要再想你 爱情来的太快就像龙卷风 离不开暴风圈来不及逃 我不能再想 我不能再想 \n", + "epoch 120, perplexity 1.012296, time 0.73 sec\n", + " - 分开的话像语言暴力 我已无能为力再提起 决定中断熟悉 然后在这里 不限日期 然后将过去 慢慢温习 让我爱\n", + " - 不分开不 我不 我不能 爱情走的太快就像龙卷风 不能承受我已无处可躲 我不要再想 我不要再想 我不 我不 \n", + "epoch 160, perplexity 1.184842, time 0.74 sec\n", + " - 分开的快乐是你 想我想大声宣布 对你依依不舍 连隔壁邻居都猜到我现在的感受 河边的风 在吹着头发飘动 牵\n", + " - 不分开 快使用双截棍 哼哼哈兮 如果我有轻功 飞檐走壁 为人耿直不屈 一身正气 他们儿子我习惯 从小就耳濡\n" ] } ], @@ -225,7 +225,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [default]", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -239,7 +239,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.2" } }, "nbformat": 4, diff --git a/docs/chapter06_RNN/6.7_gru.md b/docs/chapter06_RNN/6.7_gru.md index e206a281bc94fb4e90c1970260f05374c47f396d..49d8c284a0ea5255382ffcff30b0b5f5a7cd9547 100644 --- a/docs/chapter06_RNN/6.7_gru.md +++ b/docs/chapter06_RNN/6.7_gru.md @@ -132,7 +132,7 @@ def gru(inputs, state, params): for X in inputs: Z = torch.sigmoid(torch.matmul(X, W_xz) + torch.matmul(H, W_hz) + b_z) R = torch.sigmoid(torch.matmul(X, W_xr) + torch.matmul(H, W_hr) + b_r) - H_tilda = torch.tanh(torch.matmul(X, W_xh) + R * torch.matmul(H, W_hh) + b_h) + H_tilda = torch.tanh(torch.matmul(X, W_xh) + torch.matmul(R * H, W_hh) + b_h) H = Z * H + (1 - Z) * H_tilda Y = torch.matmul(H, W_hq) + b_q outputs.append(Y)