Tensorflow 使用嵌入时是否应将trainable设置为True?

Tensorflow 使用嵌入时是否应将trainable设置为True?,tensorflow,word,embedding,Tensorflow,Word,Embedding,当我使用RNN进行分类时,我应该在初始化嵌入时设置trainable=True 我不确定初始化嵌入时是否应设置trainable=True。 在正常情况下,如果没有预先训练好的嵌入文件,我应该初始化单词嵌入矩阵,如下所示: bound = -1 # for example initializer = tf.random_uniform_initializer(minval=-bound, maxval=bound) embedding = tf.get_variable(name=variabl

当我使用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

这是正常的还是应该正常化

初始化嵌入时是否应将trainable设置为True

是的,因为否则权重只是初始化的随机值。通过设置trainable True,您可以让网络自行学习嵌入

这是正常的还是应该正常化

是,嵌入权重具有指定值是正常的,除非对其进行约束。如果希望网络具有较小的权重,可以使用正则化,例如