Python 如何将tf.FixedLenFeature与带有parse_示例的tf.string一起使用,并从_feature_列中输入_?

Python 如何将tf.FixedLenFeature与带有parse_示例的tf.string一起使用,并从_feature_列中输入_?,python,tensorflow,Python,Tensorflow,我在TFRecords中存储了一些数据,在byteslist中存储了一些分类数据。我能够亲自检查数据并验证数据是否存在。一个示例记录如下所示: features { feature { key: "label" value { int64_list { value: 1 } } } feature { key: "col1" value { float_list { value

我在TFRecords中存储了一些数据,在byteslist中存储了一些分类数据。我能够亲自检查数据并验证数据是否存在。一个示例记录如下所示:

features {
  feature {
    key: "label"
    value {
      int64_list {
        value: 1
      }
    }
  }
  feature {
    key: "col1"
    value {
      float_list {
        value: -1.15293061733
      }
    }
  }
  feature {
    key: "col2"
    value {
      bytes_list {
        value: "vPlNwEdfGNA8"
      }
    }
  }
}
现在,当我尝试使用
tf.contrib.layers.input\u from\u feature\u columns
将列转换为张量时,出现了一个错误,如下所示

features_batch = tf.parse_example(
    serialized_batch,
    features={
        'col1': tf.FixedLenFeature([], tf.float32),
        # 'col2': tf.FixedLenFeature([], tf.string, default_value=''), # This does not work
        'col2': tf.VarLenFeature(tf.string), # This works
        'label': tf.FixedLenFeature([], tf.int64),
    })

# Convert columns to Tensor
col2_hash = tf.contrib.layers.sparse_column_with_hash_bucket('col2', hash_bucket_size=1e6)

deep_cols = [
    tf.contrib.layers.real_valued_column('col1'),
    tf.contrib.layers.embedding_column(col2_hash, dimension=8)
]

deep_batch = tf.contrib.layers.input_from_feature_columns(features_batch, deep_cols)
错误是:

    deep_batch = tf.contrib.layers.input_from_feature_columns(features_batch, deep_cols)
  File "/.virtualenvs/analytics-models/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/feature_column_ops.py", line 109, in input_from_feature_columns
    transformed_tensor = transformer.transform(column)
  File "/.virtualenvs/analytics-models/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/feature_column_ops.py", line 583, in transform
    feature_column.insert_transformed_feature(self._columns_to_tensors)
  File "/.virtualenvs/analytics-models/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/feature_column.py", line 868, in insert_transformed_feature
    self.sparse_id_column.insert_transformed_feature(columns_to_tensors)
  File "/.virtualenvs/analytics-models/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/feature_column.py", line 473, in insert_transformed_feature
    sparse_values = sparse_tensor.values
AttributeError: 'Tensor' object has no attribute 'values'
如果我将它解析为
tf.VarLenFeature
,这是可行的,但它不是稀疏的,所以这样处理它似乎很奇怪


你知道为什么我不能将字符串值导入到
tf.FixedLenFeature
中,然后用hash\u bucket将
sparse\u列折叠起来吗?

不支持;FixedLenFeature不生成SPASRSetSensor,因此稀疏列无法使用它。