如果想尽可能快速并且以少量的代码建立并测试神经网络,keras是最快速的, Sequential API和Model的功能十分强大。并且keras的设计十分用户友好,以数据输入输为例,对比keras简单的操作,tensorflow解码编码的构建过程特别繁杂(尤其对于初学者来说,大量的记忆过程上手非常痛苦)。除此之外,keras将模块化作为设计原则之一,使用者可以各按所需进行组合。如果只是想快速地搭建常见的模型来实现自己的想法,keras可以作为首选。
但是,keras在封装后会变得很不灵活,并且加上它本身速度也比较慢,如果是高度封装,前面提到的缺点会更加明显,除了一些对速度要求很低的工业应用,tensorflow会因为更高速而被选择
如果在验证自己想法的时候,不想用既有的设定而是想要自己定义损失函数、测度、层数等等,相比keras,tensorflow提供了更多个性的空间。此外,对神经网络控制力度的大小会很大程度决定对网络的理解和优化工作,而keras种提供的权限很少,tensorflow相反给了更多操控权,比如对多个变量中的某一变量是否进行训练、对梯度进行操作(以获取训练的进展)等等。
虽然二者都提供深度学习模型通常所需的功能性,但是,如果使用者还追求一些更高阶的功能性的选择,像是进行特殊种类模型的研究,就要求诸tensorflow了。比如,如果想要运算加速,可以使用tensorflow的线程功能,多线程实行同一对话。另外,它还提供调试器的功能,对推断bug和加速运算都有帮助。
学习TensorFlow需要具备哪些基础?
1、学习一些数学知识,比如说,高数,概率论和线性代数等。
2、掌握经典机器学习理论与基本算法。
3、掌握一种编程语言,Python语言是一种解释型、面向对象、动态数据类型的高级程序设计语言。我们需要重点掌握使用线性代数库和矩阵的操作,尤其是Numpy、Pandas第三方库,这对直接上手写TensorFlow程序大有裨益。
了解过“如鹏网”的“Python + AI”学习路线,挺系统的,里面有TensorFlow相关的课程,可以作为参考。
(1)、Python基础
(2)、数据库开发
(3)、web 前端
(4)、Python web开发
(5)、Python web项目
(6)、Linux
(7)、NoSQL
(8)、数据可视化
(9)、爬虫技术
(10)、人工智能
怎样入门TensorFlow?
使用tensorflow识别需要进行大量的学习,需要准备大量的学习资源,感觉有点得不偿失。对于识别汉字可以直接调用第三方接口,感觉这样会方便得多,如果只是为了学习tensorflow 的话,可以去github上面找相关材料,上面有很多开源的学习资料,供自己选择。
另外,吴恩达的课程在他的官网上面也都公开了,可以直接去学习。也可以关注他的公众号,每周都会更新相关课程。