Tensorflow DNNRegressor не обучается

Я пытаюсь создать DNNRegressor, чтобы изучить 196 функций, чтобы предсказать 1 метку, все реальные числа.

Я пробовал несколько вариантов подачи данных и пакетов, но, похоже, ничего не работает ... вывод fit () остается в INFO:tensorflow:loss = 1.59605e+32, и при попытке предсказать одни и те же данные обучения вывод выходит за пределы диапазона моей метки (который составляет от -1,7 до 2,6, но я получаю такие прогнозы: 2.9873503e + 09)

Может кто поможет, что делаю не так?

Мой код ниже:

import pandas as pd
import tensorflow as tf

df_train = pd.read_csv("...", delimiter="\t", index_col=0)
LABEL = 'y'
COLUMNS = list(df_train.columns.values)
COLUMNS = filter(lambda a: a != LABEL, COLUMNS)

def my_input_fn(df):
    continuous_cols = {k: tf.constant(df[k].values, shape=[df[k].size, 1]) for k in COLUMNS}
    labels = tf.constant(df[LABEL].values)
    return continuous_cols, labels

continuous_features = [tf.contrib.layers.real_valued_column(k) for k in COLUMNS]
regressor = tf.contrib.learn.DNNRegressor(feature_columns=continuous_features, hidden_units=[20,10], model_dir="...")
regressor.fit(input_fn=lambda: my_input_fn(df_train), steps=20000)
results = regressor.evaluate(input_fn=lambda: my_input_fn(df_test),steps=1)

Я запускаю tf с поддержкой gpu. Я заметил одну вещь: при первом вызове функции fit () я получаю:

E tensorflow/stream_executor/cuda/cuda_driver.cc:1002] failed to allocate 3.94G (4233691136 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
E tensorflow/stream_executor/cuda/cuda_driver.cc:1002] failed to allocate 3.94G (4233691136 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
E tensorflow/stream_executor/cuda/cuda_driver.cc:1002] failed to allocate 3.94G (4233297920 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY

Но после этого все еще работает. Большое спасибо!

Обновление: я заметил, что некоторые из входных столбцов все нули. Когда я их удаляю, сеть учится и сходится. Я попытался ввести эти столбцы как категориальные столбцы (двоичные), но это также мешает обучению сходиться.


person beastiecho    schedule 06.07.2017    source источник
comment
Для вашей ошибки нехватки памяти см. stackoverflow.com/questions/39465503/ и ошибка stackoverflow.com/questions/34514324/   -  person BoboDarph    schedule 06.07.2017