目录
1.单位的创建和操作
1.创建
2.形状变换
2.数学和统计操作
1.矩阵乘法
2.广播
3.统计计算
3.GPU支持
4.在深度学习中的作用
5.应用范围
NumPy库为数组服务,PyTorch库为张量服务,这是最本质的区别。
1.单位的创建和操作
1.创建
NumPy:使用 np.array([1, 2, 3])
来创建数组。
PyTorch:使用 torch.tensor([1, 2, 3])
来创建张量。这里的张量在 PyTorch 中与 NumPy 的数组相似。
2.形状变换
NumPy:arr.reshape(2, 3)
用于改变数组形状。
PyTorch:tensor.view(2, 3)
或 tensor.reshape(2, 3)
用于改变张量形状。
2.数学和统计操作
1.矩阵乘法
NumPy:np.dot(a, b)
或 a @ b
。
PyTorch:torch.matmul(a, b)
或 a @ b
。
2.广播
广播机制是一种在不同形状的数组(或张量)之间进行数学运算时使用的技术,它能自动扩展数组的维度,使其符合运算要求,从而避免了明确复制数据的需要。这种机制可以显著减少内存使用,并提高计算效率。
NumPy 和 PyTorch 都支持广播机制,允许形状不完全相同的数组进行数学操作。具体可以参考我的NumPy库介绍这篇文章。
3.统计计算
NumPy:arr.mean()
, arr.sum()
, np.median(arr)
等。
PyTorch:tensor.mean()
, tensor.sum()
, torch.median(tensor)
等。
3.GPU支持
NumPy:主要在 CPU 上运行,没有内建的 GPU 支持。
PyTorch:可以直接在 GPU 上运行计算,通过 .to('cuda')
方法将张量移动到 GPU。
在这里简单介绍下GPU
GPU(图形处理单元)是一种专门设计用来处理图形和视频渲染的计算设备。不过,由于其高度并行的结构,现在GPU也广泛用于各种高性能计算任务,特别是在数据科学、机器学习和深度学习领域。
如何查看自己的GPU呢?
打开任务管理器,调到性能这一栏
如果想要查看Gpu是否在工作,在命令行用nvidia-smi命令打开,前提是要安装CUDA和nvidia驱动。具体可查看这篇文章Windows10下cmd中nvidia-smi命令输入无效的解决办法_nvidia-smi' 不是内部或外部命令,也不是可运行的程序 或批处理文件。-CSDN博客
正常跑深度学习模型时,Gpu可达到百分之九十多。
4.在深度学习中的作用
NumPy:不支持自动梯度计算和反向传播,通常需要手动实现或使用其他库。
PyTorch:通过 Autograd
系统自动管理梯度计算和反向传播,使用 tensor.backward()
自动计算梯度。
5.应用范围
NumPy:广泛应用于科学计算领域,如物理模拟、统计分析、图像处理等。
PyTorch:专为深度学习设计,广泛用于构建和训练各种类型的神经网络。
然两者在基本操作上非常相似,但 PyTorch 通过支持动态计算图和 GPU 加速,以及集成深度学习特有的功能(如自动梯度计算),为深度学习提供了更加专业和高效的工具。而 NumPy 则作为一个更通用的科学计算库,在广泛的科学研究领域中都有应用。
以下是在PyTorch库对NumPy库中若干方法的修正