ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Windows下TensorFlow GPU版安装全攻略:版本匹配与避坑排查指南

Windows下TensorFlow GPU版安装全攻略:版本匹配与避坑排查指南 装TensorFlow的GPU版本在Windows上翻车太正常了。我见过不少人按照网上的教程一步一步装完结果一跑代码发现TensorFlow压根没用上显卡或者直接报错找不到DLL还有的干脆在import这一步就崩了连错误信息都看不懂。这篇文章我把Windows系统下从零开始装TensorFlow GPU版的全流程重新梳理一遍重点放在那些教程里不会细讲的原因分析和踩坑排查上帮你把安装过程中的坑提前填平。1. 装之前先搞清楚的一笔账CPU、GPU、TensorFlow版本三者怎么匹配1.1 为什么Windows下的问题总是出在版本匹配上很多人在Windows上装GPU版本失败根本不是操作失误而是从头到尾就搞混了一层关系。TensorFlow本身只是一层框架代码真正调用显卡干活的是它底层的CUDA、cuDNN这些依赖库而CUDA最终又需要通过NVIDIA显卡驱动来跟硬件通信。整个过程类似于一条翻译链TensorFlow把计算任务翻译给CUDACUDA再翻译给驱动驱动最后交给GPU硬件执行。这条链上任何一环的版本不匹配都会导致整体不可用——但你从日志里看到的往往是“找不到某个DLL文件”或“加载库失败”很难直接联想到是版本问题。举个例子TensorFlow 2.10是官方支持Windows上GPU的最后一个版本它要求CUDA 11.2和cuDNN 8.1。如果你从NVIDIA官网下载的是CUDA 12.x那大概率是装不上的或者装上了也调不起来。因为TensorFlow在Windows上是预编译的二进制包它内部已经绑定了要加载哪些版本的CUDA运行时库不会自动适配你系统里装了什么版本。所以安装之前建议先花两分钟想清楚三件事你的显卡是NVIDIA还是AMD你的显卡架构够不够新你要装的TensorFlow版本对应哪个CUDA和cuDNN版本这三件事没搞清楚后面每一步操作都可能白费。1.2 怎么确认自己该装哪个CUDA版本这个问题其实很关键但很多人根本不知道怎么查。有两个最常见的误区一个是看nvidia-smi显示的CUDA版本另一个是以为装的CUDA版本越高越好。nvidia-smi右上角显示的CUDA Version指的是当前驱动支持的最高CUDA版本而不是你系统上已经安装的CUDA Toolkit版本。驱动本身是一个大容器能向下兼容老版本的CUDA运行时所以即使nvidia-smi显示11.2你照样可以安装并运行CUDA 10.1编译的程序只是无法运行需要更高版本CUDA的程序。判断自己该装哪个CUDA最靠谱的办法是倒推先确定你要装的TensorFlow版本去官方文档或PyPI页面确认它对应哪个CUDA和cuDNN再确认你的显卡驱动版本不小于该CUDA版本要求的最低驱动。比如TensorFlow 2.10需要CUDA 11.2那么你只需要保证nvidia-smi显示的驱动版本号大于等于CUDA 11.2对应的驱动版本456.38以上即可不用装最新的CUDA 12.x。如果你用的是老显卡还得额外注意计算能力。TensorFlow 2.x要求GPU的计算能力不低于3.5部分新版本甚至要求5.0以上。计算能力可以在NVIDIA官网的技术文档里查到比如GTX 10系是6.1RTX 20系是7.5RTX 30系是8.6。太老的显卡建议直接放弃新版TensorFlow GPU版改用CPU版或者去找老版本的TensorFlow。1.3 软硬件链路梳理一张表看清当前主流配置为了便于对照我整理了目前Windows上主流TensorFlow版本与CUDA、cuDNN的对应关系以及它们要求的驱动版本下限。这张表是基于官方文档和社区反馈整理出来的实测可用的概率很高但建议还是去对应版本文档页面再确认一次。TensorFlow版本CUDA版本cuDNN版本最低驱动版本Windows备注2.1011.28.1456.38Windows上最后一个支持GPU的官方版本2.911.28.1456.38稳定老项目常用2.811.28.1456.38同上2.611.28.1456.38需额外装Visual Studio 2019运行库1.1510.07.6418.96老项目维护才会碰如果你的需求不是很特殊我建议直接选TensorFlow 2.10 CUDA 11.2 cuDNN 8.1这套组合。这是Windows生态里最成熟、教程最多、踩坑方案最全的组合。当然如果你准备玩新版大模型推理或需要跟PyTorch环境共存也可以考虑把TensorFlow装进conda独立环境这样多个CUDA版本互不干扰。2. Windows环境准备中最容易爆雷的几个环节2.1 显卡驱动不是越新就越合适先说驱动。很多人一听要装GPU版本第一反应就是去NVIDIA官网下载最新驱动。这个思路不能说错但没必要。只要驱动版本不低于TensorFlow对应CUDA要求的最低版本就行新驱动未必比老驱动更稳定尤其在数据中心卡或专业卡上新版驱动反而可能出现兼容性问题。我自己的习惯是用GeForce Experience做日常游戏驱动更新没问题但如果是专门跑深度学习的工作机我更倾向于装Studio驱动或者固定的生产分支驱动避免驱动自动更新后把环境搞乱。手动检查驱动版本可以在命令行输入nvidia-smi直接看Driver Version一栏。另外需要提醒一个点Windows下的驱动是分WDDM和TCC两种模式的。消费级显卡默认走WDDM而大部分Windows深度学习教程基于WDDM模式因为TCC模式主要面向Tesla这类计算卡。WDDM模式有个隐患是显示输出和计算共用驱动栈显存溢出或长时间内核执行时可能触发系统超时检测TDR这个后面详细讲。2.2 CUDA Toolkit和cuDNN的安装与文件摆放CUDA Toolkit的安装本身不算复杂但有几个细节容易被忽略。Windows安装包是exe格式解压后进入安装向导这里强烈建议选“自定义”安装不要选“精简”。因为在“自定义”里你可以取消勾选与GeForce Experience相关的组件以及一些用不到的驱动组件只保留CUDA核心、CUDA示例、NSight工具等。如果你选了“精简”安装虽然也能用但会自动帮你重装一遍显卡驱动可能导致驱动版本被覆盖反而破坏了原本稳定的环境。安装完成后默认会在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2下生成目录。安装器会自动配置环境变量但偶尔也会出现没配置好的情况所以装完后建议手动确认一下系统环境变量里是否有CUDA_PATH和CUDA_PATH_V11_2同时PATH里是否包含...\CUDA\v11.2\bin。如果缺失手动补上再重启终端。cuDNN的安装是下一个雷区。网上的老教程会告诉你去NVIDIA官网下载cuDNN压缩包解压后把bin、include、lib三个文件夹里的文件复制到CUDA安装目录。这个方法在cuDNN 8.x早期版本确实有效。但新版cuDNN 8.9之后NVIDIA推出了独立的安装包直接双击安装即可会自动写好环境变量。如果还是老版本记住“拷贝文件到CUDA目录”这一步不要做错一旦路径不对TensorFlow会在运行时提示缺失cudnn64_8.dll。2.3 Python环境和虚拟环境工具的取舍如果你打算长期搞深度学习我建议直接用Anaconda或Miniconda不要用系统自带的Python。原因很简单conda可以创建多个互相隔离的虚拟环境不同项目需要不同版本的TensorFlow、CUDA依赖时切换环境就好了不会污染系统级Python。这里有一个很多人不知道的细节conda不仅能管理Python版本还能直接通过conda源安装CUDA、cuDNN等非Python库比如conda install cudatoolkit11.2 cudnn8.1。这种情况下CUDA和cuDNN不是装到系统目录而是装进当前虚拟环境内。TensorFlow会优先在当前环境里搜索依赖库这能有效避开“系统里CUDA版本太多导致DLL混乱”的问题。不过有一点需要注意conda的cudatoolkit与NVIDIA官方CUDA Toolkit并不完全相同。官方CUDA Toolkit包含了编译器、开发头文件等完整工具链而cudatoolkit只是一个运行时库。如果你只是跑TensorFlowconda版本的cudatoolkit完全够用如果你还要写CUDA代码或编译自定义算子那么必须装官方CUDA Toolkit。3. 一步一步装从创建虚拟环境到验证GPU可用3.1 创建虚拟环境并安装TensorFlow以下步骤基于Anaconda/Miniconda环境命令在Anaconda Prompt或PowerShell中执行均可。首先创建Python 3.9的虚拟环境命名随意我用的是tf-gpu。conda create -n tf-gpu python3.9 conda activate tf-gpu激活环境后用pip安装TensorFlow 2.10pip install tensorflow2.10这里推荐用pip而不是conda因为TensorFlow在PyPI上的轮子是官方发布的预编译版本conda源里的TensorFlow更新有时候滞后而且依赖管理逻辑不同。不过安装完成后建议再用conda补装CUDA运行库这样能避开手动配置cuDNN的麻烦conda install cudatoolkit11.2 cudnn8.1如果你更习惯手动方式也可以跳过上面的conda命令改用官方CUDA Toolkit 11.2和手动拷贝cuDNN文件的方式。两种方案都能跑通区别只是环境变量复杂程度不同。我个人更推荐conda版本因为卸载或换版本时干净得多不会在系统里留一堆残留。安装过程如果下载速度慢可以换国内pip源pip install tensorflow2.10 -i https://pypi.tuna.tsinghua.edu.cn/simple3.2 让TensorFlow真正用上GPU的验证手段装完之后第一次验证是最关键的。我的标准流程是conda activate tf-gpu python然后输入下面这段代码import tensorflow as tf print(TensorFlow版本:, tf.__version__) print(GPU设备列表:, tf.config.list_physical_devices(GPU)) print(GPU是否可用:, tf.test.is_gpu_available(cuda_onlyTrue))如果一切正常第二条会打印出一个GPU设备列表类似[PhysicalDevice(name/physical_device:GPU:0, device_typeGPU)]第三条输出True同时控制台会打印出加载CUDA库的日志。如果GPU不可用第二条会显示为空列表第三条输出False。这种情况基本可以断定是CUDA库没找全或版本不对。另一个更直观的验证是跑一个小矩阵乘法观察日志import tensorflow as tf with tf.device(/GPU:0): a tf.constant([[1.0, 2.0], [3.0, 4.0]]) b tf.constant([[5.0, 6.0], [7.0, 8.0]]) c tf.matmul(a, b) print(c)TensorFlow的日志里会有类似device: GPU:0的信息并且运算确实发生在GPU上。3.3 环境变量的补充配置在Windows上有几个环境变量建议提前配好能减少很多后续的奇怪问题。第一个是CUDA_VISIBLE_DEVICES用于指定TensorFlow可见的GPU编号。如果电脑上有多个显卡比如核显独显有时TensorFlow会识别到核显导致你误以为GPU不可用。设置CUDA_VISIBLE_DEVICES0可以把可见设备限定为索引0的显卡。但注意设备索引是TensorFlow自己的枚举顺序不一定对应物理卡的顺序建议先打印设备列表确认。第二个是TF_CPP_MIN_LOG_LEVEL。这个变量控制TensorFlow输出日志的详细程度默认情况下会打印大量INFO级别的日志噪音很大。设置TF_CPP_MIN_LOG_LEVEL2可以屏蔽INFO和WARNING只保留错误信息。调试阶段建议不要设这个方便看加载了哪些库、跳过了哪些库。第三个是TF_FORCE_GPU_ALLOW_GROWTH。这个变量本质上对应代码里的allow_growth配置设为true时TensorFlow不会一次性把显存全部占满而是按需增长。在Windows上如果同时开多个程序比如浏览器、IDE、训练程序完全不限制显存很容易触发OOM。另外要说一下Microsoft Visual C Redistributable。TensorFlow在Windows上依赖Visual C运行库如果系统里没有import阶段就会报错。最常见的是缺少VCRUNTIME140.dllVisual Studio 2015-2022对应的运行库版本是通用的去微软官网下载安装最新版即可。装了Anaconda一般不会缺因为Anaconda自带了一堆运行库但你自己精简系统或绿地安装的就得手动补上。4. 实测中翻车概率最高的几个错误及完整排查链路4.1 装了TensorFlow却提示找不到cudart64_xxx.dll这个报错大概是Windows上TensorFlow GPU排障里最经典的问题。错误信息类似这样Could not load dynamic library cudart64_110.dll; dlerror: cudart64_110.dll not found很多人的第一反应是“CUDA没装好”于是重新装一遍CUDA然后发现还是报同样的错。这个问题的本质不在于有没有安装CUDA Toolkit而在于TensorFlow进程在启动时能不能在系统的DLL搜索路径里找到这个文件。Windows加载DLL的搜索顺序大致是应用程序所在目录、系统目录、系统目录下的System32、当前工作目录、PATH环境变量里的目录。TensorFlow是Python包它加载DLL时依赖的就是PATH。如果你把CUDA Toolkit装到了默认路径正常情况下安装器会把...\CUDA\v11.2\bin加进PATH这时cudart64_110.dll应该能被找到。但如果还找不到按下面的顺序排查打开命令提示符输入where cudart64_110.dll。如果没有显示任何路径说明PATH里确实没有CUDA的bin目录。手动检查C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin目录是否存在该文件。如果不存在检查你安装的CUDA版本号是否和报错信息里的版本号一致——比如报错写的是cudart64_110.dll那就意味着它要找的是CUDA 11.0的库而你如果装的是11.2文件名会变成cudart64_112.dll当然找不到。如果目录里有文件但where找不到说明PATH配置有问题手动添加...\CUDA\v11.2\bin到系统环境变量然后重新打开终端。如果使用的是conda虚拟环境还要检查当前环境里是否也有一个CUDA相关的库目录有时候conda的cudatoolkit包和系统CUDA同时存在两个版本的DLL冲突也会导致奇怪的问题。此时建议在环境里执行conda list cudatoolkit确认版本。还要注意一点有部分教程会让你把cudart64_110.dll手动复制到Python安装目录或System32目录。这个方法能用但我不推荐。因为一旦以后升级CUDA或换虚拟环境这个手动复制的DLL就成了历史遗留垃圾反而干扰后续排障。4.2 import tensorflow直接报错或者崩溃如果import tensorflow这一行就崩了常见原因有三类。第一类是Python版本太新。TensorFlow 2.10这个版本只支持Python 3.7到3.10如果你用Python 3.11或3.12pip虽然能装到包但运行时大概率会因为缺少适配Windows的预处理指令直接崩溃。排查方法是执行python --version如果版本过高用conda创建低版本环境重装。第二类是缺少Visual C运行库。报错会指向VCRUNTIME140.dll或MSVCP140.dll。解决方法就是安装Visual C Redistributable注意x64和x86两种架构都要装。第三类是驱动和CUDA版本严重不匹配。比如nvidia-smi显示驱动版本太老无法支持CUDA 11.2。这种情况会报类似CUDA driver version is insufficient for CUDA runtime version的错误排查方向就是升级驱动而不是换CUDA版本。另外还有一个比较少见但真实存在的情况杀毒软件拦截了DLL加载。Windows Defender有时会把刚解压的cuDNN DLL文件标记为可疑文件直接隔离。遇到这种情况检查一下Windows安全中心的“保护历史记录”如果有被隔离的文件恢复并添加排除项。这个问题在手动拷贝cuDNN文件时相对更容易触发。4.3 明明有GPU却跑在CPU上这个现象比直接报错更让人困惑安装过程没有任何错误代码也能运行但训练速度慢得离谱任务管理器里GPU计算利用率是0%CPU倒是拉满了。出现这种情况先用tf.config.list_physical_devices(GPU)确认TensorFlow是否能看到GPU。如果能看到设备但实际跑在CPU上多半是因为你代码里没有指定with tf.device(/GPU:0)或者某些算子在GPU上没有实现TensorFlow自动回退到CPU。前者是代码习惯问题后者是算子覆盖问题手动强制指定设备就能看出来。如果TensorFlow压根看不到GPU那问题基本锁定在两点一是CUDA和cuDNN版本不匹配也就是说虽然能import但GPU相关库一个都没加载成功二是显卡算力不达标。有个老显卡比如GTX 750 Ti这类Maxwell架构的卡计算能力是5.0理论上能跑但如果用的是极老版本的TensorFlow 1.15对计算能力的要求反而更严格。用nvidia-smi确认显卡型号后去查一下对应计算能力低于3.5的卡就别折腾了。最后一种隐蔽情况是双显卡笔记本。TensorFlow默认只选择一台GPU设备有时会选到核显。解决方法是设置环境变量CUDA_VISIBLE_DEVICES为独显的索引或者在Windows的图形设置里把Python进程指定为“高性能NVIDIA处理器”。4.4 显存不足导致程序启动即崩显存不足的崩溃往往来得毫无预兆可能训练刚开始就报错也可能跑到一半突然失败。错误信息通常包含Failed to allocate memory或OOM when allocating tensor。在Windows上显存不足的原因比Linux上多一个变量桌面图形环境也会占用显存。如果你用的是4K显示器桌面窗口管理器DWM可能会占用几百MB到1GB的显存。TensorFlow默认会尝试分配几乎所有可用显存这时就很容易触发OOM。解决策略有两个层面。第一是限制TensorFlow的显存使用在创建Session或策略前配置gpus tf.config.list_physical_devices(GPU) if gpus: try: tf.config.experimental.set_memory_growth(gpus[0], True) except RuntimeError as e: print(e)设置memory_growth为True之后TensorFlow只在确实需要时申请显存而不是启动时一次性占满。第二个策略是把batch size调小。如果显存本身只有4GB或6GB还硬跑batch size为64的ResNet那无论怎么设置内存增长都没用模型参数和中间特征图需要的显存已经超出了硬件极限。另外需要提一下Windows的TDR机制。Windows有一个“超时检测和恢复”机制如果GPU执行某个内核超过2秒不响应系统会认定驱动无响应触发超时重置。在深度学习训练中一些大矩阵乘法或卷积运算完全可能超过2秒于是会出现训练到一半屏幕黑一下然后驱动重启程序报错。这本质上不是显存问题而是长时间GPU计算触发了系统保护。解决方法是修改注册表里的TdrDelay把它从默认值2改成更大的值比如10或20。这个方法网上争议很大因为改注册表有一定风险但我实测下来对长周期训练确实有效。修改前建议先备份注册表改动范围也尽量小只修改TdrDelay和TdrDdiDelay这两项。5. 装上之后才算开始显存管理和性能调优的个人经验5.1 显存增长策略按需分配还是一把梭前面已经提到set_memory_growth这里展开说一下什么时候用哪种策略。如果你的机器是专用训练机除了训练脚本之外没有其他显存密集应用那把显存一次性全部占满反而有优势因为TensorFlow可以减少显存分配和释放的开销训练速度会略快一点。但如果你只是日常开发和调试同一个显卡上还挂着IDE、浏览器、远程桌面那我强烈建议开启set_memory_growth。我实际遇到过一次很尴尬的情况开了一个模型训练只是数据预处理阶段显存已经被占掉90%然后浏览器开个视频直接卡死系统都拖不动了。开了按需增长之后至少能把显存留给真正需要跑模型的阶段。另一个场景是用per_process_gpu_memory_fraction限制显存比例。比如设置0.5表示TensorFlow最多只能使用GPU总显存的50%。这个参数适合多进程共享显卡的场景比如同时跑两个训练任务。但要注意如果设置得不够恰好模型需要更多显存TensorFlow会直接OOM而且这个OOM的报错不是特别直白新手容易发懵。我的建议是单任务先用memory_growth跑一遍观察实际峰值占用再根据这个数据决定要不要限比例以及限制到多少。5.2 性能观察训练时怎么确认GPU真的在干活安装成功后很多人会兴奋地直接跑模型结果跑了一会儿发现训练速度比自己预想的慢很多就开始怀疑“GPU是不是没用上”。判断GPU是否在干活我习惯用三个工具。第一个是命令行工具nvidia-smi。训练过程中新开一个终端循环执行nvidia-smi可以实时看到显存使用量、GPU利用率、温度、功耗。如果GPU利用率保持在80%-100%说明计算引擎确实在满负荷工作。第二个是Windows自带的“任务管理器”切到“性能”标签页找到GPU一栏可以看到3D、Cuda、Video Encode等子项的利用率。TensorFlow在任务管理器中主要体现为“Cuda”或“Compute_0”这一项。如果训练时这一项是0%而3D那一项是满的说明TensorFlow实际没有把计算任务交给GPU。第三个是TensorFlow自带的Profiler。tf.profiler可以分析每个算子的耗时定位瓶颈。常见的性能问题有三类数据加载瓶颈GPU在等待CPU搬运数据、小算子过多导致kernel launch开销大、以及混合精度未开启导致显存和带宽压力过大。前两个问题在Windows上比Linux更常见因为Windows下文件读取和图像解码在多线程处理上不如Linux那么高效。解决数据加载瓶颈的通用方法是使用tf.data.Dataset的预取机制比如dataset.prefetch(tf.data.AUTOTUNE)或者把数据文件提前转成TFRecord格式。还有一个容易被忽略的点如果你的模型是小模型或计算密度低GPU利用率低是正常的。毕竟GPU的优势在并行计算小模型或处理小batch时数据搬运和算子启动的时间占比高GPU自然闲得发慌。这种情况先别怀疑安装问题改大batch size测试一下如果大batch下利用率能上来说明安装没问题是模型特性决定的。5.3 WDDM模式下的超时值问题前面提到Windows的TDR机制这是Windows独有的坑Linux和macOS都不会有。深度学习训练中有些单步计算特别重GPU内核执行时间超过了2秒Windows就会认为显卡驱动“卡死”了强制重置GPU。表现就是屏幕黑一下或闪烁然后程序报错多半是某个CUDA API调用失败或者驱动崩溃后TensorFlow“失联”。排查这个问题有个规律如果同样的模型在Linux上跑得好好的在Windows上跑到某个特定步骤就崩溃且崩溃前屏幕有闪烁那大概率就是TDR触发。最简单的应对办法是修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers新建DWORD值TdrDelay十进制设置为10或者更大单位秒。如果要彻底避免响应超时可以设到60。TdrDdiDelay同理设置成TdrDelay的3倍左右。不过说实话这个方法我只建议在单机调试时使用。如果是多人共用的机器修改TDR可能影响其他依赖桌面图形渲染的软件比如3D建模、视频剪辑等。更稳妥的思路是在代码层面优化比如把过大的矩阵运算拆小或者用混合精度脚本减少单算子耗时。但有些运算拆不了比如大矩阵的Cholesky分解或者全连接层的大batch计算这时候改TDR是绕不过去的。5.4 双显卡笔记本的独显直连问题最后说一个笔记本用户很容易遇到的问题。大部分游戏本都有两个GPU一个集成显卡Intel或AMD核显和一个NVIDIA独立显卡。TensorFlow默认会枚举所有支持CUDA的设备但设备的排列顺序不一定是你想要的。我遇到过一种情况一台双显卡笔记本nvidia-smi能正常显示NVIDIA显卡信息但TensorFlow列出的设备只有一个Intel核显。查了很久才发现是Windows图形设置里勾选了“节能”模式导致Python进程被强制绑定到核显。解决方法是到Windows的“设置 - 系统 - 屏幕 - 显示卡”里把Python进程或Anaconda的python.exe指定为“高性能”GPU。如果你用的是Jupyter Notebook还需要把对应的浏览器进程也设置成高性能否则Jupyter运行在浏览器里Python虽然调用了GPU但浏览器本身可能还是用核显渲染。比较新的NVIDIA驱动还支持在“NVIDIA控制面板 - 管理3D设置”里针对指定程序设置首选图形处理器。这里要注意TensorFlow实际调用的进程是python.exe不是你的IDE或浏览器。找到python.exe的路径添加进去然后强制指定为“高性能NVIDIA处理器”这样最稳妥。如果你对BIOS比较熟悉部分笔记本还支持“独显直连”模式让显示信号直接从NVIDIA显卡输出绕过核显。这个模式对游戏和视频输出有明显提升对深度学习训练本身影响不大但可以避免某些奇怪的选择设备问题。具体怎么开启不同品牌方法不一样建议先去官方支持页面查一下。我个人觉得TensorFlow GPU版在Windows上最大的问题不是安装步骤有多复杂而是很多人没有意识到“版本匹配”才是核心。驱动、CUDA、cuDNN、TensorFlow、Python这五者的版本关系搞清楚了安装过程其实很机械。如果你从头看到这里大概率已经能判断出自己之前是哪一步出了问题。装好之后我建议花点时间跑几个常规模型做基准测试记录显存占用和训练速度这样以后再换版本或换机器有个对照基线排查问题会快很多。
返回列表