Linux 中指定使用的GPU

本文详细介绍了在Linux环境下如何查看NVIDIA GPU的使用情况及编号,并提供了两种实用的方法来指定GPU进行运算:一种是在终端执行程序时通过设置环境变量CUDA_VISIBLE_DEVICES来选择GPU,另一种是在Python代码中设置同样的环境变量来达到相同的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 查看GPU 编号及其使用信息

参考文章Linux下查看NVIDIA的GPU使用情况

$ nvidia-smi

在这里插入图片描述
其中左上侧有0、1、2、3的编号,表示GPU的编号,在后面指定GPU时需要使用这个编号。

2 方法一:在终端执行程序时指定GPU

$ CUDA_VISIBLE_DEVICES=1   python  run_file.py

可用以下形式:

CUDA_VISIBLE_DEVICES=1 Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1 Devices 0 and 1 will be visible
CUDA_VISIBLE_DEVICES=“0,1” Same as above, quotation marks are optional
CUDA_VISIBLE_DEVICES=0,2,3 Devices 0, 2, 3 will be visible; device 1 is masked
CUDA_VISIBLE_DEVICES="" No GPU will be visible

3 方法二:在Python代码中指定GPU

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
### YOLOv8算法准确率提升曲线图表示方法 在分析YOLOv8算法的准确率提升时,通常会利用多种图表来直观展示模型性能的变化趋势。这些图表可以反映不同阶段训练过程中的改进效果以及最终达到的性能水平。 #### 1. 训练过程中损失函数变化曲线 通过绘制训练集和验证集上的损失函数随迭代次数或epoch的变化曲线,能够清晰地观察到模型收敛的过程。如果经过某些特定优化措施(如调整学习率、数据增强方式等),可以看到损失下降速度加快或者最终稳定在一个更低的位置,则表明该优化手段有效提升了模型表现[^2]。 ```python import matplotlib.pyplot as plt epochs = range(1, 51) # 假设共有50个epoch train_loss = [random.uniform(3, 0.1) for _ in epochs] # 模拟训练损失值 val_loss = [random.uniform(4, 0.2) for _ in epochs] # 模拟验证损失值 plt.figure(figsize=(10,6)) plt.plot(epochs, train_loss, label='Training Loss') plt.plot(epochs, val_loss, label='Validation Loss', linestyle="--") plt.title('Loss Curve Over Epochs') plt.xlabel('Epochs') plt.ylabel('Loss Value') plt.legend() plt.grid(True) plt.show() ``` #### 2. 不同版本/配置下mAP对比柱状图 对于多个实验设置下的平均精度均值(mAP),可以用柱形图来进行比较。每一个条形代表一种条件组合的结果;高度越高说明对应条件下得到的目标检测器具有更好的综合识别能力[^1]。 #### 3. F1分数与Precision-Recall Trade-off关系图 除了单独查看precision或recall之外,还可以制作PR曲线下面积(AUC-ROC)以及F1 score随着阈值改变而变动的趋势图。这有助于理解模型在哪种情况下取得了最佳平衡点,并据此判断哪些修改真正促进了整体质量的进步[^3]。 ```python thresholds = np.linspace(0, 1, num=100) precisions = [] recalls = [] for t in thresholds: precision_t = calculate_precision(t) recall_t = calculate_recall(t) precisions.append(precision_t) recalls.append(recall_t) f1_scores = [(2*p*r)/(p+r) if p+r !=0 else 0 for p,r in zip(precisions,recalls)] fig, ax1 = plt.subplots() color = 'tab:red' ax1.set_xlabel('Threshold') ax1.set_ylabel('Precision & Recall', color=color) ax1.plot(thresholds, precisions, label="Precision", color=color) ax1.tick_params(axis='y', colors=color) ax1.legend(loc='upper left') ax2 = ax1.twinx() color = 'tab:blue' ax2.set_ylabel('F1 Score', color=color) ax2.plot(thresholds, f1_scores, label="F1-Score", color=color) ax2.tick_params(axis='y', colors=color) ax2.legend(loc='lower right') fig.tight_layout() plt.show() ``` 以上几种图形化工具都可以用来表达YOLOv8算法准确度方面的进展状况。具体选择哪一类取决于想要传达的信息重点是什么。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值