You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7服务器运行TensorFlow人脸识别脚本报NVIDIA驱动不存在问题咨询

问题解决步骤

你之前的两个配置无效的核心原因:

  • 环境变量CUDA_VISIBLE_DEVICES设置时机错误:必须在导入TensorFlow及其相关依赖(比如keras)之前设置,等TensorFlow已经完成模块初始化后再设置不会生效
  • 软设备放置配置写法错误:config.set_soft_device_placement是可调用方法,不是可赋值属性,直接赋值=True不会触发配置生效

步骤1:确认服务器硬件情况

在服务器终端执行命令:
lspci | grep -i nvidia

  • 如果没有任何输出,说明服务器没有配备NVIDIA显卡,不需要做任何GPU相关配置,直接强制TensorFlow运行在CPU模式即可
  • 如果有输出说明存在NVIDIA显卡,你需要安装和当前TensorFlow版本匹配的NVIDIA驱动、CUDA、cuDNN组件即可解决报错

步骤2:修正脚本配置

调整你的脚本开头代码顺序和写法,修改后开头部分如下:

import os
# 必须放在导入tensorflow相关模块之前
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
import face_recognition as fr
from tensorflow.keras.models import model_from_json
import numpy as np
from PIL import Image
import base64
import io
import json
import cv2 

from tensorflow import config
# 正确调用方法,而不是直接赋值
config.set_soft_device_placement(True)

步骤3:适配PHP exec调用场景

因为PHP调用exec执行命令时,不会完全继承当前用户的shell环境变量,建议直接在执行命令中注入环境变量,写法参考:

// 注意替换成你自己的脚本路径和传入参数
exec('CUDA_VISIBLE_DEVICES=-1 python3 /www/your_script_path/face_recognize.py ' . $base64_img_param, $output, $return_var);

步骤4:(可选)从根源避免GPU检测

如果确认服务器没有NVIDIA显卡,可以直接卸载GPU版本TensorFlow,安装CPU版本,彻底消除GPU相关检测逻辑:

pip uninstall -y tensorflow tensorflow-gpu
# 注意安装和你训练模型时兼容的版本,示例为2.10.0版本,可自行修改
pip install tensorflow-cpu==2.10.0

验证方法

先在服务器终端手动执行以下命令测试脚本是否正常:

export CUDA_VISIBLE_DEVICES=-1
python3 /你的脚本路径/face_recognize.py 测试参数

如果手动执行无报错,再测试PHP调用即可。


内容的提问来源于stack exchange,提问作者عبدالرحمن ايمن

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:45:04