gpt4 book ai didi

python - 特征列预训练嵌入

转载 作者:行者123 更新时间:2023-12-01 01:46:48 25 4
gpt4 key购买 nike

如何通过 tf.feature_column.embedding_column 使用预训练嵌入。

我在 tf.feature_column.embedding_column 中使用了 pre_trained 嵌入。但这不起作用。错误是

The error is :

ValueError:如果指定,初始化程序必须可调用。嵌入column_name:itemx

Here's my code:

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)

it reports the error:

类型错误:() 获得意外的关键字参数“dtype”

最佳答案

我也在这里提出一个问题https://github.com/tensorflow/tensorflow/issues/20663

终于我找到了解决这个问题的正确方法。虽然。我不清楚为什么上面的答案没有效果!如果你知道这个问题,感谢给我一些建议!!

好的~~~~这是当前的解决方案。其实从这里开始Feature Columns Embedding lookup

code:

itemx_vocab = tf.feature_column.categorical_column_with_vocabulary_file(
key='itemx',
vocabulary_file=FLAGS.vocabx)

embedding_initializer_x = tf.contrib.framework.load_embedding_initializer(
ckpt_path='model.ckpt',
embedding_tensor_name='w_in',
new_vocab_size=itemx_vocab.vocabulary_size,
embedding_dim=emb_size,
old_vocab_file='FLAGS.vocab_emb',
new_vocab_file=FLAGS.vocabx
)
itemx_emb = tf.feature_column.embedding_column(itemx_vocab,
dimension=128,
initializer=embedding_initializer_x,
trainable=False)

关于python - 特征列预训练嵌入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51237419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com