使用torch-gpu处理数据错误 01

17 篇文章 2 订阅
7 篇文章 0 订阅

今天运行下面的代码时候,出现了这个问题,百度半天没有找到合适的解决办法,思考半天,终于用两行代码解决了,记一下!!

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/12/28 20:52
# @Author : LZQ
# @Software: PyCharm


import torch

x = torch.randn(5,4)
y=x.new_ones(5,4,dtype=float)
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(device)
x=x.to(device).cuda()
y=y.to(device).cuda()
z=x+y
print(z)

报错原因如下:

E:\lzqData\3d\anaconda3\Anaconda3\python.exe G:/pychram/workspace/python/study_pytorch/pytorch01/pytorch002.py
cuda:0
Traceback (most recent call last):
  File "G:/pychram/workspace/python/study_pytorch/pytorch01/pytorch002.py", line 19, in <module>
    z=x+y
RuntimeError: expected device cuda:0 and dtype Double but got device cuda:0 and dtype Float

Process finished with exit code 1

原因是,我的x,y的类型是float不对,但是gpu想要的是double,把float改为double并不行,解决办法如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/12/28 20:52
# @Author : LZQ
# @Software: PyCharm

import torch



x = torch.randn(5,4)
y=x.new_ones(5,4,dtype=float)
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(device)
x=x.double()  #为x添加double()函数
y = y.double()#为y添加double()函数
x=x.to(device).cuda()
y=y.to(device).cuda()
z=x+y
print(z)

结果:

E:\lzqData\3d\anaconda3\Anaconda3\python.exe G:/pychram/workspace/python/study_pytorch/pytorch01/pytorch002.py
cuda:0
tensor([[ 1.1086,  2.0426,  2.0449, -0.2139],
        [ 0.1211,  0.6647,  1.4036,  3.2326],
        [ 1.5524,  1.1472,  1.5518,  2.5580],
        [ 2.8068,  2.0145,  2.6142,  1.5480],
        [ 1.1827,  1.7224,  2.8095, -0.1689]], device='cuda:0',
       dtype=torch.float64)

Process finished with exit code 0

问题分析:因为类型不匹配,我们要把x和y转换成我们想要的double,但是直接在dtype中改,是不支持的,所以我们强制转换。就搞定啦。爽歪歪!!!

### 回答1: Torch是一种用于机器学习和深度学习的工具。然而,有时候在使用Torch时可能会遇到一些问题,例如无法使用GPU进行计算。解决这个问题的方法是通过命令行参数添加“--skip-torch-cuda-test”。 这个问题的原因通常是因为在使用Torch之前未正确配置CUDA库。当Torch尝试使用GPU时,它会尝试运行一些GPU测试,以确保CUDA库已正确安装。如果测试失败,Torch将无法使用GPU。 添加“--skip-torch-cuda-test”命令行参数可以绕过这个测试,从而让Torch能够在没有GPU支持的情况下正常工作。但是,这样做并不是最终的解决方案,因为在使用基于深度学习的应用程序时,GPU通常可以提高计算速度和效率。 因此,为了最大化Torch的性能,最好是解决CUDA库的配置问题,并为Torch启用GPU支持。这样可以让我们利用GPU的并行计算优势来加速训练和预测过程。 ### 回答2: 首先,Torch是一种开源的机器学习框架,它提供了很多优秀的工具包和算法,支持用户进行高效的深度学习,计算机视觉,自然语言处理等应用。与此同时,Torch还支持在GPU上运算,以加速训练模型的速度。不过,在安装Torch时,有时候会出现无法使用GPU的问题。 这个问题可能与本地GPU的驱动程序或Cuda版本不兼容有关,也可能是用户在配置时出现了错误。如果你确保本地GPUCuda安装正确,并且仍然无法使用GPU,则可以尝试在命令行中添加--skip-torch-cuda-test参数来跳过CUDA测试阶段,以尝试解决问题。 这个参数的意义是在启动Torch时跳过CUDA的兼容性测试,因为在测试期间可能会出现错误,导致Torch无法使用GPU。通过添加该参数,可以让Torch忽略这些错误,并以CPU模式启动,用于排除其他错误。 但是,值得注意的是,这个参数并不是一个理想的解决方案,因为它无法真正解决无法使用GPU的根本原因。如果您想在Torch中成功地使用GPU,您应该在CUDA安装和配置时小心,确保所有依赖项和兼容性问题得到解决。同时,使用最新版本的TorchCUDA也可能会减少可能出现的错误,从而提高使用GPU的成功率。 ### 回答3: Torch是一种流行的机器学习框架,它允许您构建和训练神经网络模型。GPU是一种高性能的处理器,可以用来训练深度神经网络模型。然而,有时候在使用Torch时,我们可能会遇到一个问题:Torch不能使用GPU。 这个问题的原因可能是你的电脑上没有安装CUDA工具包。CUDA是一种由NVIDIA开发的并行计算平台和编程模型,允许您在GPU上进行并行计算。因此,如果您想要在Torch使用GPU进行模型训练,您需要先安装CUDA工具包。 如果您已经安装了CUDA工具包,但在Torch中仍无法使用GPU,您可以尝试使用命令行选项“--skip-torch-cuda-test”。这个选项可以让Torch绕过对CUDA的测试,从而强制使用CPU进行模型训练。 但是需要注意的是,如果您硬件支持GPU加速,建议不要使用这个选项。因为使用GPU可以大大缩短模型训练所需的时间,提高模型的训练效率和准确率。如果您确实需要使用CPU进行训练,您可以考虑使用更轻量级的模型或者减小训练数据的规模,以减少训练时间。 总之,要在Torch使用GPU,您需要先安装CUDA工具包,并确保您的硬件支持GPU加速。如果出现问题,您可以尝试使用选项“--skip-torch-cuda-test”,但不建议这样做。最好的做法是解决问题,让Torch能够正确地使用GPU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路卿老师

大哥大姐给点吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值