当前位置:   article > 正文

手把手教你自制编程AI:训练2小时,RNN就能写自己的代码

ai做写程序

我们都知道,神经网络下围棋能赢柯洁、读X光照片好过医生、就连文本翻译上也快超过人类了……其实在写代码方面,神经网络也丝毫不落下风……用Linux源代码训练2小时,一个递归神经网络就能重写好它自己的代码,这是不是比程序员学得还快?

为了帮大家一窥究竟,AI100(rgznai100)编译了开发者Thibault Neveu的这篇文章,手把手教你做一个这样的神经网络。

作者 | Thibault Neveu

我认这很疯狂。开发者让神经网络学会了自己编程来重写它自己代码!好吧,咱们也试。

预备条件

  1. Tensorflow + 基本的深度学习技能

  2. 该项目的github代码库 - https://github.com/thibo73800/deep_generation/tree/master/c_code

  3. 我会在本文中快速回顾一下递归神经网络。但是,如果你对这个课题不甚了解,我相信以下两个资源能让你弄懂递归神经网络:

视频 - https://www.youtube.com/watch?v=iX5V1WpxxkY&t=2652s

文章 - http://colah.github.io/posts/2015-08-Understanding-LSTMs/

我不会在本文中详解本项目的所有环节。但我会仔细阐述其中的基本要点来让你理解整个项目。花点时间,亲手运行下文中给出的每一段代码,理解其中的逻辑。这很重要,毕竟,实践出真知。

接下来是正题,让我们开始吧!

数据库

跟其他监督训练一样,我们需要为神经网络提供一个数据集。这里我们使用C语言(如果用太简单的语言,就不好玩了)。我们直接用Linux github代码库中的c语言脚本作为训练数据。我已经把我们会用到的.c代码提取到本项目中。

代码地址-https://github.com/thibo73800/deep_generation/tree/master/c_code/dataset

首要问题:如何表示数据?

神经网络只能用于处理数字。对于其他形式的数据,它就无能为力了。因此,数据集中的每个字符都需要被翻译成这种形式(每个数字对应一个字符)。

示例:把字符转换为整数(int)

举例来说,这里用数字7表示字符“=”。为了在反向传播期间获得更好的收敛性,我们稍后会在独热编码(One-Hot Encoding)编码中表示每个数字。

# List all file in the dataset directory

all_file = os.listdir("dataset")

# Filter : Select

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/605140
推荐阅读
相关标签
  

闽ICP备14008679号