Проблема с Tensorflow в Google Cloud - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть скрипт Python (некоторая простая двоичная классификация, основанная на многослойном персептроне), который использует Keras, работающий на бэкенде Tensorflow, и корректно работает на моем ноутбуке в Windows, но выдает следующие ошибки при запуске его на виртуальной машине Ubuntu из GoogleОблако.Любые идеи о том, как это исправить?Буду благодарен за любые предложения.Информация об Ubuntu: Ubuntu 16.04.5 LTS (GNU/Linux 4.15.0-1027-gcp x86_64) Tensorflow равен 1.13.1 Keras равен 2.2.4

2019-02-26 23:14:29.217591: I 
tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports 
instructions that this TensorFlow binary was not compiled to use: AVX2 FMA

2019-02-26 23:14:29.224424: I 
tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 
2300000000 Hz

2019-02-26 23:14:29.225784: I 
tensorflow/compiler/xla/service/service.cc:150] XLA service 0x384e6a0 
executing computations on platform Host. Devices:

2019-02-26 23:14:29.225824: I 
tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): 
<undefined>, <undefined>

Обновление: фактическая ошибка выглядит следующим образом.

Exception ignored in: <bound method BaseSession.__del__ of 
<tensorflow.python.client.session.Session object at 0x7fe9
23271400>>
Traceback (most recent call last):
File "/home/berezutskii/.local/lib/python3.5/site- 
packages/tensorflow/python/client/session.py", line 738, in __del__
TypeError: 'NoneType' object is not callable

Обновление: устранено путем переустановки tensorflow используя права администратора.

1 Ответ

0 голосов
/ 27 февраля 2019

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

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

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

Одним из них является простой импорт:

import tensorflow.contrib.keras as keras 

Однако лучшим решением будет изменение файла setup.py, перейдите в файл setup.py.откройте его с помощью nano или vim (путь к файлу указан в ошибке), там вам придется перейти к 738-й строке или там, в зависимости от установленной версии.

Вы увидите def __del__(self):объявлена ​​функция, и в ней будет следующий код:

try:
        status = tf_session.TF_NewStatus()
        tf_session.TF_DeleteDeprecatedSession(self._session, status)

Наряду с другими вещами, замените это на:

try:
        if tf_session is not None:
            status = tf_session.TF_NewStatus()
            tf_session.TF_DeleteDeprecatedSession(self._session, status

Это решит проблему. Пожалуйста, обратите внимание, чтодругая часть суда должна остаться такой же, как и сохранить копию файла перед тем, как редактировать ее, так что на случай, если вам нужно будет вернуться к исходной версии.

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