作家
登录

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

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

  •  
  •  
  •     def input_embedding(self): 
  •         """将输入转换为词向量表示""" 
  •         with tf.device("/cpu:0"): 
  •             embedding = tf.get_variable( 
  •                 "embedding", [self.vocab_size, 
  •                     self.embedding_dim], dtype=tf.float32) 
  •             _inputs = tf.nn.embedding_lookup(embedding, self._inputs) 
  •  
  •         return _inputs 
  •  
  •  
  •     def rnn(self): 
  •         """rnn模型构建""" 
  •         def lstm_cell():  # 根本的lstm cell 
  •             return tf.contrib.rnn.BasicLSTMCell(self.hidden_dim, 
  •                 state_is_tuple=True
  •  
  •         def gru_cell():   # gru cell,速度更快 
  •             return tf.contrib.rnn.GRUCell(self.hidden_dim) 
  •  
  •         def dropout_cell():    # 在每个cell后添加dropout 
  •             if (self.rnn_model == 'lstm'): 
  •                 cell = lstm_cell() 
  •             else
  •                 cell = gru_cell() 
  •             return tf.contrib.rnn.DropoutWrapper(cell, 
  •                 output_keep_prob=self.dropout) 
  •  
  •         cells = [dropout_cell() for _ in range(self.num_layers)] 
  •         cell = tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True)  # 独裁rnn 
  •  
  •         _inputs = self.input_embedding() 
  •         _outputs, _ = tf.nn.dynamic_rnn(cell=cell, 
  •             inputs=_inputs, dtype=tf.float32) 

      推荐阅读

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

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


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

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

  • 关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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