深度学习框架:(1)PyTorch,(2)TensorFlow 和keras

一.什么是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是一个静态的框架。

你可能感兴趣的:(深度学习,tensorflow)