TensorFlow与Rec SDK接口对应关系
在进行模型迁移时,需要根据实际的模型代码以及代码上下文判断是否使用到稀疏表相关的接口,如果是与稀疏表相关的TensorFlow接口,需要修改为Rec SDK的接口,接口对应关系如表1所示。
TensorFlow接口 |
Rec SDK接口 |
接口功能描述 |
---|---|---|
MutableHashTable、tf.Variable |
create_table |
创建稀疏表 |
tf.embedding_lookup、mutable_hash_table.lookup(mutable_hash_table是MutableHashTable的实例)等 |
sparse_lookup |
查询稀疏表 |
接口示例
- Tensorflow示例:
1 2 3 4 5 6
import tensorflow as tf from tensorflow.contrib.lookup import MutableHashTable # ....... user_id = features["user_ids"] user_emb_table = MutableHashTable(key_dtype=tf.int64, value_dtype=tf.float32, default_value=0.0) user_emb = user_emb_table.lookup(user_id)
- Rec SDK示例:
1 2 3 4 5
import tensorflow as tf from mx_rec.core.embedding import create_table, sparse_lookup # ....... user_emb_table = create_table(key_dtype=tf.int64, value_dtype=tf.float32, name="user_table", dim=tf.TensorShape([1]), emb_initializer=tf.compat.v1.truncated_normal_initializer(mean=10), device_vocabulary_size= 800000, host_vocabulary_size=0) user_emb = sparse_lookup(user_emb_table, feature_spec_list, batch_size*16, is_train=True, name=user_emb_table.table_name + "_lookup", modify_graph=False)
父主题: 模型训练介绍