如何在中使用预训练的嵌入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'
2 回答

侃侃无极
TA贡献2051条经验 获得超10个赞
您也可以将数组包装成如下函数:
some_matrix = np.array([[0,1,2],[0,2,3],[5,6,7]])
def custom_init(shape, dtype):
return some_matrix
embedding_feature = tf.feature_column.embedding_column(itemx_vocab,
dimension=3,
initializer=custom_init
)
这是一种骇人听闻的方法,但却能胜任。
添加回答
举报
0/150
提交
取消