1. tf.estimator.BoostedTreesRegressor
Error:
For now, only support Numeric column with shape less than 2, but column `estimator_features` got: (1, 234)
运行环境:
tf.__version__ == '1.14.0'
源码:
/tensorflow_estimator/python/estimator/canned/boosted_trees.py
def _get_transformed_features_and_merge_with_previously_transformed(...):
...
for column in all_sorted_columns:
...
elif isinstance(column, (feature_column_lib.NumericColumn, fc_old._NumericColumn)):
source_name = column.name
tensor = transformed_features[column]
# TODO(tanzheny): Add support for multi dim with rank > 2
if len(column.shape) > 1:
raise ValueError('For now, only support Numeric column with shape less '
'than 2, but column `{}` got: {}'.format(
source_name, column.shape))
unstacked = array_ops.unstack(tensor, axis=1)
if not bucket_boundaries_dict:
result_features.extend(unstacked)
else:
assert source_name in bucket_boundaries_dict
num_float_features = column.shape[0] if column.shape else 1
assert num_float_features == len(bucket_boundaries_dict[source_name])
bucketized = boosted_trees_ops.boosted_trees_bucketize(
unstacked, bucket_boundaries_dict[source_name])
result_features.extend(bucketized)
...
解决方法:
这是1.14的版本问题,在后续的版本中已经支持shape==2.