专栏首页AI科技大本营的专栏AI 技术讲座精选:5款新手也能快速构建的深度学习应用(使用Python)

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

前 言

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

在我之前的文章中,我讨论了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/


本文分享自微信公众号 - AI科技大本营(rgznai100)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 迁移学习与图神经网络“合力”模型:用DoT-GNN克服组重识别难题

    【导读】目前,大多数行人重识别(ReID)方法主要是从收集的单个人图像数据库中检索感兴趣的人。在跨摄像头的监控应用中,除了单人ReID任务外,匹配一组行人(多个...

    AI科技大本营
  • 2019,不可错过的NLP“高光时刻”

    谷歌AI 提出了 ALBERT 模型,这是 BERT 模型的简化版本,用于语境化语言表示的自监督学习。相较于 BERT,其在模型更加精练的同时更有效地分配了模型...

    AI科技大本营
  • 深度学习难,这本书让你轻松学深度学习

    它非常有力地推动了计算机视觉、自然语言处理、自动语音识别、强化学习和统计建模等多个领域的快速发展。

    AI科技大本营
  • 别怪程序员——都是项目经理的错

    别怪程序员——都是项目经理的错 现在有很多糟糕的软件。不可靠,不稳定,不安全,不可用。这些软件是如此糟糕,以致于有些人要求监管软件开发和限制专业软件开发人员为“...

    用户1289394
  • Facebook最新研究:逆烹饪!从食物照片倒推食谱

    通过一张简单的食物照片你能看到什么?当时和你一起吃饭的人?用餐的那个餐馆播放的爵士乐?或者是怀念那一口美味的,自己却做不出吃不到的家乡菜?

    大数据文摘
  • 软件公司如何将小绵羊类软件开发人员变成主动性强的狼性团队

    我在业务过程中认识的一家软件公司的老板做的不错,后来他又投资了一家新公司。受了一些时髦观点的影响,租用豪华的写字楼办公,高薪挖来一批软件开发人员,各方面福利与待...

    西安弈聪软件公司
  • Apache Dubbo 开源现状与未来规划

    高广超
  • CSS布局-绝对尾部(Css Sticty Footer)

    大象无痕
  • 日本最强图片压缩软件ShukuSen–Panasonic内部专用

    一款日本的图片压缩软件批量缩小图片工具,它可以帮您实现在保持图片原来大小的前提下对图片进行批量缩小!无需安装即可使用!

    空木白博客
  • 前端构造桌面级应用(QQ音乐)

    https://blog.csdn.net/weichuang_1/article/details/48849335

    念念不忘

扫码关注云+社区

领取腾讯云代金券