pytroch取张量数据

简介: pytroch取张量数据
print('1111',loss)
print('2222',loss.data)#tensor且GPU
print('3333',loss.cpu())
print('4444',loss.cpu().data)#tensor且CPU
# print('5555',loss.cpu().data[0])#报错 IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number
# print('6666',loss.cpu().numpy())#报错 RuntimeError: Can't call numpy() on Variable that requires grad. Use var.detach().numpy() instead.
print('7777',loss.cpu().detach().numpy())
print('8888',loss.cpu().data.numpy())
print('9999',loss.cpu().item())
print('aaaa',loss.item())#后四者一样,都是把数值取出来

代码:

image.png

结果:

image.png

loss.data:读取Variable中的tensor,一般是在GPU上面的,如果用了cuda


loss.cpu():cpu是把数据转移到cpu上,注意numpy只能放在CPU上面


loss.data.cpu():取出tensor放到cpu上面


loss.data.cpu().numpy():取出tensor放到cpu上面,并且把tensor转化为numpy


loss.item():取出单元素张量的元素值并返回该值,保持原元素类型不变。,即:原张量元素为整形,则返回整型,原张量元素为浮点型则返回浮点型,etc.


loss.detch():返回一个新的tensor,从当前计算图中分离下来的,但是仍指向原变量的存放位置,不同之处只是requires_grad为false,得到的这个tensor永远不需要计算其梯度,不具有grad。说白了就是从计算图剥离这个变量。


即使之后重新将它的requires_grad置为true,它也不会具有梯度grad

这样我们就会继续使用这个新的tensor进行计算,后面当我们进行反向传播时,到该调用detach()的tensor就会停止,不能再继续向前进行传播


一般取出值在tensorboard里面绘制,我会选择loss.item(),我觉得安全一点,如果有不对请指正!

相关文章
|
6天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch的10个基本张量操作
PyTorch是一个基于python的科学计算包。它的灵活性允许轻松集成新的数据类型和算法,并且框架也是高效和可扩展的,下面我们将介绍一些Pytorch的基本张量操作。
79 1
|
6天前
|
机器学习/深度学习 PyTorch TensorFlow
PyTorch使用一维卷积对时间序列数据分类
PyTorch使用一维卷积对时间序列数据分类
100 0
|
8月前
|
机器学习/深度学习 PyTorch TensorFlow
定义张量
张量是一种多维数组,可以用来表示空间中的数据。它通常用于机器学习和人工智能领域,特别是在深度学习中。张量可以看作是多维数组,其中每个元素也是一个数组,可以包含多个元素。
53 1
|
9月前
|
机器学习/深度学习 PyTorch TensorFlow
张量(Tensor)
张量(Tensor)是矩阵的推广,是一种多维数组或多维矩阵的概念。它可以包含零个或多个轴(也称为维度),每个轴上有固定的大小。张量可以是标量(零维张量)、向量(一维张量)、矩阵(二维张量)以及更高维度的数组。
95 1
|
10月前
|
机器学习/深度学习
《深度学习500问》标量、向量、张量相关联系
《深度学习500问》标量、向量、张量相关联系
76 0
|
机器学习/深度学习 索引
深度学习基础:标量、向量、矩阵、张量
深度学习基础:标量、向量、矩阵、张量
689 0
深度学习基础:标量、向量、矩阵、张量
|
PyTorch 算法框架/工具
torch,如何将两个二维张量,按照第一维度,合并
在这个例子中,torch.cat() 函数的第一个参数是一个列表,包含要拼接的张量 x 和 y,第二个参数是拼接的维度,即第一维度。拼接后的张量 z 的形状为 (6, 4),因为两个原始张量的第一维度都是 3,拼接后就变成了 6。
605 0
|
PyTorch 算法框架/工具 索引
pytorch中,假设已经有了一个张量a,现在还有一个张量B,张量B为一维的张量,如何利用B张量的元素作为索引去检索a张量的元素?
可以使用PyTorch的索引操作符[]和张量的gather()方法来利用张量B的元素作为索引来检索张量a的元素。
175 0
|
PyTorch 算法框架/工具
pytorch如何将多个tensor一维度张量,合并成一个张量
在 PyTorch 中,可以使用 torch.cat() 函数将多个张量沿着指定维度进行合并。下面是一个例子:
1273 0
|
存储 PyTorch 算法框架/工具
pytorch 如何按行计算tensor张量的二范数
在 PyTorch 中,可以使用 torch.norm(input, dim=1) 函数来按行计算张量的二范数。具体来说,input 是一个张量,dim=1 表示按照行的方向计算二范数。
516 0