赞
踩
本文大量参考了:
PyTorch是Torch7团队开发的。Torch是一个开源科学计算框架,可以追溯到2002年纽约大学的项目。Torch的核心在于在构建深度神经网络及其优化和训练,为图像,语音,视频处理以及大规模机器学习问题提供快速高效的计算方案。为了追求更高的速度,灵活性和可扩展性,Torch采用Lua作为它的开发语言,但lua语言的受众比较局限。为了满足当今业界里Python先行(Python First)的原则,PyTorch应运而生,由Facebook人工智能研究员(FAIR)于2017年在GitHub上开源。顾名思义,PyTorch使用python作为开发语言,近年来和tensorflow, keras, caffe等热门框架一起,成为深度学习开发的主流平台之一。
什么是pytorch?
PyTorch是一个基于python的科学计算包,作为Numpy的替代,可利用GPU性能进行计算。作为深度学习开发平台,提供很高的灵活性和速度。
为什么选择PyTorch
1、进入pytorch官网,进入Get started;
2、选择对应自己的开发环境的pytorch版本,系统,采用的安装方式等,官方会给出对应的安装命令:https://pytorch.org/get-started/locally/, 如下:
张量(Tensor)
张量是PyTorch中最基本的元素,相当于numpy.ndarray. 两者的运算方式也如出一辙,在PyTorch中也可以相互转化。
变量(Variable)
Tensor是PyTorch中对numpy.ndarray的完美替代品,但搭建神经网络时,还需要variable来构建计算图。Variable是对tensor的封装,是一个存放会变化的值的地理位置,这个值就是tensor。每个variable有3个属性:
variable.data: variable中tensor的值;
variable.grad:variable中tensor的梯度;
variable.gradfn:指向Function对象,用于反向传播的梯度计算之用。
神经网络模块(nn.Module)
nn是PyTorch中专门为神经网络设计的借口。nn.Module是nn中一个重要的类,的含各种网络层的定义以及前向传播(forward pass)的方法。在定义自己的神经网络时,需要继承nn.Module类,并实现自己的forward方法;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。