python - Dlib cuda 人脸检测 .dat 模型在 GTX 1650 上崩溃,而在许多其他 gpu 设备上表现良好
问题描述
我得到了与下面相同的 Dockerfile 和相同的代码,但结果不同
一个给出正确的打印输出,而另一个崩溃而没有任何消息!
代码
import dlib
import cv2
print(dlib.__version__) # 19.17.99, the same
cnn_face_detector = dlib.cnn_face_detection_model_v1('mmod_human_face_detector.dat')
img = cv2.imread("1.jpg")
rects = cnn_face_detector(img, 1) # one crashes every time on this line
print("Number of faces detected: {}".format(len(rects)))
for i, d in enumerate(rects):
face = d.rect
print("Detection {}: Left: {} Top: {} Right: {} Bottom: {} Confidence: {}".format(i, face.left(), face.top(), face.right(), d.rect.bottom(), d.confidence))
cv2.rectangle(img, (face.left(),face.top()), (face.right(),face.bottom()), (0,0,255),2)
命令运行
nvidia-docker run -it --rm -w="/usr/src/app" -v $(pwd):/usr/src/app myDocEnv test.py
正确的输出
19.17.99
Number of faces detected: 1
Detection 0: Left: 245 Top: 100 Right: 415 Bottom: 269 Confidence: 1.079284906387329
输出错误
19.17.99
唯一的区别
它们之间的唯一区别是 GPU 硬件设备
崩溃的人用的是GeForce GTX 1650 在P620上运行没有问题、<strong>1050Ti
解决方案
RUN mkdir -p /usr/local/cuda/nccl/lib && \
ln -sf /usr/lib/x86_64-linux-gnu/libnccl.so.2 /usr/local/cuda/nccl/lib/ &&\
ln -sf /usr/lib/x86_64-linux-gnu/libcudnn.so.7 /usr/local/cuda/lib64/
RUN apt-get update && apt-get install -y --no-install-recommends \
libcublas10 \
libcublas-dev
RUN apt install -y libprotobuf-dev protobuf-compiler
RUN export CUDA_cublas_LIBRARY=/usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas.so
添加这几件事解决了我的问题
推荐阅读
- actions-on-google - 有没有办法让应用程序操作生成一个 url?
- android - google play - 如何禁用 beta 测试?
- php - 如何在 Spatie\DataTransferObject 的 DTO 类中强制转换属性
- javascript - 使用jquery为动态表单元素动态添加功能
- python - Python Plotly:使用字符串格式的日期而不是数字时不维护轴
- python - 如何在 Python 2.7 的嵌套列表/字典中将 unicode 转换为 char?
- python-3.x - ValueError: Input 0 of layer sequence_1 is in compatible with the layer: its rank is undefined, but the layer requires a defined rank
- javascript-objects - javascript 赋值运算符 (`=`) 与 Object.assign
- windows - 无法从 Jenkins 中的远程网络共享驱动器复制文件
- python - 安装 python xlwings 模块