我一直在遵循本教程使用机器学习来识别对象:
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
当我运行14:25视频中出现的导入时,这个问题与jupyter内核中出现的问题相同
我该如何解决
TypeError:预期的字节,找到描述符
错误?
这是怎么回事
无法加载动态库'cudart64_100.dll'; dlerror:找不到cudart64_100.dll
那还会出现吗?
在第二个教程中,我还可以与您分享此内容,即安装tensorflow-gpu库。在为cuDNN创建一个帐户并按照题名下载它之后,我只会得到一个 cudnn64_7.dll < / strong>文件C:\ cuda \ bin中的文件,该文件也位于我的系统路径环境变量中
按照教程中的说明进行操作。如您所见,我的Cuda和cuDNN版本为10.1,路径有些不同。 GPU驱动程序也已更新。
P.S。在tensorflow安装教程中,测试代码也不起作用。
这是我想提供的所有信息。
到目前为止,我一直在努力解决此问题4-5天(这不是我第一次观看为图像识别神经网络获取.record文件的视频)
以及TypeError: expected bytes, Descriptor found或stackoverflow上任何其他位置提供的针对此特定问题的解决方案都没有用。
我该怎么办?
P.S。我拥有的tensorflow-gpu版本是2.0.0,它可能与Cuda和cuDNN不兼容。这可能就是为什么我只有cudnn64_7.dll文件而不是cudart64_100.dll文件的原因。如果没有其他解决方案,我将安装tensorflow 1.5并再次尝试该软件。
但是,如果有人有其他解决方案,请张贴。如果有效,我会发表回复。如果没有,我将对其进行编辑。
答案 0 :(得分:0)
我遵循了不同的教程,但是遇到了相同的错误。 如果有人仍然在想,我已经通过将tensorflow版本从原来的1.5更新为1.15来解决了这个问题
pip install --ignore-installed --upgrade tensorflow-gpu==1.15.0
这是我想到from的想法的官方问题。
第二部分
Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found
这是CUDA驱动程序的问题。简而言之,在tensorflow和您的GPU之间存在兼容性问题。在大多数情况下,不必担心太多,因为默认情况下,它将使用GPU上的CPU来训练模型。如果您真的想使用GPU(以获得更好的性能等),请检查它是否受支持。您可以检查类似询问的question,也可以从official source检查。
或者,由于您已经按照官方documentation安装了CUDA 10.1,因此您需要升级tensorflow 2.1.0或更高版本才能使其正常工作。
就我个人而言,我不得不选择在2.2.0上使用tensorflow 1.15并安装CUDA 9.0才能使所有内容运行。但是,我正在使用带有移动1050 GPU的笔记本电脑,无论如何,我都无法使其正常运行。