ValueError из оценщика тензорного потока RNNClassifier с заданием gcloud ml-engine - PullRequest
0 голосов
/ 01 апреля 2019

Я работаю над файлом task.py для отправки задания gcloud MLEngine. Ранее я успешно использовал tenorflow.estimator.DNNClassifier для отправки заданий с моими данными (которые состоят исключительно из 8 столбцов последовательных числовых данных для цен и объема криптовалюты; без категориальных значений).

Теперь я переключился на RNNClassifier для оценки тензорного потока. Это мой текущий код для соответствующей части:

def get_feature_columns():
  return [
      tf.feature_column.numeric_column(feature, shape=(1,))
      for feature in column_names[:len(column_names)-1]
  ]

def build_estimator(config, learning_rate, num_units):
  return tf.contrib.estimator.RNNClassifier(
    sequence_feature_columns=get_feature_columns(),
    num_units=num_units,
    cell_type='lstm',
    rnn_cell_fn=None,
    optimizer=tf.train.AdamOptimizer(learning_rate=learning_rate),
    config=config)

estimator = build_estimator(
    config=run_config,
    learning_rate=args.learning_rate,
    num_units=[32, 16])

tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec)

Однако я получаю следующую ошибку ValueError:

ValueError: All feature_columns must be of type _SequenceDenseColumn. You can wrap a sequence_categorical_column with an embedding_column or indicator_column. Given (type <class 'tensorflow.python.feature_column.feature_column_v2.NumericColumn'>): NumericColumn(key='LTCUSD_close', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None)

Я не понимаю этого, поскольку данные не категоричны.

1 Ответ

0 голосов
/ 08 апреля 2019

вы получили эту ошибку, потому что вы используете числовой столбец объекта, тогда как этот тип оценщика может принимать только столбцы объекта последовательности, как вы можете видеть это в init init .

Таким образом, вместо использования числового столбца вы должны использовать sequence_numeric_column .

...