为了账号安全,请及时绑定邮箱和手机立即绑定

特征列预训练嵌入

特征列预训练嵌入

拉丁的传说 2021-04-13 10:13:28
如何在中使用预训练的嵌入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

                                                       )


这是一种骇人听闻的方法,但却能胜任。


查看完整回答
反对 回复 2021-04-27
  • 2 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号