【TensorFlow】踩坑记

我的未来我决定 提交于 2020-01-18 02:23:17

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.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!