pytorch变量

下文中所使用的pytorch版本为1.0.1

在python,如果全局变量在函数中没有提前用global申明,就修改其值,结果是这个全局变量不会被修改,会在这个函数中另外产生一个局部变量(名字相同)。

但是,如果全局变量是torch中的数据类型,那么在函数中修改全局变量的值,没有提前用global申明,也会改变这个全局变量的值。

但是注意一点,如果在函数中定义的torch中的数据类型变量,那么在函数外是不可以调用的。

转载于:https://www.cnblogs.com/yanxingang/p/10435556.html

### PyTorch 环境变量配置及其作用 在使用 PyTorch 进行开发时,合理配置环境变量可以优化性能并解决潜在问题。以下是常见的 PyTorch 环境变量及相关说明: #### 1. CUDA 及 GPU 配置相关 - **`CUDA_VISIBLE_DEVICES`**: 控制哪些 GPU 设备可供程序访问。通过设置此变量,可以选择特定的 GPU 或禁用某些设备。例如,仅允许第一个 GPU 被识别,可以通过以下命令实现: ```bash export CUDA_VISIBLE_DEVICES=0 ``` 如果希望启用多个 GPU,则可以用逗号分隔索引编号,如 `export CUDA_VISIBLE_DEVICES=0,1`[^1]。 - **`PYTORCH_CUDA_ALLOC_CONF`**: 配置显存分配策略。默认情况下,PyTorch 使用按需分配的方式管理显存。如果遇到内存碎片化问题,可通过调整此参数来改善。例如,采用快速释放模式: ```bash export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128 ``` #### 2. 数据加载与线程控制 - **`OMP_NUM_THREADS` 和 `MKL_NUM_THREADS`**: 设置 OpenMP 和 MKL 的线程数以优化 CPU 性能。当数据集较大或模型复杂度较高时,适当增加这些值可能提升效率。例如: ```bash export OMP_NUM_THREADS=4 export MKL_NUM_THREADS=4 ``` - **`NUMEXPR_MAX_THREADS`**: 类似于前两者的作用范围更广,适用于 NumExpr 库加速计算场景下的多线程支持。推荐将其设为物理核心数量的一半至两倍之间。 #### 3. 自动混合精度 (AMP) 支持 - **`CUBLAS_WORKSPACE_CONFIG`**: 当启用了自动混合精度训练 (`torch.cuda.amp`) 并且需要保持结果一致性时,应定义该变量防止 cuBLAS 出现非确定行为。通常做法如下所示: ```bash export CUBLAS_WORKSPACE_CONFIG=:16:8 ``` #### 4. 日志级别调节 - **`PYTHONWARNINGS`**: 抑制不必要的警告消息输出到终端屏幕从而简化调试过程。比如忽略未初始化张量操作产生的提示信息: ```python import warnings warnings.filterwarnings("ignore", category=UserWarning) ``` #### 5. 其他辅助功能开关 - **`NCCL_DEBUG`**: 开发分布式应用期间可能会碰到 NCCL 错误难以定位原因的情况;此时开启 debug 模式有助于排查网络通信层面的问题所在之处。执行方式如下所列: ```bash export NCCL_DEBUG=INFO ``` ```python import os os.environ['CUDA_VISIBLE_DEVICES'] = '0' os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'max_split_size_mb:128' os.environ['OMP_NUM_THREADS'] = '4' os.environ['MKL_NUM_THREADS'] = '4' os.environ['NUMEXPR_MAX_THREADS'] = '8' os.environ['CUBLAS_WORKSPACE_CONFIG'] = ':16:8' os.environ['NCCL_DEBUG'] = 'INFO' ``` 以上列举了一些常用的 PyTorch 环境变量以及它们各自的功能描述[^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值