Tensorflow tf.estimator.DNNRegressor Невозможно получить элемент в виде внутренней ошибки байтов - PullRequest
0 голосов
/ 13 мая 2019

Я строю модель DNN и получаю следующую ошибку, когда тренируюсь с моим оценщиком.

Error reported to Coordinator: <class 'tensorflow.python.framework.errors_impl.InternalError'>, Unable to get element as bytes.

Мои данные хранятся в фрейме данных с именем df_hybrid_dataset, который выглядит следующим образом: enter image description here

Имеются следующие типы:

movieId       object
title         object
genres        object
userId        object
rating       float64
timestamp    float64

Сначала я создаю столбцы tf.feature для каждого столбца следующим образом:

keys = df_hybrid_dataset.columns.tolist() #Use dataframe column names as keys

#MOVIEID
movieid_id_column = tf.feature_column.categorical_column_with_hash_bucket(
    key=keys[0],
    hash_bucket_size= len(df_hybrid_dataset.movieId.unique()) + 1)

embedded_movie_id_column = tf.feature_column.embedding_column(
    categorical_column=movieid_id_column,
    dimension=10)

#TITLE
embedded_title_column = hub.text_embedding_column(
    key=keys[1], 
    module_spec="https://tfhub.dev/google/nnlm-en-dim50/1",
    trainable=False)

#GENRE
vocabulary_genres = list(set([item for sublist in df_hybrid_dataset['genres'] for item in sublist]))
genre_fc = tf.feature_column.categorical_column_with_vocabulary_list(
    keys[2], 
    vocabulary_genres,
    dtype=tf.string,
    default_value=-1)

genre_column = tf.feature_column.embedding_column(
    categorical_column =genre_fc,
    dimension = 5,
    combiner='mean')

#category_column = tf.feature_column.indicator_column(category_column_categorical)

#USERID
user_id_column = tf.feature_column.categorical_column_with_hash_bucket(
    key=keys[3],
    hash_bucket_size= len(df_hybrid_dataset.userId.unique()) + 1)

embedded_user_id_column = tf.feature_column.embedding_column(
    categorical_column=user_id_column,
    dimension=10)

#No column for ratings as is the target

#Timestamp
timestamp_column = tf.feature_column.numeric_column(
  key=keys[5])

feature_columns = [embedded_movie_id_column,
                   embedded_title_column,
                   genre_column,
                   embedded_user_id_column,
                   timestamp_column] 

Наконец, я сбрасываю все значения NA в моем фрейме данных и создаю функцию ввода поезда и вызываю метод поезда моей оценки:

# Create training input function
df_hybrid_dataset.dropna(how="any", axis=0,inplace=True)
training_input_fn = tf.estimator.inputs.pandas_input_fn(x = df_hybrid_dataset.drop('rating',axis=1),
                                                        y=df_hybrid_dataset['rating'],
                                                        batch_size=32,
                                                        shuffle= True,
                                                        num_epochs = None)
estimator = tf.estimator.DNNRegressor(
    feature_columns=feature_columns,
    hidden_units=[1024, 512, 256])

estimator.train(input_fn=training_input_fn)

У меня нет ошибок, пока я не вызову функцию поезда, где получаю следующий вывод:

I0513 17: 30: 57.409922 123145461637120 координатор.py:224] Сообщение об ошибке координатору: невозможно получить элемент в виде байтов.

и

InternalError: Невозможно получить элемент в виде байтов.

Найти полный вывод здесь:

INFO: tenorflow: использование конфигурации по умолчанию.I0513 17: 30: 55.589829 4587005376 estimator.py:1739] Использование конфигурации по умолчанию.ПРЕДУПРЕЖДЕНИЕ: tenorflow: использование временной папки в качестве каталога модели: / var / folder / js / fd66xmyn1tb93t9bv21xkzw80000gn / T / tmpxnpxik0d W0513 17: 30: 55.592187 4587005376 estimator.py:1760] Использование временной папки в качестве каталога модели: / / var /fd66xmyn1tb93t9bv21xkzw80000gn / Т / tmpxnpxik0d ИНФОРМАЦИЯ: tensorflow: Использование конфигурации: { '_model_dir': '/ вар / папки / JS / fd66xmyn1tb93t9bv21xkzw80000gn / Т / tmpxnpxik0d', '_tf_random_seed': Нет, '_save_summary_steps': 100, '_save_checkpoints_steps': Нет,'_save_checkpoints_secs': 600, _sesess_config: allow_soft_placement: true'_device_fn': Нет, '_protocol': Нет, '_eval_distribute': Нет, '_experimental_distribute': Нет, '_service': Нет, '_cluster_spec':, '_task_type': 'worker', '_task_id': 0,_global_id_in_cluster ': 0,' _master ':' ',' _evaluation_master ':' ',' _is_chief ': True,' _num_ps_replicas ': 0,' _num_worker_replicas ': 1} I0513 17: 30: 55.594295 4587005376 estimator.py:201] Использование конфигурации: {' _model_dir ':' / var / folder / js / fd66xmynw00009900009009)tmpxnpxik0d», '_tf_random_seed': None, '_save_summary_steps': 100, 'не _save_checkpoints_steps': нет, '_save_checkpoints_secs': 600, '_session_config': allow_soft_placement: истинные graph_options {
rewrite_options {meta_optimizer_iterations: один}}, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': нет, '_device_fn': нет, '_protocol': нет, '_eval_distribute': нет, '_ist' 'None, '_cluster_spec':, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas':0, '_num_worker_replicas': 1} ИНФО: тензор потока: вызов model_fn.I0513 17: 30: 55.627696 4587005376 estimator.py:1111] Вызов model_fn.INFO: tenorsflow: Saver не создан, так как в графике нет переменных для восстановления I0513 17: 30: 55.746978 4587005376 saver.py:1483] Saver не создан, поскольку в графике нет переменных для восстановления INFO: tenorflow: Saver не созданпотому что в графе нет переменных для восстановления I0513 17: 30: 55.778800 4587005376 saver.py:1483] Заставка не создана, поскольку в графе нет переменных для восстановления INFO: tenorflow: Done с вызовом model_fn.I0513 17: 30: 56.223238 4587005376 estimator.py:1113] Закончен вызов model_fn.ИНФОРМАЦИЯ: tenorflow: создать CheckpointSaverHook.I0513 17: 30: 56.224447 4587005376 basic_session_run_hooks.py:527] Создать CheckpointSaverHook.ИНФОРМАЦИЯ: tenorflow: График был завершен.I0513 17: 30: 56.463243 4587005376 monitored_session.py:222] График был завершен.ИНФОРМАЦИЯ: tenorflow: выполняется local_init_op.I0513 17: 30: 56.791501 4587005376session_manager.py:491] Запуск local_init_op.ИНФОРМАЦИЯ: tenorsflow: Закончено выполнение local_init_op.I0513 17: 30: 57.376197 4587005376 session_manager.py:493] Завершено выполнение local_init_op.ИНФОРМАЦИЯ: tenorsflow: ошибка, переданная координатору:, Невозможно получить элемент в байтах.I0513 17: 30: 57.409922 123145461637120ordinator.py:224] Ошибка, переданная координатору: не удалось получить элемент в байтах.ИНФОРМАЦИЯ: tenorflow: сохранение контрольных точек для 0 в /var/folders/js/fd66xmyn1tb93t9bv21xkzw80000gn/T/tmpxnpxik0d/model.ckpt.I0513 17: 30: 57.778767 4587005376 basic_session_run_hooks.py:594] Сохранение контрольных точек для 0 в /var/folders/js/fd66xmyn1tb93t9bv21xkzw80000gn/T/tmpxnpxik0d/model.ckpt.--------------------------------------------------------------------------- InternalError Traceback (последний вызов был последним) /anaconda3/lib/python3.6/site-packages/tensorflow/python/client / session.py в _do_call (self, fn, * args) 1333 try: -> 1334 return fn (* args) 1335 за исключением ошибок. Ошибка как e:

/ anaconda3 / lib / python3.6 /site-packages / tenorflow / python / client / session.py в _run_fn (feed_dict, fetch_list, target_list, options, run_metadata) 1318 возвращают self._call_tf_sessionrun (-> 1319 параметров, feed_dict, fetch_list, target_list, run_metadata) 1320 * 10381039 * / anaconda3 / lib / python3.6 / site-packages / tenorflow / python / client / session.py в _call_tf_sessionrun (self, options, feed_dict, fetch_list, target_list, run_metadata) 1406 self._session, options, feed_dict, fetch_list,target_list, -> 1407 run_metadata) 1408

InternalError: невозможно получить элемент в виде байтов.

Во время обработки вышеуказанного исключения произошло другое исключение:

InternalError Traceback (последний вызов был последним) в 16 shuffle = False, 17 num_epochs = 1) ---> 18 estimator.train (input_fn = training_input_fn) 19 metrics = estimator.evaluate (input_fn = eval_input_fn) 20 прогнозов = estimator.predict (input_)= eval_input_fn)

/ anaconda3 / lib / python3.6 / site-packages / tenorflow_estimator / python / estimator / estimator.py в последовательности (self, input_fn, хуки, шаги, max_steps, save_listeners) 356 357 Saving_Listeners =_check_listeners_type (Saving_Listeners) -> 358 loss = self._train_model (input_fn, hooks, save_listeners) 359 logging.info ('Потеря на последнем шаге:% s., потеря) 360 возвращает себя

/ anaconda3 /lib / python3.6 / site-packages / tenorflow_estimator / python / estimator / estimator.py в _train_model (self, input_fn, hooks, Saving_Listeners) 1122
вернуть self._train_model_distributed (input_fn, hooks, save_listeners) 1123:1124 возвращает self._train_model_default (input_fn, перехватчики, save_listeners) 1125 1126 def _train_model_default (self, input_fn, перехватывает, сохраняетing_listeners):

/ anaconda3 / lib / python3.6 / site-packages / tenorflow_estimator / python / estimator / estimator.py в _train_model_default (self, input_fn, hooks, save_listeners)
1156 возвращают self._pecti_w_(estimator_spec, worker_hooks, 1157
hooks, global_step_tensor, -> 1158 Saving_Listeners) 1159 1160 Def _train_model_distributed (self, input_fn, Hooks, Saving_Listeners):

/ anaconda3 / lib / python3.6/tensorflow_estimator/python/estimator/estimator.py в _train_with_estimator_spec (self, estimator_spec, worker_hooks, hooks, global_step_tensor, Saving_Listeners) 1406, но не mon_sess.should_stop_stop (): es__st.потеря])-> 1408 any_step_done = True 1409, если не any_step_done: 1410 logging.warning ('Тренировка с оценщиком не прошла.'

/ anaconda3 / lib / python3.6 / site-packages / tensorflow / python / training /monitored_session.py в выход (self, тип_исключения, тип_исключения, обратная связь) 786, если тип_исключения в [errors.OutOfRangeError, StopIteration]: 787 тип_исключения = нет -> 788 self._close_internal (тип_ исключения) 789 # exit должен вернуть True, чтобы подавить исключение. 790 вернуть тип_исключения - Нет

/ anaconda3 / lib / python3.6 / site-packages / tenorflow / python / training / monitored_session.py в _close_internal (self), exception_type) 824, если self._sess - None: 825 повысить RuntimeError ('Сессия уже закрыта.') -> 826 self._sess.close () 827 finally: 828 self._sess = None

/anaconda3 / lib / python3.6 / site-packages / tenorflow / python / training / monitored_session.py в close (self) 1080, если self._sess: 1081 try: -> 1082 self._sess.close () 1083, кроме _PREEMPTION_ERRORS as e: 1084 logging.warning ('Произошла ошибка при попытке закрыть'

/ anaconda3 / lib / python3.6 / site-packages / tenorflow / python / training / monitored_session.py в close (self) 1242 self._coord.join (1243
stop_grace_period_secs = self._stop_grace_period_secs, -> 1244 ignore_live_threads = True) 1245 окончательно: 1246 try:

/ anaconda3 / lib / python3.6 / site-packages/tensorflow/python/training/coordinator.py в соединении (self, потоки, stop_grace_period_secs, ignore_live_threads) 387 self._registered_threads = set () 388 если self._exc_info_to_raise: -> 389 six.reraise (* self._exc_info_to__info_to__exc_info)отставшие: 391, если ignore_live_threads:

/ anaconda3 / lib / python3.6 / site-packages / six.py в ререйзе (tp, value, tb) 690 значение = tp () 691, если значение. traceback - это не tb: -> 692 повышение значения .with_traceback (tb) 693 повышение значения 694, наконец:

/ anaconda3 / lib / python3.6 / site-packages / tensorflow_estimator / python / estimator /входы / очереди / feeding_queue_runner.py в _run (self, sess, enqueue_op, feed_fn ,ordin) 92 try: 93 feed_dict = Нет, если feed_fn равен None else feed_fn () ---> 94 sess.run (enqueue_op, feed_dict = feed_dict) 95 кроме (ошибки.OutOfRangeError, errors.CancelledError): 96 # Это исключение указывает, что очередь закрыта.

/ anaconda3 / lib / python3.6 / site-packages / tenorflow / python / client / session.py в рабочем состоянии (self, выборки, feed_dict, options, run_metadata) 927 try: 928 result = self._run (None, fetches, feed_dict, options_ptr, -> 929 run_metadata_ptr) 930 if run_metadata: 931 proto_data = tf_session.TF_Get_tt_tata *

/ anaconda3 / lib / python3.6 / site-packages / tenorflow / python / client / session.py в _run (self, handle, fetches, feed_dict, options, run_metadata)
1150, если final_fetches или final_targets или (handle и feed_dict_tensor): 1151 results = self._do_run (handle, final_targets, final_fetches, -> 1152 feed_dict_tensor, options, run_metadata) 1153 else: 1154 результатов = []

/ anaconda3 / lib / python3.6 / site-packages / tenorflow / python / client / session.py в _do_run (self, handle, target_list, fetch_list, feed_dict, options, run_metadata) 1326, если дескриптор равен None: 1327 вернуть self._do_call (_run_fn, каналы, выборки, цели, параметры,-> 1328 run_metadata) 1329 остальное: 1330 вернуть self._do_call (_prun_fn, дескриптор, фиды, выборки)

/ anaconda3 / Библиотека / python3.6 / сайт-пакеты / tensorflow / питон / клиент / session.py в _do_call (self, fn, * args) 1346 проход 1347
message = error_interpolation.interpolate (сообщение, self._graph) -> 1348 тип повышения (e) (node_def, op, message) 1349 1350 def _extend_graph (self):

InternalError: Невозможно получить элемент в байтах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...