LSTM需要训练的参数是哪些?
来源:7-17 LSTM单元内部结构实现
慕桂英雄
2019-06-10
h向量还有state 是不可训练的,在sess.run的过程中会改变的参数有哪些?
只是ix,ih,ib,cx,ch,cb 那12个转换矩阵吗?
还有 with tf.variable_scope(
‘embedding’, initializer = embedding_initializer):
embeddings = tf.get_variable(
‘embedding’,
[vocab_size, hps.num_embedding_size],
tf.float32)
# [1, 10, 7] -> [embeddings[1], embeddings[10], embeddings[7]]
embed_inputs = tf.nn.embedding_lookup(embeddings, inputs)
这里这个embedding矩阵,再由输入的词的id从中找出词向量,意思是这些词向量也是要训练的吗??
词向量不是一开始就求应该给定的吗?
1回答
-
萌新多多关照
2019-06-17
个人理解哈:
embed_inputs = tf.nn.embedding_lookup(embeddings, inputs)这个是为了查找对应输入词向量的id,即开始对数据进行处理,有一个专门的函数将中文频率划分,并进行id标记,存储到统一的文件中。下文有这样一个函数
rnn_outputs, _ =tf.nn.dynamic_rnn(cell,embed_inputs,initial_state=initial_state)第二个参数对应的是输入,即x。
lstm里面训练的应该是各种权重参数,这个里面有一些较详细的解释:
https://www.jianshu.com/p/dcec3f07d3b5
自己理解,可能有错误
00
相似问题