Прогнозирование с помощью оценки тензорного потока.DNNRegressor - PullRequest
0 голосов
/ 07 июня 2018

Я довольно новичок в тензорном потоке, и для того, чтобы научиться использовать его, я сейчас пытаюсь реализовать очень простой DNNRegressor, который предсказывает движение объекта в 2D, но я не могу сработать с функцией предсказания.

для этой цели у меня есть некоторые входные данные - координаты x и y объекта за несколько предыдущих временных шагов.Я хочу, чтобы на выходе была получена разумная оценка местоположения объекта, если он продолжает двигаться в том же направлении с той же скоростью.

Я использую версию tenorflow 1.8.0

Мой регрессоропределяется следующим образом:

CSV_COLUMN_NAMES = ['X_0', 'X_1', 'X_2', 'X_3', 'X_4', 'Y_0', 'Y_1', 'Y_2', 'Y_3', 'Y_4', 'Y_5']

my_feature_columns = []
for key in columnNames:
     my_feature_columns.append(tf.feature_column.numeric_column(key=key))


regressor = estimator.DNNRegressor(feature_columns=my_feature_columns,
                                           label_dimension=1,
                                           hidden_units=hidden_layers,
                                           model_dir=MODEL_PATH,
                                           dropout=dropout,
                                           config=test_config)

мой ввод, как и в уроке по тензорному потоку на готовых оценках, является диктом со столбцом в качестве ключа.Пример для этого ввода можно увидеть здесь .

regressor.train ( arguments ) и regressor.evaluate ( arguments ), кажется, работаютпросто отлично, но предсказать - нет.

параллельно коду на сайте тензорного потока Я попытался сделать это:

y_pred = regressor.predict(input_fn=eval_input_fn(X_test, labels=None, batch_size=1))

и похоже, что это работает какхорошо.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я ничего не могу получить от этого y_pred объекта.

, когда я ввожу print(y_pred), я получаю <generator object Estimator.predict at 0x7fd9e8899888>, что подсказываетдля меня это должно быть в состоянии перебрать его, но

    for elem in y_pred:
        print(elem)

приводит к TypeError: unsupported callable

Опять же, я новичок в этом, и я извиняюсь, если ответ очевиден, ноБуду очень признателен, если кто-нибудь скажет мне, что я здесь делаю не так.

1 Ответ

0 голосов
/ 07 июня 2018

От input_fn до regressor.predict должна быть функция.См. определение :

input_fn: функция, которая создает функции.

Вам необходимо изменить код на:

y_pred = regressor.predict(input_fn=eval_input_fn)
...