Nano Hash - криптовалюты, майнинг, программирование

Tensorflow TypeError: ожидаемые байты, найден дескриптор

Я следовал этому руководству по распознаванию объекта с помощью машинного обучения:

https://www.youtube.com/watch?v=Rgpfk6eYxJA

Я следовал всем инструкциям о том, что и как устанавливать, в том числе в этом соответствующем руководстве:

https://www.youtube.com/watch?v=RplXYjxgZbw

Я пробовал как их версию, так и новейшие доступные версии программного обеспечения. За исключением того, что я создаю виртуальную среду следующим образом:

conda create -n tensorflow1 pip python=3.6

Поскольку модуль tensorflow еще не совместим с python 3.7.

После установки всех необходимых пакетов, также описанных здесь:

https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10

Под 2d. Настройте новую виртуальную среду Anaconda

и пройтись по коду на видео, у меня при запуске вылетает ошибка

python generate_tfrecord.py --csv_input=images\train_labels.csv --image_dir=images\train --output_path=train.record

который работает на видео в 19:35.

Ошибка

2019-12-11 10:13:43.410540: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found
Traceback (most recent call last):
  File "generate_tfrecord.py", line 17, in <module>
    import tensorflow as tf
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow\__init__.py", line 98, in <module>
    from tensorflow_core import *
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\__init__.py", line 40, in <module>
    from tensorflow.python.tools import module_util as _module_util
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 947, in _find_and_load_unlocked
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow\__init__.py", line 50, in __getattr__
    module = self._load()
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow\__init__.py", line 44, in _load
    module = _importlib.import_module(self.__name__)
  File "C:\Anaconda\envs\tensorflow1\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\python\__init__.py", line 52, in <module>
    from tensorflow.core.framework.graph_pb2 import *
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\core\framework\graph_pb2.py", line 16, in <module>
    from tensorflow.core.framework import node_def_pb2 as tensorflow_dot_core_dot_framework_dot_node__def__pb2
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\core\framework\node_def_pb2.py", line 16, in <module>
    from tensorflow.core.framework import attr_value_pb2 as tensorflow_dot_core_dot_framework_dot_attr__value__pb2
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\core\framework\attr_value_pb2.py", line 16, in <module>
    from tensorflow.core.framework import tensor_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__pb2
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\core\framework\tensor_pb2.py", line 16, in <module>
    from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\core\framework\resource_handle_pb2.py", line 16, in <module>
    from tensorflow.core.framework import tensor_shape_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2
  File "C:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\core\framework\tensor_shape_pb2.py", line 112, in <module>
    '__module__' : 'tensorflow.core.framework.tensor_shape_pb2'
TypeError: expected bytes, Descriptor found

Эта проблема такая же, как и в ядре Jupyter, когда я запускаю импорт, который появляется на видео в 14:25.

Как исправить

TypeError: ожидаемые байты, найден дескриптор

Ошибка?

И что с

Не удалось загрузить динамическую библиотеку cudart64_100.dll; dlerror: cudart64_100.dll не найден

Что также появляется?

Я также могу поделиться этим с вами, во втором руководстве, посвященном установке библиотеки tensorflow-gpu, после того, как я создаю учетную запись для cuDNN и загружаю ее, как указано, я получаю только cudnn64_7.dll файл в C:\cuda\bin, который находится в моей переменной среды системного пути, как и

  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp и
  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\lib64,

как указано в учебнике. Как видите, у меня версия 10.1 Cuda и cuDNN и пути немного отличаются. Драйвер графического процессора также обновлен.

P.S. в учебнике по установке tensorflow тестовый код тоже не работает.

Это вся информация, которую я могу предложить.

Я пытался решить эту проблему в течение 4-5 дней на данный момент (и это не первое мое видео, которое я смотрю, чтобы получить файл .record для нейронной сети распознавания изображений)

и решения для этой конкретной проблемы, предлагаемые в TypeError: ожидаемые байты, найден дескриптор или любой другое место в stackoverflow бесполезно.

Что я должен делать?

P.S. У меня есть версия tensorflow-gpu 2.0.0, и она может быть несовместима с Cuda и cuDNN. Возможно, поэтому у меня есть только файл cudnn64_7.dll, а не файл cudart64_100.dll. Если ни у кого нет других решений, я просто установлю tensorflow 1.5 и снова попробую программное обеспечение.

Однако, если у кого-то есть другое решение, обязательно опубликуйте его. Я отправлю ответ, если он работает. Я отредактирую это, если это не так.


  • какие-либо обновления по этому поводу? Я тоже здесь застрял. Мне интересно, используем ли мы разные версии tensorflow, а не учебник? 27.02.2020

Ответы:


1

Я следовал другому учебнику, однако наткнулся на те же ошибки. Если кому-то все еще интересно, я исправил это, обновив версию tensorflow с 1.5 до 1.15.

pip install --ignore-installed --upgrade tensorflow-gpu==1.15.0

Это официальная проблема, в которой я получил идею от.

Что касается второй части,

Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found

Это проблема с драйверами CUDA. Короче говоря, существует проблема совместимости между тензорным потоком и вашим графическим процессором. В большинстве случаев не беспокойтесь слишком сильно, так как по умолчанию для обучения модели будет использоваться ваш ЦП, а не ГП. Если вы действительно хотите использовать графический процессор (для повышения производительности и т. д.), проверьте, поддерживается ли он. Вы можете проверить аналогично заданный вопрос или из официальный источник.

В качестве альтернативы, поскольку вы установили CUDA 10.1, согласно официальной документации, вам необходимо обновите tensorflow 2.1.0 или выше, чтобы он заработал.

Лично мне пришлось использовать tensorflow 1.15 вместо 2.2.0 и установить CUDA 9.0, чтобы все заработало. Тем не менее, я работаю на ноутбуке с мобильным графическим процессором 1050, и, несмотря ни на что, я не мог заставить его работать иначе.

04.05.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..