2016-12-13 4 views
0

Я использую Tensorflow, обученный широкой сети и хочу предсказать некоторые значения. Я использовал сеть как Tensorflow iris prediction example, но изменил часть предсказания изПорядок прогнозов тензорного потока

new_samples = np.array([[6.4, 3.2, 4.5, 1.5], [5.8, 3.1, 5.0, 1.7]], dtype=float) 
y = list(classifier.predict(new_samples, as_iterable=True)) 

с возможностью считывать данные из моего теста-файл в моем вводе-функции:

y = list(classifier.predict(input_fn=lambda: input_fn(test_file_name, batch_size, batch_number))) 

После некоторых тестов я нашел что порядок прогнозирования не является порядком данных файла. Как заставить Tensorflow выводить прогнозы в правильной коррекции? Как другой вариант, как я могу распечатать предсказания с помощью функций (и метки линии)?

Спасибо за вашу поддержку.

ответ

0

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

def get_input_fn(data_set, num_epochs=None, shuffle=True): 
    return tf.estimator.inputs.pandas_input_fn(
    x=pd.DataFrame(data_set[FEATURES]), 
    y=pd.Series(data_set[LABELS]), 
    num_epochs=num_epochs, 
    shuffle=shuffle, num_threads=1) 

что нормально, но когда ты run pred() вам нужно установить shuffle = False (иначе он будет перетасовывать ваши выходы!)

Смежные вопросы