那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于 Python 的深度學習庫Keras入門知識

C語言專家集中營 ? 來源:未知 ? 作者:李倩 ? 2018-05-14 04:05 ? 次閱讀

Keras 是基于 Python深度學習庫,不同于其他深度學習框架。Keras充當神經網絡的高級 API 規范。它既可作為用戶界面,也可擴展它在其中運行的其他深度學習框架后端的功能。

Keras 起初是作為學術界熱門 Theano 框架的簡化前端。此后,Keras API 成為了 Google TensorFlow 的一部分。Keras 正式支持 Microsoft Cognitive Toolkit (CNTK)、Deeplearning4J,不久之后還將支持 Apache MXNet。

鑒于獲得了廣泛的支持,Keras 作為框架間遷移工具的地位已不可撼動。開發人員不僅可以移植深度學習神經網絡算法和模型,還可以移植預先訓練的網絡和權重。

關于 Keras

Keras名稱的起源Chollet 創建了 Keras 作為開放式神經電子智能機器人操作系統 (ONEIROS) 機器人研究項目的神經網絡的 API。ONEIROS這一名稱是對古希臘史詩《奧德賽》的致意,在這部史詩中,神話人物Oneiroi(Oneiros的單數形式)為人類指明了兩條進入夢境的路:一條路穿過宏偉的象牙之門進入噩夢,另一條路則穿過低矮的獸角之門,最終呈現一片神圣的景象。Keras 在希臘語中意為角,這個名稱非常合適,因為 Keras API 旨在為與神經網絡協同使用提供一條捷徑。

Keras 是開源 Python 包,由麻省理工學院 (MIT) 許可發行,由 Fran?ois Chollet、Google、Microsoft 和其他貢獻者共同持有該軟件的部分版權。

Keras 前端支持在研究中快速構建神經網絡模型的原型。此 API 易于學習和使用,并且具有易于在框架間移植模型的附加優勢。

由于 Keras 的獨立性,使用時無需與運行它的后端框架進行交互。Keras 具有自己的圖形數據結構,用于定義計算圖形:它不依靠底層后端框架的圖形數據結構。此方法使您可以免于學習對后端框架進行編程,正因如此,Google 已選擇將 Keras API 添加到其 TensorFlow 核心。

本文將概述 Keras,包括此框架的優勢、支持的平臺、安裝注意事項以及支持的后端。

Keras 的優勢

為何要使用 Keras?它具有多種優勢,包括:

更加良好的深度學習應用程序用戶體驗 (UX)。Keras API 對用戶友好。此 API 經過精心設計、面向對象且靈活易用,因而改善了用戶體驗。研究人員無需使用可能十分復雜的后端即可定義全新深度學習模型,從而實現了更簡潔明了的代碼。

無縫 Python 集成。Keras 是本機 Python 包,能夠輕松訪問整個 Python 數據科學生態系統。例如,Python Scikit-learn API 也可以使用 Keras 模型。熟悉后端(如 TensorFlow)的開發人員同樣可以使用 Python 來擴展 Keras。

大型的可移植工作主體和強大的知識庫。目前,研究人員已將 Keras 與 Theano 后端結合使用了一段時間。由此產生了大型工作主體和強大的社區知識庫,可供深度學習開發人員輕松地從 Theano 后端移植到 TensorFlow 后端。甚至還可以在后端之間移植權重,這意味著經過預先訓練的模型只需稍作調整就可輕松切換后端。Keras 和 Theano 研究仍與 TensorFlow 和其他后端緊密相關。此外,Keras 還免費提供了許多學習資源、文檔和代碼樣本。

Keras 應用程序

借助擬合生成器、數據預處理和實時數據擴充等 Keras 功能,開發人員只需少量訓練數據集便可訓練出強大的圖像分類器。Keras 隨附預先經過訓練的內置圖像分類器模型,包括:Inception-ResNet-v2、Inception-v3、MobileNet、ResNet-50、VGG16、VGG19和Xception。

注:由于這些模型的來源各不相同,因此有若干不同的許可證用于控制這些模型的權重使用情況。

借助 Keras,只需幾行代碼即可定義復雜模型。Keras 尤其適合用于通過小型訓練數據集來訓練卷積神經網絡。雖然 Keras 在圖像分類應用程序中已獲得了更廣泛的使用,它同樣也適用于文本和語音的自然語言處理 (NLP) 應用程序。

哪些平臺支持 Keras?

支持 Python 開發環境的平臺同時也能支持 Keras。正式構建測試是在 Python V2.7x 和 V3.5 上運行的,但與 Keras 結合使用的后端需要特定平臺才能訪問支持的圖形處理單元 (GPU)。大部分后端取決于其他軟件,例如,NVIDIA? CUDA? 工具包和 CUDA 深度神經網絡庫 (cuDNN)。

TensorFlow 是 Keras 的缺省后端,但它還支持 Theano 和 CNTK 后端。Apache MXNet 的支持工作還在進行當中,同時也為 Keras 提供了 R 接口。許多供應商都已將 Keras API 移植到其深度學習產品中,由此而能夠導入 Keras 模型。例如,基于 Java? 的后端 Eclipse Deeplearning4j,便能夠導入 Keras 模型。此外,Scala 包裝器也可用于 Keras。因此,Keras 平臺支持成為了一個爭議點。更重要的是確保目標平臺支持您所選的 Keras 后端。

有關哪些平臺支持 TensorFlow 的更多信息,請參閱TensorFlow 入門。有關哪些平臺支持 Theano 的詳細信息,請閱讀Theano 文檔。有關哪些平臺支持 CNTK 的更多信息,請參閱CNTK 文檔。

可選依賴關系

Keras 通過使用開源 Hierarchical Data Format 5 (HDF5) 二進制格式來管理數據。因此,它需要使用 HDF5 及其 h5py Python 包裝器,才能將 Keras 模型保存至磁盤。Keras 通過使用開源 GraphViz DOT 格式來繪制圖形。因此,它需要使用 GraphViz 及其 pydot Python 包裝器,才能直觀顯示數據。Keras GPU 支持還需要使用 cuDNN 庫。

從源代碼構建 Keras

由于 Keras 是一個純 Python 包,因此沒有理由從源代碼進行構建。Keras 不含任何特定于平臺的后端代碼。強烈建議改為從 Python Package Index (PyPI) 安裝 Keras。

Keras 安裝注意事項

上文中已提到,Keras 可在支持 Python 開發環境的任何平臺上運行。這足以訓練和測試大部分簡單示例和教程。大部分專家強烈建議,針對研究或商業開發等應用程序使用高性能計算 (HPC) 平臺。

由于 Keras 使用第三方后端,因此無任何安裝注意事項。后端將負責執行硬件加速。總之,安裝 Keras 后端的開發人員應考慮以下因素和選項:

處理器和內存需求

虛擬機選項

Docker 安裝選項

云安裝選項

處理器和內存需求

深度學習算法為計算密集型算法,至少需要一個具有矢量擴展的快速多核 CPU。此外,一個或多個支持高端 CUDA 的 GPU 卡是深度學習環境的標配。

深度學習進程通過使用共享內存中的緩沖區相互進行通信。因此,分配的內存應已足夠。大部分專家由此還建議采用較大的 CPU 和 GPU RAM,因為從性能和能源使用的角度來看,內存傳輸非常昂貴。更大的 RAM 可避免這些操作。

虛擬機選項

用于深度學習的虛擬機 (VM) 目前最適合有許多核心的以 CPU 為中心的硬件。因為主機操作系統控制著物理 GPU,所以在 VM 上實現 GPU 加速很復雜。主要有兩種方法:

GPU 直通:

僅適用于 1 類管理程序,比如 Citrix Xen、VMware ESXi、Kernel Virtual Machine 和 IBM? Power?。

基于 CPU、芯片集、管理程序和操作系統的特定組合,直通方法的開銷可能會有所不同。通常,對于最新一代的硬件,開銷要低得多。

一種給定的管理程序-操作系統組合僅支持特定的 NVIDIA GPU 卡。

GPU 虛擬化:

各大主要 GPU 供應商均支持,包括 NVIDIA GRID?、AMD MxGPU 和 Intel? Graphics Virtualization Technology。

最新版本在特定的較新 GPU 上支持開放計算語言 (OpenCL)。在大部分主要后端(包括 TensorFlow)上,不存在正式的 OpenCL 支持。

最新版的 NVIDIA GRID 可以在特定的較新 GPU 上支持 CUDA 和 OpenCL。

Docker 安裝選項

在 Docker 容器或 Kubernetes 集群中運行 Keras 存在諸多優勢。Keras 存儲庫包含一個 Docker 文件,具有針對 Mac OS X 和 Ubuntu 的 CUDA 支持。此映像支持 Theano 或 TensorFlow 后端。使用 Docker 的優勢主要在于,后端可以訪問物理 GPU 核心(設備)并在其中運行。

云安裝選項

在云服務上運行 Keras 時有許多選項。Keras 可用于在一個供應商生態系統上訓練模型,但只需稍作調整即可在另一個供應商生態系統上用于生產部署。

IBM Cloud?數據科學和數據管理為 Python 環境提供了 Jupyter Notebook 和 Spark。Keras 和 TensorFlow 已預先安裝。IBM Cloud 上的 Kubernetes 集群可運行 Keras 和 TensorFlow Docker 映像。

Google Cloud:Google 提供了一些機器實例,它們能訪問特定區域的 1、4 或 8 個 NVIDIA GPU 設備。同時還可以在容器化的 GPU 支持的 Jupyter Notebook 上運行 Keras 和 TensorFlow

Amazon Web Services:Amazon 提供了 Amazon Web Services 深度學習 Amazon Machine Image (AMI),以及可選的 NVIDIA GPU 支持,后者能在各種各樣的 Amazon Elastic Compute Cloud 實例上運行。已預先安裝 Keras、TensorFlow 和其他深度學習框架。AMI 可以支持多達 64 個 CPU 核心和多達 8 個 NVIDIA GPU (K80)。

Microsoft Azure:您可以在 Microsoft 數據科學虛擬機系列的 Microsoft Azure 機器實例上以 CNTK 后端安裝 Keras,僅使用 CPU 或者包含最多四個 K80 GPU 都可。

將 Keras 用作其他框架的 API

Keras 各層及模型均與純 TensorFlow 張量完全兼容;因此,Keras 為 TensorFlow 提供了良好的模型定義附件。您甚至可以同時使用 Keras 和其他 TensorFlow 庫。Keras 現已成為 TensorFlow 核心的正式組成部分。有關詳細信息,請閱讀此博客文章。

從 TensorFlow 后端切換至其他某個正式支持的 Keras 后端十分簡單,只需在 JavaScript 對象表示法 (JSON) 配置文件中進行一項更改即可。有關詳細信息,請參閱Keras 文檔。

目前,可以使用 Keras 作為以下這些框架的 API:

Keras 與 Theano。最近淘汰的 Theano 是 Keras 最先支持的后端,后被 TensorFlow 所取代。TensorFlow 支持大部分 Theano 開發的 Keras 模型。要使用 GPU 運行 Theano 后端,請遵循此文檔中有關 Theano 的部分來操作。

Keras 與 CNTK。Keras 對 Microsoft Cognitive Toolkit (CNTK) 后端的支持仍處于測試階段。您可以閱讀Microsoft 文檔,了解更多詳細信息和資料

Keras 與 Deeplearning4j。Deeplearing4j 可使用其deeplearing4j-modelimport模塊來導入大部分 Keras 模型。目前,Deeplearning4j 可支持導入有關層次、損失、激活、初始化程序、正則化項、約束條件、度量標準和優化程序的模型信息。有關更多信息,請訪問Deeplearning4j 文檔。

Keras 與 Apache MXNet。Keras 對 Apache MXNet 后端的支持仍處于早期測試階段。這是由 Distributed (Deep) Machine Learning Community 主導的工作。此后端正逐步變為另一個正式支持的 Keras 后端。此GitHub 存儲庫中提供了該后端的代碼。

結束語

Keras 不同于其他深度學習框架。按照設計,它旨在成為神經網絡建模的 API 規范。它可作為用戶界面,也可擴展它在其中運行的其他深度學習框架后端的功能。

Keras API 已成為 Google TensorFlow 的一部分。Keras 同時還正式支持 CNTK、Deeplearning4j,很快就會支持 Apache MXNet。

由于這一廣泛的支持,Keras 已成為了實現框架間遷移的實際工具。開發人員不僅可以移植深度學習神經網絡算法和模型,還可以移植預先訓練的網絡和權重。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85040
  • 深度學習
    +關注

    關注

    73

    文章

    5515

    瀏覽量

    121552
  • keras
    +關注

    關注

    2

    文章

    20

    瀏覽量

    6096

原文標題:Keras 入門

文章出處:【微信號:C_Expert,微信公眾號:C語言專家集中營】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Nanopi深度學習之路(1)深度學習框架分析

    ,高度模塊化,可擴展性)。 ? 同時支持卷積神經網絡和循環神經網絡,以及兩者的組合。? 在 CPU 和 GPU 上無縫運行。--摘自《Keras:基于-Python-的深度學習
    發表于 06-04 22:32

    Nanopi深度學習之路(4)深度學習框架安裝前的依賴項安裝

    ,κ?ρα?(號角)/κρα?νω(履行),以及 ?λ?φα?(象牙)/?λεφα?ρομαι(欺騙)。 --摘自《Keras:基于-Python-的深度學習
    發表于 06-08 19:54

    【NanoPi K1 Plus試用體驗】搭建深度學習框架

    KerasKeras是一種高度模塊化,使用簡單上手快,合適深度學習初學者使用的深度學習框架。
    發表于 07-17 11:40

    深度學習入門之基于python的理論與實現

    深度學習入門-基于python的理論與實現(2)
    發表于 06-19 11:22

    Python機器學習深度學習總結

    和DBSCAN。而且也設計出了Python numerical和scientific libraries Numpy and Scipy 2、Keras深度學習) https://g
    發表于 11-10 14:49 ?910次閱讀

    各種編程語言的深度學習整理

    ?Theano是一個python,用數組向量來定義和計算數學表達式。它使得在Python環境下編寫深度學習算法變得簡單。在它基礎之上還搭
    發表于 08-30 10:20 ?2720次閱讀

    盤點幾種深度學習

    ,用數組向量來定義和計算數學表達式。它使得在Python環境下編寫深度學習算法變得簡單。在它基礎之上還搭建了許多類
    發表于 11-16 14:20 ?3165次閱讀

    深度學習框架Keras代碼解析

    總體來講keras這個深度學習框架真的很“簡易”,它體現在可參考的文檔寫的比較詳細,不像caffe,裝完以后都得靠技術博客,keras有它自己的官方文檔(不過是英文的),這給初學者提供
    發表于 12-15 08:22 ?4521次閱讀

    基于Keras搭建的深度學習網絡示例

    Python軟件基金會成員(Contibuting Member)Vihar Kurama簡明扼要地介紹了深度學習的基本概念,同時提供了一個基于Keras搭建的
    的頭像 發表于 06-06 11:21 ?8326次閱讀

    深度學習入門基于python的理論與實現PDF電子書免費下載

    本書是深度學習真正意義上的入門書,深入淺出地剖析了深度學習的原理和相關技術。書中使用Python
    發表于 12-09 08:00 ?19次下載
    <b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>入門</b>基于<b class='flag-5'>python</b>的理論與實現PDF電子書免費下載

    基于Python的理論與實現進行深度學習入門教程

    本書是深度學習真正意義上的入門書,深入淺出地剖析了深度學習的原理和相關技術。書中使用Python
    發表于 11-11 08:00 ?6次下載

    深度學習入門基于Python的理論與實現的PDF電子書免費下載

    本書是深度學習真正意義上的入門書,深入淺出地剖析了深度學習的原理和相關技術。書中使用Python
    發表于 01-27 08:00 ?0次下載
    <b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>入門</b>基于<b class='flag-5'>Python</b>的理論與實現的PDF電子書免費下載

    深度學習入門:基于Python的理論與實現電子書

    深度學習入門:基于Python的理論與實現電子書
    發表于 03-10 09:42 ?32次下載
    <b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>入門</b>:基于<b class='flag-5'>Python</b>的理論與實現電子書

    深度學習常用的Python

    深度學習作為人工智能的一個重要分支,通過模擬人類大腦中的神經網絡來解決復雜問題。Python作為一種流行的編程語言,憑借其簡潔的語法和豐富的支持,成為了
    的頭像 發表于 07-03 16:04 ?725次閱讀

    keras的模塊結構介紹

    Keras是一個高級深度學習,它提供了一個易于使用的接口來構建和訓練深度學習模型。
    的頭像 發表于 07-05 09:35 ?421次閱讀
    新利国际娱乐| 百家乐官网沙| 宾利百家乐游戏| 大发888娱乐城官网| 开平市| 百家乐官网唯一能长期赢钱的方法 | 百家乐教父方法| 大发888开户博彩吧| 博彩百家乐官网规则| 百家乐投注平台导航网| 尊龙网站| 太子百家乐官网娱乐城| 大发888娱乐场118| 网上有百家乐官网玩吗| 送58百家乐的玩法技巧和规则| 石狮市| 娱乐城百家乐怎么样| 明升 | 24山向吉凶水法| 元游视频棋牌游戏| 全讯网433234| 百家乐官网公式论坛| 百家乐群dmwd| 真人百家乐官网澳门娱乐城| 百家乐平台有什么优惠| 百家乐官网真人游戏开户| 百家乐赌场现金网平台排名| 百家乐官网波浪法则| 摩纳哥百家乐娱乐城| 吉林省| 百家乐娱乐优惠| 百家乐官网十佳投庄闲法| 百家乐画面方法| 德州百家乐官网赌博规则| 威尼斯人娱乐诚| 百家乐官网游戏技巧| 百家乐b28博你发v| 百家乐官网记算| 958棋牌游戏| 百家乐官网的必赢术| 最新百家乐网评测排名|