作家
登录

使用TENSORFLOW训练循环神经网络语言模型

作者: 来源: 2017-08-29 09:10:08 阅读 我要评论

代码解析:

这个函数将一个原始数据list转换为多个批次的数据,即[batch_len, batch_size, num_steps]。

起首,法度榜样每一次取了num_steps个词作为一个句子,即x,以这num_steps个词后面的一个词作为它的下一?猜测,即为y。如许,我们起首把原始数据整顿成了batch_len * batch_size个x和y的表示,类似于已知x求y的分类问题。

为了知足随机梯度降低的须要,我们还须要把数据整顿成一个个小的批次,每次胃荷琐批次的数据给TensorFlow来更新权重,如许,数据就整顿为[batch_len, batch_size, num_steps]的格局。

打印部分数据:

  1. train_data, valid_data, test_data, words, word_to_id = ptb_raw_data('simple-examples/data'
  2. x_train, y_train = ptb_producer(train_data) 
  3. print(x_train.shape) 
  4. print(y_train.shape) 
输出: 
  1. (14524, 64, 20) 
  2. (14524, 64) 
可见我们获得了14524个批次的数据,每个批次的练习集维度为[64, 20]。 
  1. print(' '.join(to_words(x_train[100, 3], words))) 
第100个批次的第3句话为: 
  1. despite steady sales growth <eos> magna recently cut its quarterly dividend in half and the company 's class a shares 
  1. print(words[np.argmax(y_train[100, 3])]) 
它的下一?词为: 
  1. the 
 构建模型 设备项 
  1. class LMConfig(object): 
  2.     """language model 设备项""" 
  3.     batch_size = 64       # 每一批数据的大年夜小 
  4.     num_steps = 20        # 每一个句子的长度 
  5.     stride = 3            # 取数据时的步长 
  6.  
  7.     embedding_dim = 64    # 词向量维度 
  8.     hidden_dim = 128      # RNN隐蔽层维度 
  9.     num_layers = 2        # RNN层数 
  10.  
  11.     learning_rate = 0.05  # 进修率 
  12.     dropout = 0.2         # 每一层后的丢弃概率 
攫取输入 让模许可以按批次的攫取数据。 
  1. class PTBInput(object): 
  2.     """按批次攫取数据""" 
  3.     def __init__(self, config, data): 
  4.         self.batch_size = config.batch_size 
  5.         self.num_steps = config.num_steps 
  6.         self.vocab_size = config.vocab_size # 词汇表大年夜小 
  7.  
  8.         self.input_data, self.targets = ptb_producer(data, 
  9.             self.batch_size, self.num_steps) 

      推荐阅读

      调试神经网络让人抓狂?这有16条锦囊妙计送给你

    应用网格搜刮或随机搜刮或设备文件来调剂超参数 不要手动检查所有的参数,如许耗时并且低效。我平日对所有参数应用全局设备,检查运行结不雅之后,我拒绝一步研究改进的偏向。如不雅这种办法没有赞助,那么你可以应>>>详细阅读


    本文标题:使用TENSORFLOW训练循环神经网络语言模型

    地址:http://www.17bianji.com/lsqh/36985.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)