中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于Python機器學習工具開發框架Streamlit的詳細簡介

發布時間:2020-08-05 10:07:56 來源:億速云 閱讀:592 作者:清晨 欄目:編程語言

小編給大家分享一下關于Python機器學習工具開發框架Streamlit的詳細簡介,這個框架具體有什么用呢,相信大部分人都還不怎么了解,因此分享這篇文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習吧!

機器學習開發者想要打造一款 App 有多難?事實上,你只需要會 Python 代碼就可以了,剩下的工作都可以交給一個工具。近日,Streamlit 聯合創始人 Adrien Treuille 撰文介紹其開發的機器學習工具開發框架——Streamlit,這是一款專為機器學習工程師創建的免費、開源 app 構建框架。這款工具可以在你寫 Python 代碼的時候,實時更新你的應用。目前,Streamlit 的 GitHub Star 量已經超過 3400,在 medim 上的熱度更是達到了 9000+。

關于Python機器學習工具開發框架Streamlit的詳細簡介

Streamlit 網站:https://streamlit.io/

GitHub地址:https://github.com/streamlit/streamlit/

關于Python機器學習工具開發框架Streamlit的詳細簡介

以我的經驗,每一個不平凡的機器學習項目都是用錯誤百出、難以維護的內部工具整合而成的。這些工具通常用 Jupyter Notebooks 和 Flask app 寫成,很難部署,需要對客戶端服務器架構(C/S 架構)進行推理,且無法與 Tensorflow GPU 會話等機器學習組件進行很好的整合。

我第一次看到此類工具是在卡內基梅隆大學,之后又在伯克利、Google X、Zoox 看到。這些工具最初只是小的 Jupyter notebook:傳感器校準工具、仿真對比 app、激光雷達對齊 app、場景重現工具等。

當一個工具越來越重要時,項目經理會介入其中:進程和需求不斷增加。這些單獨的項目變成代碼腳本,并逐漸發展成為冗長的「維護噩夢」……

關于Python機器學習工具開發框架Streamlit的詳細簡介

而當一個工具非常關鍵時,我們會組建工具團隊。他們熟練地寫 Vue 和 React,在筆記本電腦上貼滿聲明式框架的貼紙。他們的設計流程是這樣式的:

關于Python機器學習工具開發框架Streamlit的詳細簡介

這簡直太棒了!但是所有這些工具都需要新功能,比如每周上線新功能。然而工具團隊可能同時支持 10 多個項目,他們會說:「我們會在兩個月內更新您的工具。」

我們返回之前自行構建工具的流程:部署 Flask app,寫 HTML、CSS 和 JavaScript,嘗試對從 notebook 到樣式表的所有一些進行版本控制。我和在 Google X 工作的朋友 Thiago Teixeira 開始思考:如果構建工具像寫 Python 腳本一樣簡單呢?

我們希望在沒有工具團隊的情況下,機器學習工程師也能構建不錯的 app。這些內部工具應該像機器學習工作流程的副產品那樣自然而然地出現。寫此類工具感覺就像訓練神經網絡或者在 Jupyter 中執行點對點分析(ad-hoc analysis)!同時,我們還想保留強大 app 框架的靈活性。我們想創造出令工程師驕傲的好工具。

我們希望的 app 構建流程如下:

關于Python機器學習工具開發框架Streamlit的詳細簡介

與來自 Uber、Twitter、Stitch Fix、Dropbox 等的工程師一道,我們用一年時間創造了 Streamlit,這是一個針對機器學習工程師的免費開源 app 框架。不管對于任何原型,Streamlit 的核心原則都是更簡單、更純粹。

Streamlit 的核心原則如下:

1. 擁抱 Python

Streamlit app 是完全自上而下運行的腳本,沒有隱藏狀態。你可以利用函數調用來處理代碼。只要你會寫 Python 腳本,你就可以寫 Streamlit app。例如,你可以按照以下代碼對屏幕執行寫入操作:

import streamlit as stst.write('Hello, world!')

關于Python機器學習工具開發框架Streamlit的詳細簡介

2. 把 widget 視作變量

Streamlit 中沒有 callback!每一次交互都只是自上而下重新運行腳本。該方法使得代碼非常干凈:

import streamlit as stx = st.slider('x')
st.write(x, 'squared is', x * x)

關于Python機器學習工具開發框架Streamlit的詳細簡介

3. 重用數據和計算

如果要下載大量數據或執行復雜計算,怎么辦?關鍵在于在多次運行中安全地重用信息。Streamlit 引入了 cache primitive,它像一個持續的默認不可更改的數據存儲器,保障 Streamlit app 輕松安全地重用信息。例如,以下代碼只從 Udacity 自動駕駛項目(https://github.com/udacity/self-driving-car)中下載一次數據,就可得到一個簡單快速的 app:

關于Python機器學習工具開發框架Streamlit的詳細簡介

使用 st.cache,在 Streamlit 多次運行中保存數據。代碼運行說明,參見:https://gist.github.com/treuille/c633dc8bc86efaa98eb8abe76478aa81#gistcomment-3041475。

關于Python機器學習工具開發框架Streamlit的詳細簡介

運行以上 st.cache 示例的輸出。

簡而言之,Streamlit 的工作流程如下:

每次用戶交互均需要從頭運行全部腳本。

Streamlit 根據 widget 狀態為每個變量分配最新值。

緩存保證 Streamlit 重用數據和計算。

如下圖所示:

關于Python機器學習工具開發框架Streamlit的詳細簡介

用戶事件觸發 Streamlit 從頭開始重新運行腳本。不同運行中僅保留緩存。

感興趣的話,你可以立刻嘗試!只需運行以下行:

網頁瀏覽器將自動打開,并轉向本地 Streamlit app。如果沒有出現瀏覽器窗口,只需點擊鏈接。

關于Python機器學習工具開發框架Streamlit的詳細簡介

這些想法很簡潔,但有效,使用 Streamlit 不會妨礙你創建豐富有用的 app。我在 Zoox 和 Google X 工作時,看著自動駕駛汽車項目發展成為數 G 的視覺數據,這些數據需要搜索和理解,包括在圖像數據上運行模型進而對比性能。我看到的每一個自動駕駛汽車項目都有整支團隊在做這方面的工具。

在 Streamlit 中構建此類工具非常簡單。以下 Streamlit demo 可以對整個 Udacity 自動駕駛汽車照片數據集執行語義搜索,對人類標注的真值標簽進行可視化,并在 app 內實時運行完整的神經網絡(YOLO)。

關于Python機器學習工具開發框架Streamlit的詳細簡介

這個 300 行代碼寫成的 Streamlit demo 結合了語義視覺搜索和交互式神經網絡推斷。

整個 app 只有 300 行 Python 代碼,其中大部分是機器學習代碼。事實上,整個 app 里只有 23 次 Streamlit 調用。你可以試試看:

關于Python機器學習工具開發框架Streamlit的詳細簡介

我們與機器學習團隊合作,為他們的項目而努力時,逐漸意識到這些簡單的想法會帶來大量重要的收益:

Streamlit app 是純 Python 文件。你可以使用自己喜歡的編輯器和 debugger。

關于Python機器學習工具開發框架Streamlit的詳細簡介

我用 Streamlit 構建 app 時喜歡用 VSCode 編輯器(左)和 Chrome(右)。

純 Python 代碼可與 Git 等源碼控制軟件無縫對接,包括 commits、pull requests、issues 和 comment。由于 Streamlit 的底層語言是 Python,因此你可以免費利用這些協作工具的好處。

關于Python機器學習工具開發框架Streamlit的詳細簡介

Streamlit app 是 Python 腳本,因此你可以使用 Git 輕松執行版本控制。

Streamlit 提供即時模式的編程環境。當 Streamlit 檢測出源文件變更時,只需點擊 Always rerun 即可。

關于Python機器學習工具開發框架Streamlit的詳細簡介

點擊「Always rerun」,保證實時編程。

緩存簡化計算流程。一連串緩存函數自動創建出高效的計算流程!你可以嘗試以下代碼:

關于Python機器學習工具開發框架Streamlit的詳細簡介

Streamlit 中的簡單計算流程。運行以上代碼,參見說明:https://gist.github.com/treuille/ac7755eb37c63a78fac7dfef89f3517e#gistcomment-3041436。

基本上,該流程涉及加載元數據到創建摘要等步驟(load_metadata → create_summary)。該腳本每次運行時,Streamlit 僅需重新計算該流程的子集即可。

關于Python機器學習工具開發框架Streamlit的詳細簡介

為了保證 app 的可執行性,Streamlit 僅計算更新 UI 所必需的部分。

Streamlit 適用于 GPU。Streamlit 可以直接訪問機器級原語(如 TensorFlow、PyTorch),并對這些庫進行補充。例如,以下 demo 中,Streamlit 的緩存存儲了整個英偉達 PGGAN。該方法可使用戶在更新左側滑塊時,app 執行近乎即時的推斷。

關于Python機器學習工具開發框架Streamlit的詳細簡介

Streamlit 是免費開源庫,而非私有 web app。你可以本地部署 Streamlit app,不用提前聯系我們。你甚至可以在不聯網的情況下在筆記本電腦上本地運行 Streamlit。此外,現有項目也可以漸進地使用 Streamlit。

關于Python機器學習工具開發框架Streamlit的詳細簡介

漸進地使用 Streamlit 的幾種方式。

以上只是 Streamlit 功能的冰山一角而已。它最令人興奮的一點是,這些原語可以輕松組成復雜 app,但看起來卻只是簡單腳本。這就要涉及架構運作原理和功能了,本文暫不談及。

關于Python機器學習工具開發框架Streamlit的詳細簡介

Streamlit 組件圖示。

我們很高興與社區分享 Streamlit,希望它能夠幫助大家輕松將 Python 腳本轉化為美觀實用的機器學習 app。

以上是關于Python機器學習工具開發框架Streamlit的詳細簡介的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

四会市| 安新县| 澜沧| 涞水县| 巴楚县| 本溪| 四平市| 台前县| 工布江达县| 内江市| 报价| 阜新市| 滦平县| 驻马店市| 望城县| 衡山县| 临颍县| 建瓯市| 闵行区| 东海县| 秦皇岛市| 深泽县| 沙田区| 改则县| 河曲县| 桐城市| 张家港市| 长垣县| 德格县| 东城区| 九龙县| 弥渡县| 祁阳县| 稷山县| 牡丹江市| 仁怀市| 东港市| 茌平县| 察雅县| 鄂托克前旗| 香格里拉县|