Tensorflow 使用嵌入时是否应将trainable设置为True?
当我使用RNN进行分类时,我应该在初始化嵌入时设置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
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,您可以让网络自行学习嵌入
这是正常的还是应该正常化
是,嵌入权重具有指定值是正常的,除非对其进行约束。如果希望网络具有较小的权重,可以使用正则化,例如