一.什么是PyTorch?
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。
2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算(如NumPy)。2、包含自动求导系统的的深度神经网络。
二.什么是TensorFlow?
(1)定义
TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief 。
(2)和python的关系
大多数Python库其实是Python的扩展。当你导入一个库时,你得到的是一组变量、函数和类,它们实际上只是充当代码的“工具箱”,满足开发者的现实需要。但Tensorflow不是。Tensorflow不是一个普通的Python库。
三.什么是keras?
Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化。
四.TensorFlow 和keras的关系
TensorFlow和theano以及Keras都是深度学习框架,TensorFlow和theano比较灵活,也比较难学,它们其实就是一个微分器。
Keras其实就是TensorFlow和Keras的接口(Keras作为前端,TensorFlow或theano作为后端),它也很灵活,且比较容易学。可以把keras看作为tensorflow封装后的一个API。
引用一句易于理解的话:
(1)比如说盖木头房子。想盖什么房子要先选木料,然后加工成需要的形状,最后组合钉装成想要的房子形状。tensorflow 好比是木头,Keras好比是拿 tensorflow 做好的木板。如果你盖的房子简单,形状大众,Keras调用起来会很方便。但如果想设计特殊的房子,那就要从木料开始。tensorflow 已经可以调用 keras相关函数。
(2)keras的关键计算依托于tensorflow 或者 theano。theano不更新了,keras封装的比较好。初学和入门的话建议用keras。但是想要深入或者做自己的APP的话建议用tensorflow。
五.什么是Kaggle?
Kaggle官网:https://www.kaggle.com/
Kaggle是由联合创始人、首席执行官安东尼·高德布卢姆(Anthony Goldbloom)2010年在墨尔本创立的,主要为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台。
Kaggle上的竞赛有各种分类,例如奖金极高竞争激烈的的 “Featured”,相对平民化的 “Research”等等。但他们整体的项目模式是一样的,就是通过出题方给予的训练集建立模型,再利用测试集算出结果用来评比。
六.对比pytorch和tensorFlow
pytorch是一个动态的框架,而TensorFlow是一个静态的框架。