【问题标题】:Initializing the embedding tensor with a local numpy array使用本地 numpy 数组初始化嵌入张量
【发布时间】:2018-01-04 02:49:40
【问题描述】:

我想从具有相同形状的本地 numpy 数组初始化词嵌入层,这是来自另一个模型的预训练嵌入。 如果我没有添加分区参数也没关系。 def word_embedding(shape, dtype=tf.float32, name='word_embedding'):

  f = open('./cnn_embed_array', 'r')
  embedding_array = pickle.load(f)
  f.close()
  print 'embedding_array loaded......'
  with tf.device('/cpu:0'), tf.variable_scope(name):
    return tf.get_variable('embedding', shape, dtype=dtype, initializer=tf.constant_initializer(embedding_array), trainable = False) 

但是如果我在 tf.get_variable 函数中添加partitioner=tf.fixed_size_partitioner(20),它会给我一个错误,说参数是多余的。

partitionerparam 倾向于加快训练速度。我可以通过其他方式添加参数吗?

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    如果trainable = False,则变量不会被学习,因此分区对您没有帮助。另一方面,如果您希望更新此变量,则需要设置trainable = True

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2016-02-16
      • 2018-12-04
      • 2011-05-30
      • 1970-01-01
      相关资源
      最近更新 更多