Как использовать tf.estimator.predict для одного элемента данных - PullRequest
0 голосов
/ 15 апреля 2019

Я новичок в tf.estimator, который ранее использовал более старую версию tenorflow. Переход в "input_fn" меня немного смутил. У меня есть DNNClassifier и пустой массив, содержащий один элемент данных (x), для которого я хотел бы предсказать значение "y".

Это код, который у меня есть.

dnn_clf = tf.estimator.DNNClassifier(feature_columns=feature_columns, n_classes=14, hidden_units=[60, 100], model_dir="/home/Ehoward14/mysite/dnn_model")

predict_fn = tf.estimator.inputs.numpy_input_fn(x=scaled_X,
                                                    y=None,
                                                    batch_size=1,
                                                    shuffle=False,
                                                    num_epochs=1)

y_pred = dnn_clf.predict(input_fn=predict_fn)

И я хотел бы напечатать одно значение y следующим образом:

    //This will only print one value
    for result in y_pred:
            print(result)

scaled_X содержит что-то вроде: [[1.42857143 0. 0. 16.36363636 0. 1.81818182 # 012 6.66666667 0. 2.896 20. 0. 0. # 012 0. 20. 16,66666667 0.]]

Этот код возвращает ошибку:

for result in y_pred:
  File "/usr/lib/python3.6/site- 
packages/tensorflow/python/estimator/estimator.py", line 543, in predict
features, None, model_fn_lib.ModeKeys.PREDICT, self.config)
  File "/usr/lib/python3.6/site- 
packages/tensorflow/python/estimator/estimator.py", line 1133, in _call_model_fn
     model_fn_results = self._model_fn(features=features, **kwargs)
  File "/usr/lib/python3.6/site- 
   packages/tensorflow/python/estimator/canned/dnn.py", line 385, in _model_fn
    batch_norm=batch_norm)
  File "/usr/lib/python3.6/site- 
   packages/tensorflow/python/estimator/canned/dnn.py", line 179, in _dnn_model_fn
    'Given type: {}'.format(type(features)))
    ValueError: features should be a dictionary of `Tensor`s. Given type: <class 'tensorflow.python.framework.ops.Tensor'>

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

Заранее спасибо!

...