前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI 技术讲座精选:5款新手也能快速构建的深度学习应用(使用Python)

AI 技术讲座精选:5款新手也能快速构建的深度学习应用(使用Python)

作者头像
AI科技大本营
发布2018-04-26 14:44:12
7700
发布2018-04-26 14:44:12
举报

前 言

深度学习从根本上改变了我们周围的一切。很多人认为必须成为深度学习的专家,才能将深度学习用到自己的应用中。然而,实际并非如此。

在我之前的文章中,我讨论了6款新手也能快速构建的深度学习应用(https://www.analyticsvidhya.com/blog/2017/02/6-deep-learning-applications-beginner-python/)。我非常高兴地看到有上百名读者受到它的激励。所以在这篇文章之后,我想再写一些深度学习应用方面的东西。如果你错过了我之前的文章,我建议你先把它看一下。

在这篇文章里,我们将学习如何构建能够实现自动给图片加标签、服装推荐、音乐生成和很多其他功能的应用。你将能够在几分钟之内建好这些应用!

P.S. 我假设你已经了解关于 Python 的一些基本知识。如果不是这样的话,你只需要先看一下之前的一份教程(https://www.analyticsvidhya.com/blog/2016/01/complete-tutorial-learn-data-science-python-scratch-2/) ,然后你就可以从这里开始啦。

目 录

1. 利用现有 API 构建的应用

1.1 使用 Clarifai 的 API 实现自动生成图片标签

1.2 使用 Indico 的 API 构建服装推荐系统

2. 开源应用

2.1 利用深度学习生成音乐

2.2 探测“Not Safe ForWork”图片

2.3 超分辨率

3. 其他值得注意的资源

1. 利用现有 API 构建深度学习应用

1.1 自动生成图片标签(使用 Clarifai 的 API)

图片标签生成是深度学习最先取得突破性结果的一个应用。对于机器来说,理解一张图片的难度要远远大于理解文本数据。机器需要对像素数据具有更深入的理解。因此我们要利用图片标签来总结一张图片并且告诉我们这张图片和它底层对象属于哪个分类。

这就是为什么我们要用图片标签来总结图片。它会告诉我们这张图片属于哪个分类以及它的底层对象是什么。

下面这个例子就是利用深度学习来预测一张图片的标签。

现在,让我们看看如何利用 Clarifai 提供的 API 来构建一上图中的标签特征。

必备和具体说明:

  1. Python(2或者3)
  2. 网络连接(为了访问 API 端点)
  • 第1步:在 Clarifai 网站上注册并获得你自己的 API 密钥。随后你会在开发者页面上找到你的 API 证书(developer page,https://developer.clarifai.com/account/applications/ )。
  • 第2步:安装 Clarifaiclient for python,前往终端并输入。 pip install clarifai
  • 第3步:在你的系统里配置 Clarifai 客户端。 clarifai config 这里你会被要求提供你的客户端 ID 和客户端密钥。你可以在开发者页面找到它们。
  • 第4步:现在创建一个名叫“application.py”的文件,并插入下方所示的代码来给图片加标签。记得把代码中的 <your_image> 替换成你想要给加标签的图片的路径。 from clarifai.rest import ClarifaiApp app = ClarifaiApp() app.tag_files(['<your_image>.jpg']) 然后运行代码,输入: python application.py 你将得到如下的输出: { "status": { "code": 10000, "description": "Ok" }, "outputs": [ { "id": "ea68cac87c304b28a8046557062f34a0", "status": { "code": 10000, "description": "Ok" }, "input": { "id":"ea68cac87c304b28a8046557062f34a0", "data": { "image": { "url":"https://samples.clarifai.com/metro-north.jpg" } } }, "data": { "concepts": [ { "id":"ai_HLmqFqBf", "name":"train", "app_id": null, "value": 0.9989112 }, ...

这是一个 json 格式的输出,显示的是对预测的响应。这里,你能在 outputs->data-> concept->name 中找到相关的标签。

1.2 服装推荐(使用 Indico 的 API)

推荐系统正在日益凸显它的价值。随着商品数目的增加,瞄准那些可能愿意购买某种产品的特定消费人群变得格外重要。在这一类应用的开发中,深度学习同样也能帮助到我们!

我不是个时尚爱好者,但是我知道人们会“浪费”很多时间在选择穿什么样的衣服上。如果我们能拥有一个知道我们的喜好并且能够向我们推荐完美的穿着的智能机器人该有多好!

幸运的是,在深度学习的帮助下,这成为了可能。

你可以在这里找到这个应用的演示。(https://indico.io/demos/clothing-matching)

Indico 的官方文章(https://indico.io/blog/fashion-matching-tutorial/)已经对它做了非常详细的描述。现在让我们弄清楚你要如何在你的终端上构建这个推荐系统。

必备和具体说明:

  1. Python 2
  2. 网络连接(为了访问API端点)
  • 第1步:在 Indico 网站上注册并获得你自己的 API 密钥(Indico website,https://indico.io/pay-per-call)
  • 第2步:安装 Indico clientfor python,转到命令提示符并输入。 pip install indicoio
  • 第3步:从 Github 下载资源库 (https://github.com/IndicoDataSolutions/SuperCell),把它解压然后转到“matching_clothes”文件夹。
  • 第4步:现在在“main.py”文件中,插入下方代码。记得把 YOUR_API_KEY 替换成你在第1步中获得的自己的密钥。 import indicoio from indicoio.custom import Collection indicoio.config.api_key = 'YOUR_API_KEY'

最后,把‘if __name__ == “__main__”‘这部分替换成如下代码:

if __name__ == "__main__":

train =generate_training_data("clothes_match_labeled_data_1.txt")

collection = Collection("clothes_collection_1")

for sample in tqdm(train):

print sample

collection.add_data(sample)

collection.train()

collection.wait()

然后运行此代码,输入:

python main.py

你会得到如下的输出:

{u'label1': 0.0183739774, u'label2':0.8100245667, u'label3': 0.1102390038, u'label4': 0.060105865800000005,u'label5': 0.0012565863}

输出显示了和上方例子匹配的概率。

2. 开源深度学习应用

2.1 利用深度学习技术生成音乐

音乐生成是深度学习技术实现的最酷的应用之一。如果这个应用能够被精心地使用,它将为产业带来新突破。

如同大多数自然产生的事物那样,音乐是和谐的。它拥有一些模式,并且它们是我们的大脑能够感受和理解的。我们可以把音乐的这些模式教给电脑,然后电脑就会利用它们来创造新的音乐韵律。这是音乐生成背后的原理。

这个开源应用(https://deepjazz.io/)就是紧抓着这个概念来构建的。我们来看一下它最后生成了什么。

现在让我们来看一下我们如何才能重复这个结果!

https://soundcloud.com/deepjazz-ai/deepjazz-on-metheny-128-epochs

必备:

  1. Python(2或者3)
  • 第1步:安装依赖包。 首先,安装 Theano。注意,你必须安装最新版本的 Theano,没有它可是不行的。你可以在这里找到它的安装指南(http://deeplearning.net/software/theano/install.html#bleeding-edge-install-instructions)。 然后输入如下代码安装 Keras。 pip install keras 你还必须把 Keras 的后端由 tensorflow 改为 Theano。你可以按照这里给出的说明来做:https://keras.io/backend/。 最后一个需要安装的依赖包是 Music21。参考下面给定的网址来进行安装(http://web.mit.edu/music21/doc/installing/index.html)。
  • 第2步:运行下面的命令来创造音乐。 python generator.py 128

2.2 探测“NSFW”图片

尽管审查制度确实是一个非常有争议的话题,但是它仍然是把成人内容从浏览器滤除的主力军。这类应用的开发者一般会专注于滤除中包含 NFSW 内容的图片,也就是识别含有色情内容的图片。应用会对图片的 NFSW 程度进行打分,当分数超过某个值,这张图片就会被滤除掉。

下面是一些图片以及应用给出的相应的 NFSW 分数。

让我们看看要如何构建这样一个应用。

必备:

  1. Python 2
  • 第1步:在你的系统安装docker(https://docs.docker.com/engine/installation/),然后使用如下命令建立一个图片。 docker build -t caffe:cpu https://raw.githubusercontent.com/BVLC/caffe/master/docker/standalone/cpu/Dockerfile
  • 第2步:从 Github 下载资料库并解压(https://github.com/yahoo/open_nsfw)
  • 第3步:前往你下载好的文件夹并在终端运行如下命令。给出你想要分析的图片的路径。 docker run --volume=$(pwd):/workspace caffe:cpu python ./classify_nsfw.py --model_def nsfw_model/deploy.prototxt --pretrained_model nsfw_model/resnet_50_1by2_nsfw.caffemodel <your_image>.jpg

2.3 超分辨率

在电影中我们经常可以看到这样的场景,当角色对某一张图片进行放大,他就能看到图片里那些最微小细节,并且最后他会利用它们抓住罪犯或者得到关键的线索。

https://youtu.be/LhF_56SxrGk

然而现实并不是这样的。当你进行放大的时候,图片通常会变得非常模糊,图片中的东西也变得难以看清。为了解决这个问题(以及让梦想成真),我们可以利用深度学习来增加图片的分辨率,这样在我们对图片进行放大的时候图片也能保持相对清晰。

下面是一些输出的例子。

让我们看看如何构建它。

必备:

  1. Python 3
  • 第1步:在系统中安装docker(https://docs.docker.com/engine/installation/)。
  • 第2步:打开.bashrc文件,写下如下代码。 alias enhance='function ne() { docker run --rm -v "$(pwd)/`dirname ${@:$#}`":/ne/input -it alexjc/neural-enhance ${@:1:$#-1} "input/`basename ${@:$#}`"; }; ne'
  • 第3步:为了提升你的图片的分辨率,将图片的名字插入如下代码中。 enhance --zoom=1 --model=repair <your_image>.jpg

3. 其他值得注意的资料

深度学习时常让我感到惊奇。随着不计其数的应用的开发,产业中应用这种技术来进行开发的竞争正在愈演愈烈。在文章结束之前,我想再推荐你一些可能会给你带来灵感的资料。

  • “深度学习”课程资料 https://sites.wustl.edu/jeffheaton/t81-558/
  • 16年参与斯坦福CS231n课程的学生完成的项目作品http://cs231n.stanford.edu/reports2016.html
  • 16年参与斯坦福CS224d课程的学生完成的项目作品http://cs224d.stanford.edu/reports_2016.html
  • 深度学习创业公司列表 https://angel.co/deep-learning-2

https://youtu.be/BmkA1ZsG2P4

本文作者 Faizan Shaikh 是一名数据科学爱好者,目前正在研究深度学习,目标是利用自己的技能,推动 AI 研究的发展。

本文由 AI100 编译,转载需得到本公众号同意。


编译:AI100

原文链接:https://www.analyticsvidhya.com/blog/2017/02/5-deep-learning-applications-beginner-python/


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档