dlib cuda不使用GPU

问题描述

我想使用Nvidia GPU而不是cpu来改善CNN面部识别代码。因此,我在these instructions之后找到并安装了特定的dlib_cuda。

安装进行得很顺利,所以我检查了python环境中的dlib是否使用cuda:

Python 3.6.9 (default,Jul  17 2020,12:50:27)
[GCC 8.4.0] on linux
>>> import dlib
>>> dlib.DLIB_USE_CUDA
True
>>>print(dlib.cuda.get_device())
1

因为它对我来说看起来不错,所以我尝试再次使用我的代码,但是它们没有任何改善,并且在检查GPU之后,它仍然没有使用。所以我尝试了以下命令:

>>> print(dlib.cuda.get_device())

它返回:

0

我不确定这些消息的含义。经过大量研究,我仍然无法确定dlib没有使用我的GPU。之前有人遇到过同样的问题吗?

我的工作区在Jetson AGX Xavier(Jetpack 4.4)上,并与Ubuntu和Cuda版本10.2.89一起运行

PS:我还使用了tensorFlow和Keras库,它们都已安装为与CUDA环境一起使用

解决方法

如果您熟悉Tensorflow和Keras,建议您使用Deepface进行人脸识别。它包装了最新的人脸识别模型,并在后台构建Keras模型。这就是为什么,如果您安装了tensorflow-gpu软件包,其默认用法将在GPU上执行。

import json
import urllib.parse
import boto3
import csv

s3 = boto3.client('s3')
def lambda_handler(event,context):
    bucket = event['Records'][0]['s3']['bucket']['name']

    
    key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'],encoding='utf-8')
    file_name = s3.get_object(Bucket=bucket,Key=key)
    
    
    csv_reader = csv.reader(file_name)
        
        
    with open('/outputlv/output.csv','w') as output_file:
        wtr = csv.writer(output_file)
        for i in csv_reader:
            wtr.writerow(i[0],i[2],i[3])
            
    target_bucket = 'outputlv'
    final_file = 'outputlv/output.csv'
    
    s3.put_object(Bucket=target_bucket,Key=final_file)