在pytorch中,读取GPU上张量的数值 (数据从GPU到CPU) 的几种常用方法
2023-12-29 11:34:57
1、.cpu() 方法:
????????使用 .cpu() 方法可以将张量从 GPU 移动到 CPU。这是一种简便的方法,常用于在进行 CPU 上的操作之前将数据从 GPU 取回
import torch
# 在 GPU 上创建一个张量
gpu_tensor = torch.tensor([1, 2, 3], device='cuda')
# 将 GPU 上的张量移动到 CPU
cpu_tensor = gpu_tensor.cpu()
# 打印输出
print("GPU Tensor:", gpu_tensor)
print("CPU Tensor:", cpu_tensor)
GPU Tensor: tensor([1,2,3],device='cuda:')
CPU Array: tensor([1,2,3])
2、.to('cpu') 方法:
????????使用 .to('cpu') 方法也可以将张量移动到 CPU。这是一个通用的设备转移方法,可以指定目标设备和其他参数。
import torch
# 在 GPU 上创建一个张量
gpu_tensor = torch.tensor([1, 2, 3], device='cuda')
# 将 GPU 上的张量移动到 CPU
cpu_tensor = gpu_tensor.to('cpu')
# 打印输出
print("GPU Tensor:", gpu_tensor)
print("CPU Tensor:", cpu_tensor)
GPU Tensor: tensor([1,2,3],device='cuda:')
CPU Array: tensor([1,2,3])
3、.numpy() 方法:
????????使用 .numpy() 方法将 GPU 上的张量转换为 NumPy 数组。这个方法实际上是先将张量移动到 CPU,然后转换为 NumPy 数组。
import torch
# 在 GPU 上创建一个张量
gpu_tensor = torch.tensor([1, 2, 3], device='cuda')
# 将 GPU 上的张量移动到 CPU,并转换为 NumPy 数组
cpu_array = gpu_tensor.cpu().numpy()
# 打印输出
print("GPU Tensor:", gpu_tensor)
print("CPU Array:", cpu_array)
GPU Tensor: tensor([1,2,3],device='cuda:')
CPU Array: array([1,2,3])
4、.tolist() 方法:
????????使用 .tolist() 方法将张量转换为 Python 列表。
import torch
# 在 GPU 上创建一个张量
gpu_tensor = torch.tensor([1, 2, 3], device='cuda')
# 将张量转换为 Python 列表
python_list = gpu_tensor.tolist()
# 打印输出
print("GPU Tensor:",gpu_tensor)
print("\nPython_list:",python_list)
GPU Tensor: tensor([1,2,3],device='cuda:')
Python_list: [1,2,3]
5、.item() 方法:
????????如果张量只包含一个元素,可以使用 .item() 方法直接获取该元素的 Python 数值。
import torch
# 在 GPU 上创建一个张量
gpu_tensor = torch.tensor(3, device='cuda')
# 获取张量的数值
value = gpu_tensor.item()
# 打印输出
print("GPU Tensor:", gpu_tensor)
print("Value:", value)
GPU Tensor: tensor(3,device='cuda:')
Value: 3
文章来源:https://blog.csdn.net/weixin_51659315/article/details/135251392
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!