第二课:开发机器学习app前的准备工作

来源:互联网 发布:软件项目阶段 编辑:程序博客网 时间:2024/05/21 17:24

框架的选择

如上一节课所说,随着机器学习的发展,目前已经出现很多不错的学习框架,这里我们做个对比:

  1. TensorFlow:深度学习最流行的库之一,它不仅便携、高效、可扩 展,还能在不同计算机上运行。小到智能手机,大到计算机集群。它是一款轻量级的软件,可以立刻生成你的训练模型,也能重新实现它;TensorFlow 拥抱创新,有强大的社区、企业支持, 因此它广泛用于从个人到企业、从初创公司到大公司等不同群体。

  2. Caffe: 卷积神经网络框架,专注于卷积神经网络和图像处理,是用 C ++语言写成的。

  3. Theano: 是一个用 Python编写的极其灵活的Python机器学习库,用它定义复杂的模型相当容易,因此它在研究中极其流行。

  4. Torch: 是一个专注于GPU 实现的机器学习库,得到了几个大公司的研究团队的支持。

  5. CNTK: 微软研究人员开发的用于深度神经网络和多GPU加速技术的完整开源工具包。

除了上面列举的框架外还有不少学习框架,这里就不一一列举,本课程的重点是选择其中一个框架,然后学习如何使用,就像第一节课讲的那样,我们按着先学会使用,再理解内部原理的路线去学习。

在本课程中选用 TensorFlow 作为进行机器学习的基础框架,至于为什么选择这个框架,这里做了一个总结:

  1. 可用性:TensorFlow 工作流程相对容易,API 稳定,兼容性好,并且 TensorFlow 与 Numpy 完美结合,这使大多数精通 Python 数据科学家很容易上手。与其他一些库不同,TensorFlow 不需要任何编译时间, 这允许你可以更快地迭代想法。在TensorFlow 之上已经建立了多个高级 API,例如Keras 和 SkFlow,这给用户使用TensorFlow 带来了极大的好处。

  2. 灵活性:TensorFlow 能够在各种类型的机器上运行,从超级计算机到嵌入式系统。它的分布式架构使大量数据集的模型训练不需要太多的时间。TensorFlow 可以同时在多个CPU,GPU 或者两者混合运行。

  3. 运行效率:自 TensorFlow 第一次发布以来,开发团队花费了大量的时间和努力 来改进TensorFlow 的大部分的实现代码。 随着越来越多的开发人员努力,TensorFlow 的效率不断提高。

  4. 支持:TensorFlow 由谷歌提供支持,谷歌投入了大量精力开发 TensorFlow,它希望 TensorFlow 成为机器学习研究人员和开发人员的通用语言。此外,谷歌在自己的日常工作中也使用 TensorFlow,并且持续对其提供支持,在 TensorFlow 周围形成了 一个强大的社区。谷歌已经在 TensorFlow 上发布了多个预先训练好的机器学习模型,他们可以自由使用。

模型的选择

框架选好后,接下来我们就要对模型进行选择了。可以在 TensorFlow Models 找到很多已经设计好的模型:

  1. official 目录里面是正式发布的模型

  2. research 目录里面是由谷歌的研究人员们写的模型

  3. tutorials 目录里面是 TensorFlow 教程里面用到的模型

先说一下本课程中模型的定义,一个模型由两部分组成,第一部分是用于生成或者说训练模型的代码,包含如何提取和处理输入数据的特征,如何构建神经网络(如神经网络有几层)等;第二部分就是通过这个代码加上大量数据训练出来的模型二进制文件,叫做 Pre-trained model(这部分不是每一个模型都包含)。在本课程中,因为暂时不涉及到训练自己的模型(下一个系列课程会专门介绍如何训练自己的模型),所以只需要找到相应的模型的 Pre-trained model 就可以了。

使用 Tensorflow Object Detection API 来进行静态图片的物体识别,可以在 Model Zoo 里面找到我们需要的 Pre-trained model ,一共有 5 个。

第一列为 Pre-trained model 的名字,第二列为模型的识别速度,第三列为衡量识别效果的一个指标,越高越好,第三列为输出形式,都是输出识别物体的 Box(物体在图片中的位置,矩形框)。

接下来我们选择第一个 ssd_mobilenet_v1_coco 来完成功能,它的模型二进制文件最小,识别速度最快,识别率是最低的,但是对于我们的功能是足够了。请先下载下来备用。

平台的选择

大家都知道现在IT领域最火的两个技术,一个是人工智能,另外一个是物联网(IOT)。Android是大部分物联网设备未来的内在系统,而TensorFlow又是业内标准的训练框架,这两个系统的整合将会产生巨大的化学反应。本系列课程我们选择安卓平台进行手把手的学习。

为了能在 Android 上面加载准备好的 Model 二进制文件并 Inference(推理),还需要 TensorFlow 的 Android 接口库,在 TensorFlow Android Inference Interface 可以找到这个接口库的全部代码,这个接口库的二进制包是一个 Android 的 AAR 文件。一般有 3 种方法来获取这个 AAR 文件:

  1. 下载全部代码,从头开始编译

  2. 通过 JCenter Package 获取(在工程配置文件里面添加依赖 org.tensorflow:tensorflow-android)

  3. 从 Inference interface 的 CI 系统 获取最新的二进制包(nightly build)

Android环境的搭建

本课程使用 Android Studio 进行开发,相关配置如下:

  1. Android Studio 3

  2. Gradle 3.3

  3. Compile SDK Version 25

  4. Build Tool 26.02

总结

在本课时中,我们找到可以解决问题的模型并下载了相应的 Pre-trained model; 还下载了可以在 Android 上面运行 TensorFlow 并 Inference 的 TensorFlow Android 接口;最后还准备好了 Android 的开发环境。接下来的课程我们就准备开工了.


   

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 家人吸毒可他又不愿强戒怎么办 容留他人吸毒时签了强戒怎么办 拘留后发现被拘留是人大代表怎么办 执行局要拘留人找不到人怎么办 开设赌场罪拘留37天了该怎么办 对治安处罚光罚款不拘留怎么办 打架和解后警察不给消案怎么办 12个人片诈骗刑拘了28天怎么办 交警拘留几天后还是没钱赔偿怎么办 平安车主信用卡车牌号填错了怎么办 起诉借钱的人逮起来了怎么办 在法院查不到坐牢人的档案怎么办 人被冤枉敲诈勒索进看守所了怎么办 打架被拘留孩子怎么办三周了 技师被拘留她的家人该怎么办 我是担保人贷款人跑了我该怎么办 公司依旷工理由辞退我该怎么办 试工两天被辞退了不发工资怎么办 员工在单位被打监控调不出来怎么办 老师罚做60张试卷家长该怎么办 孩子在幼儿园被老师打该怎么办 孩子被孩子打了老师该怎么办? 法院判决书下来后看守所不收怎么办 因病看守所不收押发院判了怎么办 现在显示还在看守所羁押需要怎么办 嫖了N多年丈夫让我怎么办 预约考试的登录密码忘了怎么办 人进了看守所信用卡没还怎么办 上海租房人放2个麻将台怎么办 南宁公租房住满5年后怎么办 合伙买房时如果出售意见不合怎么办 老旧小区改造下水一楼不同意怎么办 老旧小区下水改造没改怎么办 替公司租房子中介不退押金怎么办 想在昆山找合租房的该怎么办 链家二手房价钱买贵了怎么办 拿私人房产证抵押借钱不还怎么办 在借贷宝里借钱不还怎么办 出租屋的大门感应钥匙弄丢了怎么办 法院拍卖的房子房主不配合怎么办 租的房子如果房主卖了怎么办