閱讀31 返回首頁    go 技術社區[雲棲]


5招教你用Python構建好玩的深度學習應用


0?wx_fmt=png

內容列表

 


1.使用現有API的應用

  • 利用Clarifai API實現圖像自動標注

  • 利用Indico API 實現服裝推薦係統

2.開源應用

  • 運用深度學習製作音樂

  • 檢測“辦公室不宜(Not Safe For Work)”圖像

3.實現超分辨率

  • 其他常用資源


1、使用現有API的深度學習應用

 

1.1 自動圖像標注

    (Clarifai API)


圖像標注是具有突破性意義的深度學習應用之一。和文本數據不一樣,機器解析圖像數據要困難得多,機器需要更深入地理解像素數據。因此我們通過圖像標注來分析圖像,由此得到圖像分類並且辨識出相應的對象。


這就是我們使用圖像標注來分析圖像的原因。圖像標注能告訴我們圖像分類和辨識對象是什麼。


下麵是一個通過深度學習預測圖像標注的例子:

640?wx_fmt=png


下麵就讓我們來看看Clarifai提供的API是如何給上麵的每幅圖標注特征的。


係統需求和說明:

1.Python(2或者3)

2.互聯網連接(能獲取API端點)  


第一步:在Clarifai網站上注冊,獲取API key。然後在開發者頁麵(https://indico.io/demos/clothing-matching)找到API的證書


640?wx_fmt=png


第二步:在終端輸入以下命令安裝Clarifai的Python客戶端

640?wx_fmt=png


第三步:使用Clarifai客戶端來配置係統

0?


這一步需要提供客戶端ID和客戶端密鑰。這些能在開發者頁麵找到。


第四步:生成文件application.py,加入下麵標注圖像的代碼。請記住把代碼中替換成你想標注的圖像的路徑。

0?


然後用以下命令運行代碼

0?


你將會得到如下輸出:

0?


這個JSON輸顯示了預測的結果。你可以在outputs->data-> concept->name裏找到相關的標注。


1.2 服裝推薦

     (Indico API)


推薦係統正逐漸成為一種巨大的財富。隨著產品種類的增加,企業十分需要一種能夠智能鎖定產品潛在消費者的工具。深度學習恰恰能在這方麵很好地幫助我們。


我並不是個時髦的人,但我發現人們會“浪費”大量時間在選擇穿哪件衣服上。要是能有個人工智能代理知道我們的喜好,並能給我們建議最佳搭配該多好呀!


幸運的是,深度學習正讓這個成為可能。

你可以在here(https://indico.io/demos/clothing-matching)找到這個應用的演示。


0?

0?

official article (https://indico.io/blog/fashion-matching-tutorial/)文中有更詳細的描述。現在讓我們看看如何建立這個推薦係統:


係統需求和說明

1.Python 2

2.互聯網連接(獲取API端點)

 

第一步: 在Indico website(https://indico.io/pay-per-call)上注冊獲取你自己的API key

0?


第二步:在命令行窗口輸入以下命令,安裝Indico的python客戶端

0?


第三步:Github(https://github.com/IndicoDataSolutions/SuperCell)下載Repository。解壓並進入“matching clothes”目錄

 

第四步:在main.py文件中加入如下代碼。記住將YOUR_API_KEY替換成在第一步中獲取的你自己的KEY

640?wx_fmt=png


在末尾將 ‘if __name__ == “__main__”'替換成如下代碼

640?wx_fmt=png


輸入以下命令運行代碼

640?wx_fmt=png


你將會得到如下輸出:

640?wx_fmt=png


這段輸出表示上麵例子中匹配的概率。



2、深度學習的開源應用

 

2.1 使用深度學習

     進行音樂製作


音樂製作是深度學習最酷的應用之一。下麵這個應用如果能運用得當的話,將帶來突破性的發展。


和自然中的其他事物一樣,音樂是和諧的。音樂具備一種我們能捕捉和理解的模式。而這些音樂模式對計算機來說是可以學習的,並能被用來產生新的音樂旋律。這就是音樂製作背後的原理。


This open source application(https://deepjazz.io/)就是基於這一點建立的。下麵是它所產生的音樂的一個例子。


640?wx_fmt=png


訪問網站聽聽音樂效果(https://soundcloud.com/deepjazz-ai/deepjazz-on-metheny-128-epochs)

現在讓我們來複製這個結果吧!


係統需求:

1.Python (2 或 3)


第一步:安裝關聯軟件

首先安裝Theano,注意必須安裝最新版的Theano, 可以在here(https://deeplearning.net/software/theano/install.html#bleeding-edge-install-instructions)找到安裝指南。


然後用以下命令安裝Keras:

640?wx_fmt=png


然後按照here(https://keras.io/backend/)提供的指南,把Keras的後端從tensorflow 變成Theano。


最後一個關聯軟件是Music21。參照this(https://web.mit.edu/music21/doc/installing/index.html)鏈接進行安裝。

 

第二步: 運行以下命令生成音樂

640?wx_fmt=png


2.2 檢測“辦公室不宜

   (Not Safe For Work)”圖像


雖然審查製度是個頗具爭議的話題,但是它仍然是為瀏覽者過濾出帶有攻擊性的成人內容的重要組成部分。以下應用主要聚焦於過濾出NFSW類型的內容和辨認色情圖像方麵。係統返回的分數能表示NFSW的傾向性,從而過濾出在一定閾值之上的圖像。


下麵是三張預測圖像和係統給出的NFSW分數。


640?wx_fmt=png


讓我們來看看如何建立這樣一個應用。


係統需求:

1.Python 2


第一步:在係統中安裝docker(https://docs.docker.com/engine/installation/)並且用以下命令建立一個圖像 

640?wx_fmt=png


第二步:從Github下載repository並且解壓(https://github.com/yahoo/open_nsfw)

 

第三步:在你的下載目錄下運行以下命令。 給出你要分析的圖像路徑

640?wx_fmt=png


2.3 超級分辨率


我們經常在電影中看到這樣的鏡頭:放大圖像後看到了最精細的細節,然後據此抓住了罪犯或者找到關鍵證據。



(Let us enhance)


但事實並非如此,當你放大圖像時,圖像往往是變得模煳不清。為了處理這個問題(使夢想變為現實),我們可以使用深度學習來提高圖像分辨率,幫助我們得到清晰的放大效果。


下麵這個應用就是以上場景的實現,這裏有一個輸出的例子。


640?wx_fmt=png


現在來看看如何建立這個應用。


係統需求

1.Python 3

 

第一步:在係統中安裝docker  


第二步:打開 .bashrc 文件並輸入以下代碼

640?wx_fmt=png


第三步:現在提升你的圖像,在下麵的代碼中加入圖像的文件名

640?wx_fmt=png



3、其他常用的資源

 


深度學習一直不斷帶給我們驚喜,伴隨著無數應用的開發,各行各業利用這項技術展開競爭大有星火燎原之勢。在本文結束之前,我很願意再列舉些可能對您有啟發的資源。


Course material on “Applications of Deep Learning”

Projects done by students of Stanford’s CS231n ’16 batch

Projects done by students of Stanford’s CS224d ’16 batch

List of Deep Learning Startups


原文發布時間為:2017-03-26

本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“BigDataDigest”微信公眾號

最後更新:2017-05-22 15:35:00

  上一篇:go  軟件事務內存導論(十一)-STM的局限性
  下一篇:go  《JVM故障診斷指南》之1 —— JVM概覽與介紹