Torch学习——使用CUDA

Torch学习——使用CUDA


1. CUDA安装

CUDA在Ubuntu下的安装[1]还是很方便的,但不知为什么很多安装Caffe的教程都把CUDA安装搞得很繁琐。

2. 代码示例


输入[4]请求使用“cutorch”包。cutorch包是torch的CUDA版本,torch提供FloatTensor张量,而cutorch能提供所有运算在GPU上操作的CudaTensor张量。cutorch中的函数可以设置和获得设备的属性等信息[2]。

输入[7]创建了1个CudaTensor张量,看起来是个100维向量,用fill填充0.5至每个向量的元素。add函数实现两个向量间按元素相加,相加结果赋给t1。

输入[8]为GPU张量和CPU张量的相互转换。
GPU张量转CPU张量:t1是CudaTensor,t1:float()则转换成CPU的FloatTensor。
CPU张量转GPU张量:t1[{}]=t1_cpu,将CPU张量的值赋值给GPU张量t1。t1_cpu:cuda()也是将CPU张量转成GPU张量,但这个GPU张量是新建的。
zero()函数可以把GPU张量清0。

输入[18]为多层感知机。MLP的定义和Keras一样。多层感知机的每层都是线性连接,激活函数为tanh。mlp定义了3层后移动至GPU。input为FloatTensor,cuda()转成CudaTensor,作为Sequential实例的forward函数的输入,forward函数的输出result是CudaTensor,float()转成FloatTensor。仅仅是个随机数向量在MLP中的前向传播过程。

输入[19]是把输入输出都为CudaTensor的多层感知机mlp包装成输入输出都为FloatTensor的多层感知机mlp_auto[3]。

3. 参考链接

[1]http://www.r-tutor.com/gpu-computing/cuda-installation/cuda7.5-ubuntu
[2]https://github.com/torch/cutorch
[3]http://code.madbits.com/wiki/doku.php?id=tutorial_cuda

### 解决PyTorch未编译启用CUDA的问题 当遇到`AssertionError: Torch not compiled with CUDA enabled`错误时,表明当前使用的PyTorch版本不支持CUDA,尽管硬件设备具备相应的功能。为了使PyTorch能够利用GPU加速计算,需确保安装的是已编译并启用了CUDA支持的特定版本。 #### 验证现有环境配置 确认系统中是否存在有效的CUDA工具链以及其具体版本号至关重要。这可以通过命令行执行`nvcc --version`来完成验证过程[^3]。如果该指令返回有效输出,则说明计算机上确实安装有CUDA;反之则需要先部署合适的驱动程序与开发包。 #### 安装兼容版PyTorch 依据检测到的本地CUDA版本,在线访问[PyTorch官方网站](https://pytorch.org/get-started/locally/)获取推荐安装指南。页面提供了针对不同操作系统、Python解释器及CUDA规格定制化的安装选项列表。选择最接近实际需求的一项进行操作即可实现带有CUDA支持特性的PyTorch库加载入项目之中[^1]。 #### 校验新设置有效性 成功更新软件栈之后,建议编写一小段测试脚本用于检验更改效果: ```python import torch if __name__ == "__main__": print(f"CUDA Available? {torch.cuda.is_available()}") device = "cuda" if torch.cuda.is_available() else "cpu" tensor_example = torch.tensor([0., 1.], dtype=torch.float).to(device) print(tensor_example.device, tensor_example) ``` 上述代码片段会尝试创建一个张量对象并将它放置于可用的最佳位置——即优先考虑GPU资源而非CPU处理单元。最终打印出来的信息应当反映出所选设备名称及其承载的数据实例详情。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值