Я следовал этому руководству по распознаванию объекта с помощью машинного обучения:
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.
После установки всех необходимых пакетов, также описанных здесь:
Под 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 и снова попробую программное обеспечение.
Однако, если у кого-то есть другое решение, обязательно опубликуйте его. Я отправлю ответ, если он работает. Я отредактирую это, если это не так.