【前言】
众所周知,TensorFlow是由Google发起的开源项目,使用数据流图(data flow graphic)来进行数值计算的软件库, github 地址:github tf 传送门。
在此之前,我也听到TF的大名,但听过一些关于tensor flow的讲座,提到很多机器学习、神经网络等知识点,我很快就望而怯步了。毕竟作为应用开发,深感底层技术的门槛和算法的复杂性。
时至今天,所在行业与TensorFlow密切相关,愈发预感到TF自身的魅力和所带来的趋势,很有必要去了解它。这种并非是硬着头皮,而是带着兴趣来的。纵观流行的框架,底层的复杂实现只能是小部分人的专利,但一到应用场景肯定是大众的福利, TF也应如此。之前打开的方式不对,让我们来重新打开它?
【历史】
2011, Google 发布第一代深度学习系统——DistBelief;
2016.4.13,Google 发布TensorFlow V0.8, 支持分布式,由于之前的版本已经支持CPU和GPU,因此,该版本已经具备应用于大数据计算的条件;
2016.4.29,DeepMind正式宣布,使用TensorFlow,顺势推了一把(此前,Alpha Go已经战胜韩国的李世石,名震一时);
2017.2.15,Google正式发布了TensorFlow V1.0,一套基于DistBelief研发了第二机器智能学习系统。(在此前已经陆续更新了多个测试版本);
TensorFlow与DistBelief版本的差别要从以下方面入手:
从出发点来看:
DistBelief 更像是Google自家内部使用的,场景比较特定;
TensorFlow 则是开放性的,它适配了N多主流的平台、兼容其它神经网络库(比如Keras,Keras 传送门)、性能更好,开发接入成本更低等等。
【应用场景】
TensorFlow支持CNN(卷积神经网络),RNN(循环神经网络),LSTM(长短期记忆网络),这些神经网络模型算法广泛应用于图像、语音、NLP领域。
我从官方的Android版体验Demo,,总共分为TF classify、TF detect、TF stylize、TF speech四部分,实测如下:
TF classify: 场景识别
TF detect: 物体跟踪
TF stylize: 艺术风格
https://www.zhihu.com/video/910186364002271232
从实测来看,应该属于离线Demo,已经经过样本库训练,存在以下问题:
1)demo闪退
TF classify 处理一段时间,就挂掉,无法确定是crash还是程序本身逻辑;
2)准确率
图像识别,存在误识别的情况,但分数不高。根据之前的经验来看,也可理解;
语音识别,有一定概率识别不准,而且容易受环境干扰;
3)支持类别
仅支持一些常见的物体类别,一些特殊的物体类别,还无法识别;
4) 标签通用性
目前识别出来的标签都是英文的,非英语国家,还需要本地化适配。这里可能需要一张统一的对照表,使用统一的标签(比如数字之类),方便在不同语言的开发者接入;
但总体能力非常感人,可以使机器人学习的应用成本更低,后面更多的在于样本库(比如数据量大小,数据越大,识别的准确度更高,识别类别更广)
当然,除此之外,TensorFlow本质上是使用数据流图来计算,可扩展性的机器学习系统,可以应用到更多的领域里。
【支持平台】
Linux-CPU/GPU
Mac-CPU
Window-CPU/GPU
Android