下载
中文
注册

TensorFlow与Rec SDK接口对应关系

在进行模型迁移时,需要根据实际的模型代码以及代码上下文判断是否使用到稀疏表相关的接口,如果是与稀疏表相关的TensorFlow接口,需要修改为Rec SDK的接口,接口对应关系如表1所示。

表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)