tensorflow交叉特征使用的是crossed_column,对传入的特征可以做笛卡尔积然后求hash取模。这里比较重要的是tensorflow会对所有变量都取一个默认的名字。

交叉特征的默认名字在代码feature_column.py中的class _CrossedColumn(中定义。如下:

def name(self):
    feature_names = []
    for key in _collect_leaf_level_keys(self):
      if isinstance(key, _FeatureColumn):
        feature_names.append(key.name)
      else:  # key must be a string
        feature_names.append(key)
    return '_X_'.join(sorted(feature_names))

以上。


original refer