查看: 1327|回复: 2

torch.Tensor和numpy.ndarray

[复制链接]

665

主题

1234

帖子

6568

积分

xdtech

Rank: 5Rank: 5

积分
6568
发表于 2020-5-13 08:41:05 | 显示全部楼层 |阅读模式
1. torch.Tensor和numpy.ndarray相互转换
[url=][/url]
import torchimport numpy as np# <class 'numpy.ndarray'>np_data = np.arange(6).reshape((2,3))# <class 'torch.Tensor'>torch_data = torch.from_numpy(np_data)# <class 'numpy.ndarray'>tensor2array = torch_data.numpy()print('numpy array:\n',np_data,type(np_data),      '\ntorch tensor:\n',torch_data,type(torch_data),      '\ntensor to array:\n',tensor2array,type(tensor2array))


回复

使用道具 举报

665

主题

1234

帖子

6568

积分

xdtech

Rank: 5Rank: 5

积分
6568
 楼主| 发表于 2020-5-13 08:41:31 | 显示全部楼层
3. 矩阵乘法(正确的做法)
data = [[1,2], [3,4]]
tensor = torch.FloatTensor(data)
print(
    '\nmatrix multiplication (matmul):',
    '\nnumpy:\n', np.matmul(data, data),     # [[7, 10], [15, 22]]
    '\ntorch:\n', torch.mm(tensor, tensor))  # [[7, 10], [15, 22]]
回复

使用道具 举报

665

主题

1234

帖子

6568

积分

xdtech

Rank: 5Rank: 5

积分
6568
 楼主| 发表于 2020-5-13 08:41:46 | 显示全部楼层
torch.Tensor:是一个包含了一种数据类型元素的多维矩阵,缺省为torch.FloatTensor
2. torch.Tensor和numpy.ndarray一些简单操作,如均值,绝对值,sin,log等
复制代码
data = [-1,-2,1,2]
tensor_default = torch.Tensor(data)
tensor = torch.FloatTensor(data)
print('tensor default type:\n',tensor_default,
      '\ntensor FloatTensor type:\n',tensor,
      '\nabs:',
      '\nnumpy:',np.abs(data),
      '\ntorch:',torch.abs(tensor),
      '\nsin:',
      '\nnumpy:',np.sin(data),
      '\ntorch:',torch.sin(tensor),
      '\nmean:',
      '\nnumpy:',np.mean(data),
      '\ntorch:',torch.mean(tensor),)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表