【发布时间】:2018-12-29 06:40:18
【问题描述】:
当我使用RNN进行分类时,我应该在初始化嵌入时设置trainable=True吗?
我不确定在初始化嵌入时是否应该设置trainable=True。
在正常情况下,如果没有预训练的嵌入文件,我应该像这样初始化词嵌入矩阵:
bound = -1 # for example
initializer = tf.random_uniform_initializer(minval=-bound, maxval=bound)
embedding = tf.get_variable(name=variable_name,
shape=[vocab_size, embedding_size],
dtype=tf.float32,
initializer=initializer)
并且参数trainable默认为True。
原来的样子: 一些 -0.2300489 , -0.7200954 , 0.5842655 , 0.7981529 , -0.7432661 ... -0.12576556, 0.3133614 , -0.78932405, 0.38539863, 0.5543554 我认为它有效,因为所有值都在 [-1,1] 中。
但是,当经过 RNN-Classifiy 模型训练后,原始嵌入值将变为: 一些 6.2576456 5.708158 -6.7240534 -7.060843 -6.9045954 ... 0.65268683 6.7722726 5.766225 6.743621 -5.3276224 一 -0.9980886 0.8692293 -0.24473047 0.40041256 -0.8348596 ... -0.9133856 -0.6819365 -0.44985628 -0.43600297 0.51928043 帮助 -3.8815696 -6.9417324 -7.086827 -2.7665734 3.8522656 ... 2.8540928 6.841772 2.7118142 7.89535 1.4688607
这是正常的还是我应该正常化它?
【问题讨论】:
标签: tensorflow word embedding