RNN代码解读之char-RNN with TensorFlow(model.py)

最近一直在学习RNN的相关知识,个人认为相比于CNN各种模型在detection/classification/segmentation等方面超人的表现,RNN还有很长的一段路要走,毕竟现在的nlp模型单从output质量上来看只是差强人意,要和人相比还有一段距离。CNN+RNN的任务比如image caption更是有很多有待研究和提高的地方。关于对CNN和RNN相关内容的学习和探讨,我将会在近期
摘要由CSDN通过智能技术生成

此工程解读链接(建议按顺序阅读):
RNN代码解读之char-RNN with TensorFlow(model.py)
RNN代码解读之char-RNN with TensorFlow(train.py)
RNN代码解读之char-RNN with TensorFlow(util.py)
RNN代码解读之char-RNN with TensorFlow(sample.py)

最近一直在学习RNN的相关知识,个人认为相比于CNN各种模型在detection/classification/segmentation等方面超人的表现,RNN还有很长的一段路要走,毕竟现在的nlp模型单从output质量上来看只是差强人意,要和人相比还有一段距离。CNN+RNN的任务比如image caption更是有很多有待研究和提高的地方。

关于对CNN和RNN相关内容的学习和探讨,我将会在近期更新对一些经典论文的解读以及自己的看法,届时欢迎大家给予指导。

当然,CS231n中有一句名言“Don’t think too hard, just cross your fingers.” 想法还是要落地才可以看到成果,那么我们今天就一起来看一下大牛Adrew Karparthy的char-RNN模型,AK使用lua基于torch写的,git上已经有人及时的复现了TensorFlow with Python版本(https://github.com/sherjilozair/char-rnn-tensorflow)。

网上已经有很多相关的解析了,但大部分只是针对model进行解释,这对于整体模型的宏观理解以及TensorFlow的学习都是很不利的。因此,这里我会给出自己对所有代码的理解,若有错误欢迎及时指正。

这一个版本的代码共分为四个模块:model.py,train.py, util.py以及sample.py,我们将按照这个顺序,分四篇博文对四个模块进行梳理。我在代码中对所有我认为重要的地方都写了注释,有的部分甚至每一行都有明确的注释,但难免有的基本方法会让人产生疑惑。面对这种问题,我强烈建议大家一边debug一步一步的执行看结果,一边百度或者google。这样梳理一遍代码一定会全身舒畅,豁然开朗,感觉打开了新世界的大门,对于RNN模型的TensorFlow实现也会更有把握。

当然理解这一个工程并不是我们的终极目的,针对后面跟新的paper中提到的有创新的方法,我们也会再此模型的基础上进一步实现,走上我们的科研之路。

废话说太多了,下面我们先开始看最重点的model.py
注意:这里注释解释的只是训练过程中的理解,在infer过程中batch=1,sequence=1,大体理解没有差别,但是具体思想还需要大家到时候再推敲推敲。此外,此class中的sample方法这一节不讨论,到第四节sample.py的时候一并讨论。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值