pytorch网络的数据在gpu/cpu需要注意的转换问题

注意数据的位置GPU还是CPU中

普通数据转换为tensor

torch.tensor(普通数据对象)

改变数据位置

torch数据对象.cpu() # 放入到cpu
torch数据对象.cuda() #放入到gpu

gpu,cpu中的张量数据转换为numpy的数组

torch数据对象.numpy() #cpu中的数据转换
torch数据对象.cpu().numpy() #gpu中的数据转换,!!一定要先转换到cpu上

将numpy的数据转换为torch的tensor

troch.from_numpy(numpy的数据)
import numpy as np
import torch
import numpy as np


a = [
		[3,2],
		[3,4]
	]
# i = a.cuda() # 想要转换为gpu中的数据,首先需要转换为张量
b = torch.tensor(a)  # 将list数据转换为张量
print(b)

c = b.cuda()  # 使用cuda()将数据放入gpu中
print(c)

f = c.cpu()  # 将数据从gpu复制到cpu
g = f.numpy() # 将cpu中的tensor数据转换为numpy的数组
h = c.cpu().numpy() # gpu中的tensor数据只能先转换为cpu中的数据在转换为numpy的数据

a_numpy = np.array(a) # 将list转换为numpy的数组
print(a_numpy)

e = torch.from_numpy(a_numpy) #将numpy的数据转换到cpu的张量
print(e)

d = torch.tensor(3)
print(d.item())  # item函数返回的是一个数值标量,d张量里必须只有一个元素

你可能感兴趣的:(笔记,一些自己的小用法,pytorch,numpy,python)