如何修复 ----- ./darknet:加载共享库时出错:libcudart.so.10.0:无法打开共享对象文件:没有这样的文件或目录
How to fix ----- ./darknet: error while loading shared libraries: libcudart.so.10.0: cannot open shared object file: No such file or directory
我在使用 AWS SageMaker 在 jupyter-notebook 中进行 yolo 训练时遇到问题。
我想用 darknet-model 开始训练,但效果不佳。
我在下面尝试了这些代码,所有代码都运行良好。
! conda install cudatoolkit -y
! conda install cudnn -y
! conda install -c fragcolor cuda10.0 -y
! conda update --all -y
我尝试训练模型...
! ./darknet detector train lamp.data yolov3-lamps.cfg darknet53.conv.74 -gpus 0,1,2,3,4,5,6,7
但是这个错误发生了。
./darknet: error while loading shared libraries: libcudart.so.10.0: cannot open shared object file: No such file or directory
我该如何解决这个问题?
像这样尝试(根据您的系统调整 LD_LIBRARY_PATH
):
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/cuda-10.1/targets/x86_64-linux/lib/ ./darknet detector train lamp.data yolov3-lamps.cfg darknet53.conv.74 -gpus 0,1,2,3,4,5,6,7
我在 AWS 上使用所有深度学习服务处理 g3 实例时遇到了同样的问题 pre-installed。该服务预装了很多 cuda 版本,所以我将环境变量设置为 cuda-10.1。在检查 usr/local/cuda 文件夹时 - 默认情况下它被重定向到 cuda-10.0。我做了以下更改默认设置。
在 make 文件中进行以下更改(用于在 GPU 和 cuDNN 中工作):
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=0
AVX=0
OPENMP=1
检查您的 GPU 配置是否正确设置了 ARCH。您可以前往此 page 进行此操作。
如果您使用的是 GPU = 1:
检查 make 文件中的第 110-129 行,看看是否所有内容都指向您当前使用的兼容 cuda 版本。由于我使用的是 cuda-10.1,所以我将其更改为 -
ifeq ($(GPU), 1)
COMMON+= -DGPU -I/usr/local/cuda-10.1/include/
CFLAGS+= -DGPU
ifeq ($(OS),Darwin) #MAC
LDFLAGS+= -L/usr/local/cuda-10.1/lib -lcuda -lcudart -lcublas -lcurand
else
LDFLAGS+= -L/usr/local/cuda-10.1/lib64 -lcuda -lcudart -lcublas -lcurand
endif
endif
ifeq ($(CUDNN), 1)
COMMON+= -DCUDNN
ifeq ($(OS),Darwin) #MAC
CFLAGS+= -DCUDNN -I/usr/local/cuda-10.1/include
LDFLAGS+= -L/usr/local/cuda-10.1/lib -lcudnn
else
CFLAGS+= -DCUDNN -I/usr/local/cudnn/include
LDFLAGS+= -L/usr/local/cudnn/lib64 -lcudnn
endif
endif
进行必要的更改后,make
再次生成 Makefile 以查看它们是否有效。这解决了我的问题并开始训练。
我在使用 AWS SageMaker 在 jupyter-notebook 中进行 yolo 训练时遇到问题。
我想用 darknet-model 开始训练,但效果不佳。
我在下面尝试了这些代码,所有代码都运行良好。
! conda install cudatoolkit -y
! conda install cudnn -y
! conda install -c fragcolor cuda10.0 -y
! conda update --all -y
我尝试训练模型...
! ./darknet detector train lamp.data yolov3-lamps.cfg darknet53.conv.74 -gpus 0,1,2,3,4,5,6,7
但是这个错误发生了。
./darknet: error while loading shared libraries: libcudart.so.10.0: cannot open shared object file: No such file or directory
我该如何解决这个问题?
像这样尝试(根据您的系统调整 LD_LIBRARY_PATH
):
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/cuda-10.1/targets/x86_64-linux/lib/ ./darknet detector train lamp.data yolov3-lamps.cfg darknet53.conv.74 -gpus 0,1,2,3,4,5,6,7
我在 AWS 上使用所有深度学习服务处理 g3 实例时遇到了同样的问题 pre-installed。该服务预装了很多 cuda 版本,所以我将环境变量设置为 cuda-10.1。在检查 usr/local/cuda 文件夹时 - 默认情况下它被重定向到 cuda-10.0。我做了以下更改默认设置。
在 make 文件中进行以下更改(用于在 GPU 和 cuDNN 中工作):
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=0
AVX=0
OPENMP=1
检查您的 GPU 配置是否正确设置了 ARCH。您可以前往此 page 进行此操作。
如果您使用的是 GPU = 1: 检查 make 文件中的第 110-129 行,看看是否所有内容都指向您当前使用的兼容 cuda 版本。由于我使用的是 cuda-10.1,所以我将其更改为 -
ifeq ($(GPU), 1)
COMMON+= -DGPU -I/usr/local/cuda-10.1/include/
CFLAGS+= -DGPU
ifeq ($(OS),Darwin) #MAC
LDFLAGS+= -L/usr/local/cuda-10.1/lib -lcuda -lcudart -lcublas -lcurand
else
LDFLAGS+= -L/usr/local/cuda-10.1/lib64 -lcuda -lcudart -lcublas -lcurand
endif
endif
ifeq ($(CUDNN), 1)
COMMON+= -DCUDNN
ifeq ($(OS),Darwin) #MAC
CFLAGS+= -DCUDNN -I/usr/local/cuda-10.1/include
LDFLAGS+= -L/usr/local/cuda-10.1/lib -lcudnn
else
CFLAGS+= -DCUDNN -I/usr/local/cudnn/include
LDFLAGS+= -L/usr/local/cudnn/lib64 -lcudnn
endif
endif
进行必要的更改后,make
再次生成 Makefile 以查看它们是否有效。这解决了我的问题并开始训练。