【发布时间】:2018-12-16 15:47:25
【问题描述】:
如何通过tf.feature_column.embedding_column 使用预训练嵌入。
我使用了pre_trained 嵌入tf.feature_column.embedding_column。但它不起作用。错误是
错误是:
ValueError:如果指定,初始化程序必须是可调用的。 column_name 的嵌入:itemx
这是我的代码:
weight, vocab_size, emb_size = _create_pretrained_emb_from_txt(FLAGS.vocab,
FLAGS.pre_emb)
W = tf.Variable(tf.constant(0.0, shape=[vocab_size, emb_size]),
trainable=False, name="W")
embedding_placeholder = tf.placeholder(tf.float32, [vocab_size, emb_size])
embedding_init = W.assign(embedding_placeholder)
sess = tf.Session()
sess.run(embedding_init, feed_dict={embedding_placeholder: weight})
itemx_vocab = tf.feature_column.categorical_column_with_vocabulary_file(
key='itemx',
vocabulary_file=FLAGS.vocabx)
itemx_emb = tf.feature_column.embedding_column(itemx_vocab,
dimension=emb_size,
initializer=W,
trainable=False)
我已经尝试过初始化程序 = lambda w:W。像这样:
itemx_emb = tf.feature_column.embedding_column(itemx_vocab,
dimension=emb_size,
initializer=lambda w:W,
trainable=False)
报错:
TypeError: () 得到了一个意外的关键字参数 'dtype'
【问题讨论】:
标签: python tensorflow tensorflow-estimator