赞
踩
1、点击打开《基于Windows中学习Deep Learning之搭建Anaconda+Cudnn+Cuda+Pytorch+Pycharm工具和配置环境完整最简版》文章
2、点击打开《基于Pytorch查看本地或者远程服务器GPU及使用方法》文章
model = Net() # 举例模型
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device) # 移动举例模型到cuda
或者
model = Net() # 举例模型
device = torch.cuda.current_device() if args.cuda else torch.device('cpu')
model.to(device) # 移动举例模型到cuda
drug_embeddings = drug_embeddings.cuda()
protein_embeddings = protein_embeddings.cuda()
effectives = effectives.cuda()
或者
drug_embeddings = drug_embeddings.to(device)
protein_embeddings = protein_embeddings.to(device)
effectives = effectives.to(device)
Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same or input should be a MKLDNN tensor and weight is a dense tensor
问题中文翻译成
输入类型(torch.FloatTensor)和权重类型(torch.cuda.FloatTensor)应该相同,或者输入应该是MKLDNN张量,权重是密集张量
Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
问题中文翻译成
预期所有张量都在同一设备上,但至少找到了两个设备,cuda:0 和 cpu !
问题1和问题2解决方法(相同):首先根据错误的提示找到代码中是哪行数据出现的问题,然后针对性的解决,以数据XR出问题举例,分两种情况:第一种情况是如果此数据XR通过torch.FloatTensor(数据XR)
构造,那么改成torch.cuda.FloatTensor(数据XR)
即可;第二种情况是并非构造数据XR,而是将数据XR传输到另一个子模型中,那么直接在数据XR的后面加上cuda即可,也就是“数据XR.cuda()
”即可。
问题 3:代码运行过程中CUDA运输内存不够分配
CUDA out of memory. Tried to allocate 490.00 MiB (GPU 0; 2.00 GiB total capacity; 954.66 MiB already allocated; 62.10 MiB free; 978.00 MiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
问题中文翻译成
CUDA内存不足。尝试分配490.00 MiB(GPU 0;2.00 GiB总容量;954.66 MiB已分配;62.10 MiB可用;PyTorch总共保留978.00 MiB)如果保留内存>>已分配内存,请尝试设置max_split_size_mb以避免碎片。请参阅内存管理和PYTORCH_CUDA_ALLOC_CONF的文档
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。