pytorch学习笔记 1.1 numpy和torch对比

一、numpy和torch的简单介绍

1、numpy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,numpy会把array放在CPU中加速运算。
2、Torch自称为神经网络中的numpy。它会将torch产生的tensor放在GPU中加速运算。PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。

二、numpy和torch的转换

# 本文所需头文件
import torch
import numpy as np
np_data = np.arange(6).reshape((2,3))			# 将数组转换成2行3列的形式
torch_data = torch.from_numpy(np_data)			# numpy 转换成 torch
tensor_to_array = torch_data.numpy()			# torch 转换成 numpy

print(
    '---numpy---\n',np_data,
    '\n---torch---\n',torch_data,
    '\n---tensor_to_array---\n',tensor_to_array,
)

输出结果:

---numpy---
 [[0 1 2]
 [3 4 5]] 
---torch---
 tensor([[0, 1, 2],
        [3, 4, 5]], dtype=torch.int32) 
---tensor_to_array---
 [[0 1 2]
 [3 4 5]]

Process finished with exit code 0

三、numpy和torch的部分数学计算

np_data1 = [-1,-2,-3,4]
torch_data1 = torch.FloatTensor(np_data1)			# 转换成32位浮点 tensor

print(
    '\n---numpy--abs--\n', np.abs(np_data1),		# abs 计算绝对值
    '\n---torch---abs--\n',torch.abs(torch_data1),
    '\n\n---numpy--mean--\n', np.mean(np_data1),	# mean 计算平均值
    '\n---torch---mean--\n',torch.mean(torch_data1),
    '\n\n---numpy--sin--\n', np.sin(np_data1),		# sin 计算正弦值
    '\n---torch---sin--\n',torch.sin(torch_data1),
)

输出结果:

---numpy--abs--
 [1 2 3 4] 
---torch---abs--
 tensor([1., 2., 3., 4.]) 

---numpy--mean--
 -0.5 
---torch---mean--
 tensor(-0.5000) 

---numpy--sin--
 [-0.84147098 -0.90929743 -0.14112001 -0.7568025 ] 
---torch---sin--
 tensor([-0.8415, -0.9093, -0.1411, -0.7568])

Process finished with exit code 0

四、numpy和torch的矩阵运算

#matrix_multiply
np_data2 = [[1,2],[3,4]]
torch_data2 = torch.FloatTensor(np_data2)

print(
    '\nnumpy\n',np.matmul(np_data2,np_data2),	# 计算矩阵乘法
    '\ntorch\n',torch.mm(torch_data2,torch_data2),
)

#matrix_dot
np_data2 = [1,2,3,4]
torch_data2 = torch.FloatTensor(np_data2)
np_data2 = np.array(np_data2)

print(
    '\nnumpy\n',np_data2.dot(np_data2),				# [[7, 10], [15, 22]] 在numpy 中可行
    '\ntorch\n',torch.dot(torch_data2,torch_data2)	# torch 会转换成 [1,2,3,4].dot([1,2,3,4) = 30.0
)

输出结果:

---numpy---
 [[ 7 10]
 [15 22]] 
---torch---
 tensor([[ 7., 10.],
        [15., 22.]])


---numpy---
 30 
---torch---
 tensor(30.)

Process finished with exit code 0

注释:使用dot函数运算后结果为30的原因是:1×1+2×2+3×3+4×4 = 30;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值