0
DynamicRnnEstimatorを使用しようとしていますが、「リスト」オブジェクトに「キー」という属性がありません。Tensorflow DynamicRnnEstimator AttributeError: 'list'オブジェクトに 'key'属性がありません
コード:ここで
feature_names = [
'FeatureA',
'FeatureB',
'FeatureC',
'FeatureD',
'FeatureE',
'FeatureF']
...
feature_columns = [tf.feature_column.numeric_column(k) for k in feature_names]
print (feature_columns)
estimator = tf.contrib.learn.DynamicRnnEstimator(problem_type = constants.ProblemType.CLASSIFICATION,
prediction_type = rnn_common.PredictionType.SINGLE_VALUE,
sequence_feature_columns = [feature_columns],
context_feature_columns = None,
num_units = 5,
num_classes = 11,
cell_type = 'lstm',
optimizer = 'SGD',
model_dir = "model",
learning_rate = 0.1)
estimator.fit(input_fn=lambda: input_fn("train.csv"), steps=STEPS)
は出力です:
[_NumericColumn(key='FeatureA', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None), _NumericColumn(key='FeatureB', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None), _NumericColumn(key='FeatureC', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None), _NumericColumn(key='FeatureD', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None), _NumericColumn(key='FeatureE', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None), _NumericColumn(key='FeatureF', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None)]
...
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-83-bea117372333> in <module>()
26 learning_rate = 0.1)
27
---> 28 estimator.fit(input_fn=lambda: input_fn("train.csv"), steps=STEPS)
/home/judge/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/tensorflow/python/util/deprecation.pyc in new_func(*args, **kwargs)
314 'in a future version' if date is None else ('after %s' % date),
315 instructions)
--> 316 return func(*args, **kwargs)
317 return tf_decorator.make_decorator(func, new_func, 'deprecated',
318 _add_deprecated_arg_notice_to_docstring(
/home/judge/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.pyc in fit(self, x, y, input_fn, steps, batch_size, monitors, max_steps)
478 hooks.append(basic_session_run_hooks.StopAtStepHook(steps, max_steps))
479
--> 480 loss = self._train_model(input_fn=input_fn, hooks=hooks)
481 logging.info('Loss for final step: %s.', loss)
482 return self
/home/judge/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.pyc in _train_model(self, input_fn, hooks)
984 global_step_read_tensor = training_util._get_or_create_global_step_read() # pylint: disable=protected-access
985 with ops.control_dependencies([global_step_read_tensor]):
--> 986 model_fn_ops = self._get_train_ops(features, labels)
987 ops.add_to_collection(ops.GraphKeys.LOSSES, model_fn_ops.loss)
988 all_hooks.extend(hooks)
/home/judge/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.pyc in _get_train_ops(self, features, labels)
1200 `ModelFnOps` object.
1201 """
-> 1202 return self._call_model_fn(features, labels, model_fn_lib.ModeKeys.TRAIN)
1203
1204 def _get_eval_ops(self, features, labels, metrics):
/home/judge/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.pyc in _call_model_fn(self, features, labels, mode, metrics)
1164 if 'model_dir' in model_fn_args:
1165 kwargs['model_dir'] = self.model_dir
-> 1166 model_fn_results = self._model_fn(features, labels, **kwargs)
1167
1168 if isinstance(model_fn_results, model_fn_lib.ModelFnOps):
/home/judge/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/dynamic_rnn_estimator.pyc in _dynamic_rnn_model_fn(features, labels, mode)
478 sequence_input = build_sequence_input(features,
479 sequence_feature_columns,
--> 480 context_feature_columns)
481 dropout = (dropout_keep_probabilities
482 if mode == model_fn.ModeKeys.TRAIN
/home/judge/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/dynamic_rnn_estimator.pyc in build_sequence_input(features, sequence_feature_columns, context_feature_columns, weight_collections, scope)
190 features.update(layers.transform_features(
191 features,
--> 192 list(sequence_feature_columns) + list(context_feature_columns or [])))
193 sequence_input = layers.sequence_input_from_feature_columns(
194 columns_to_tensors=features,
/home/judge/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/feature_column_ops.pyc in transform_features(features, feature_columns)
642 """
643 columns_to_tensor = features.copy()
--> 644 check_feature_columns(feature_columns)
645 transformer = _Transformer(columns_to_tensor)
646 for column in sorted(set(feature_columns), key=lambda x: x.key):
/home/judge/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/feature_column_ops.pyc in check_feature_columns(feature_columns)
765 seen_keys = set()
766 for f in feature_columns:
--> 767 key = f.key
768 if key in seen_keys:
769 raise ValueError('Duplicate feature column key found for column: {}. '
AttributeError: 'list' object has no attribute 'key'
は、トレースを見ると、それはsequence_feature_columnsとcontext_feature_columnsを連結します。結果を見始めるが、キーは見つからない。私はfeature_namesを印刷して、キーを持っています。
感謝を。私は今まで、コール引数を変更した: sequence_feature_columns = feature_columns が、取得 はAttributeError:「_NumericColumn」オブジェクトには属性「insert_transformed_feature」私はそれをお勧めするために嫌いな限り –
は、それがDynamicRnnEstimator'が更新されていない 'のような音を持っていませんコア 'tf.feature_columns'をまだ使用していません。 'tf.contrib.layers.real_valued_column'を使うとこの問題を回避できます。これで問題が解決した場合は、バグや機能のリクエストを自由に記入してください。 –