本文首发于滴滴云公众号:https://mp.weixin.qq.com/s/H0AKuKn1XQDEa06jDm3Nug
用我的 滴滴云AI大师码 0220 在滴滴云上购买GPU/vGPU/机器学习产品可享受9折优惠,点击 www.didiyun.com 前往滴滴云官网.
导读
谈到神经网络,相信是当下比较火的一个词。它的发展不是一蹴而就,而是通过各代人的智慧,经过一次一次的优化,迭代才慢慢建立起当下的各种网络结构,从最简单的 MLP,到 CNN,RNN,再到增强网络,对抗网络。每一种网络结构的诞生,都是为了解决某一类特定场景的问题。本文中涉及的 LSTM 网络,就是 RNN 网络的一种变体。
工欲善其事,必先利其器。本文将通过对比几种不同的实现,逐步的建立起使用 LSTM 的方法,并针对各个实现,谈谈如何进行性能分析和性能优化。
本文特别感谢滴滴云提供的高性价比 P4 实例,让测试能够顺利进行。测试环境如下:
背景知识:什么是 LSTM
当你在阅读我文章的时候,你的大脑其实就是一个类似 LSTM 的执行过程了。在阅读当前文字的时候,大脑会通过之前阅读过的文字,来帮助大脑理解整个句子。也就是说,大脑对于句子、文本的理解,是有记忆过程的。而不是读一个字,忘了前面的字。
RNN 就是为了解决这类问题引入的,它通过环路,解决了信息的持久化问题,也就是引入了记忆。
但是,针对一些特殊的场景,有时候长时间的记忆不是必须的,甚至记忆太持久,会带来一些问题。比如在翻译过程中,一句话的上下文是有限的,有时候只需要依赖最近的单词就可以。LSTM,也叫做长短期记忆网络,就是为了解决这类问题。
详细可以阅读以下这篇文章:https://colah.github.io/posts/2015-08-Understanding-