深度学习入门笔记(4)——为什么要选择pytorch作为编译框架?
在经过前三章的学习后,相信大家对深度学习有了初步的了解,但有些朋友会问“为什么在《深度学习入门笔记(2)——如何配置深度学习编译环境?》中要选择pytorch的学习框架呢?我看大多数巨佬写文章用的都是tensorflow呀?”因此,我觉得有必要对学习框架进行简单解读,对框架不感兴趣的朋友可以跳过本部分内容,不足之处还请批评指正!
目前,深度学习可谓是一片繁荣景象,举个例子,一板砖下去可以砸倒一堆框架。但是,好的框架、可以被世界上各个国家的人们接受的框架,还是可以数过来的。当今主要的包括以下六个:tensorflow、caffe、pytorch。下面我们对这三个学习框架进行简单对比,博主非科班出身,不足之处还请见谅!
tensorflow
相信没有接触过深度学习的朋友也会认识这个框架,tensorflow简直可以被称为经典,是世界上使用最为广泛的一类框架,是名副其实的大哥,基于c++的搭建更是让tensorflow做到滴水不漏。
可是,最大的优势往往是最大的劣势,由于使用c++开发,语言过于底层,语法固定,网络一但走不通,改起来会让你疯狂
caffe
caffe框架和tensorflow类似,也是c++写的,不够灵活,而且,对博主这样的萌新而言,体积庞大,空间冗余。
pytorch
PyTorch是在torch基础上发展而来的,其 Torch 的不同之处在于 PyTorch 使用了 Python 作为开发语言。划重点了,“使用了 Python 作为开发语言”,“使用了 Python 作为开发语言”,“使用了 Python 作为开发语言”!相信之前接触过python的朋友都有一种体会,一开始接触的时候,“这是啥玩意,啥也不是,这tm也能叫语言?”,然后,“其实,Python也还行,虽然比不上java,做个数值分析凑活凑活着用还可以”,最后,“人生苦短,我选python”“python永远的神”“万物皆可python”巴拉巴拉…
当然在这里,博主必须要具体盘点一下python给pytorch带来的好处:
1、实现GPU加速
2、支持动态网络
3、支持numpy
4、线性设计
5、简单、灵活
总结一句话,对于非计算机科班出身的我们而言,再先进的框架或者结构也只是一个工具,工具的选择上我们应该从自身实际出发,不要一味地去选一些很高大上、框架结构复杂的,正所谓“杀鸡焉用牛刀”,可以用最简便的方式满足我们需求的,就是好框架。
最后,python永远的神!
最后
欢迎大家留言讨论!欢迎大家留言讨论!欢迎大家留言讨论!