pytorch和Numpy的区别以及相互转换

# -*- coding: utf-8 -*-
# @Time    : 2018/1/17 16:37
# @Author  : Zhiwei Zhong
# @Site    : 
# @File    : Numpy_Pytorch.py
# @Software: PyCharm

import torch
import numpy as np

np_data = np.arange(6).reshape((2, 3))

# numpy 转为 pytorch格式

torch_data = torch.from_numpy(np_data)
print(
    '\n numpy', np_data,
    '\n torch', torch_data,
)
'''
 numpy [[0 1 2]
 [3 4 5]] 
 torch 
 0  1  2
 3  4  5
[torch.LongTensor of size 2x3]
'''
# torch 转为numpy
tensor2array = torch_data.numpy()
print(tensor2array)
"""
[[0 1 2]
 [3 4 5]]
"""
# 运算符
# abs 、 add 、和numpy类似
data = [[1, 2], [3, 4]]
tensor = torch.FloatTensor(data)        # 转为32位浮点数,torch接受的都是Tensor的形式,所以运算前先转化为Tensor
print(
    '\n numpy', np.matmul(data, data),
    '\n torch', torch.mm(tensor, tensor)        # torch.dot()是点乘
)
'''
 numpy [[ 7 10]
 [15 22]] 
 torch 
  7  10
 15  22
[torch.FloatTensor of size 2x2]
'''

你可能感兴趣的:(机器学习)