pytorch和TensorFlow的区别
TensorFlow目前是DeepLearning中最常用的开发工具,它不仅仅是一个框架,更是一个囊括了DeepLearning整个开发、服务流程的工具,而且已经继承了很多成熟的模型,发展很快。
pytorch更偏重于框架,相对于TensorFlow,它更精简,更贴近python语法,尤其是对动态图的天然支持,写pytorch就像写python一样自然。
成熟程度上,TensorFlow更胜一筹,目前要发布2.0版本了,已经得到开源社区得长期检验;
学习难度上,pytorch更好一些,因为动态图的支持,更贴近程序语言,方便调试
市场覆盖上,肯定是TensorFlow更广泛,但是pytorch的发展也很迅速,目前开发DeepLearning模型,需要的工具,也都能提供。
网上有很多不错的介绍,如:
面对Tensorflow,为何我选择PyTorch
PyTorch VS TensorFlow:细数两者的不同之处
TensorFlow更像是一个系统,给你定义好了一切,pytorch更像是一个库,你需要更多的探索。
pytorch的tensor
不论哪种深度学习框架,都会以tensor作为最基础的数据结构,就像TensorFlow它的名字一样。pytorch的tensor和TensorFlow的tensor理念上基本一致,可以放在CPU中计算,也可以放在GPU中计算。
生成一个Tensor,和python初始化一个数据结构的流程一样,只要给他赋值就可以,不像Tensorflow需要定义成placeholder之类的,比较简洁,这也是动态图的好处。
看到这里,是不是想到numpy里面的ndarray?是的,pytorch是可以作为numpy的替代,它不仅可以像numpy那样在CPU中运算,还可以在GPU中,所以我们使用的时候,可以这样想,pytorch可以像numpy那样,而且继承了深度学习需要的自动推导等功能。
领取专属 10元无门槛券
私享最新 技术干货