日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

从Python代码到APP,你只需要一个小工具:GitHub已超3000星

發(fā)布時間:2025/3/20 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从Python代码到APP,你只需要一个小工具:GitHub已超3000星 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

Streamlit 網(wǎng)站:https://streamlit.io/

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

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

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

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


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

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

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

我們希望在沒有工具團(tuán)隊的情況下,機(jī)器學(xué)習(xí)工程師也能構(gòu)建不錯的 app。這些內(nèi)部工具應(yīng)該像機(jī)器學(xué)習(xí)工作流程的副產(chǎn)品那樣自然而然地出現(xiàn)。寫此類工具感覺就像訓(xùn)練神經(jīng)網(wǎng)絡(luò)或者在 Jupyter 中執(zhí)行點對點分析(ad-hoc analysis)!同時,我們還想保留強(qiáng)大 app 框架的靈活性。我們想創(chuàng)造出令工程師驕傲的好工具。

我們希望的 app 構(gòu)建流程如下:

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

Streamlit 的核心原則如下:

1. 擁抱 Python

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

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


2. 把 widget 視作變量

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

# Python學(xué)習(xí)交流QQ群:857662006 import streamlit as stx = st.slider('x') st.write(x, 'squared is', x * x)


3. 重用數(shù)據(jù)和計算

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

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

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

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

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

  • Streamlit 根據(jù) widget 狀態(tài)為每個變量分配最新值。

  • 緩存保證 Streamlit 重用數(shù)據(jù)和計算。

  • 如下圖所示:

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

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

    網(wǎng)頁瀏覽器將自動打開,并轉(zhuǎn)向本地 Streamlit app。如果沒有出現(xiàn)瀏覽器窗口,只需點擊鏈接。

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

    在 Streamlit 中構(gòu)建此類工具非常簡單。以下 Streamlit demo 可以對整個 Udacity 自動駕駛汽車照片數(shù)據(jù)集執(zhí)行語義搜索,對人類標(biāo)注的真值標(biāo)簽進(jìn)行可視化,并在 app 內(nèi)實時運行完整的神經(jīng)網(wǎng)絡(luò)(YOLO)。

    這個 300 行代碼寫成的 Streamlit demo 結(jié)合了語義視覺搜索和交互式神經(jīng)網(wǎng)絡(luò)推斷。

    整個 app 只有 300 行 Python 代碼,其中大部分是機(jī)器學(xué)習(xí)代碼。事實上,整個 app 里只有 23 次 Streamlit 調(diào)用。你可以試試看:

    我們與機(jī)器學(xué)習(xí)團(tuán)隊合作,為他們的項目而努力時,逐漸意識到這些簡單的想法會帶來大量重要的收益:

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

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

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

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

    Streamlit 提供即時模式的編程環(huán)境。當(dāng) Streamlit 檢測出源文件變更時,只需點擊 Always rerun 即可。

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

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

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

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

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

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

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

    漸進(jìn)地使用 Streamlit 的幾種方式。

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

    Streamlit 組件圖示。

    我們很高興與社區(qū)分享 Streamlit,希望它能夠幫助大家輕松將 Python 腳本轉(zhuǎn)化為美觀實用的機(jī)器學(xué)習(xí) app。

    原文鏈接:https://towardsdatascience.com/coding-ml-tools-like-you-code-ml-models-ddba3357eace

    總結(jié)

    以上是生活随笔為你收集整理的从Python代码到APP,你只需要一个小工具:GitHub已超3000星的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 手机看片91 | 亚洲中文在线一区 | 精品一区视频 | 成人 黄 色 免费播放 | 在线看三级 | 干干干操操操 | 日本一区二区三区免费观看 | 国产农村妇女精品一二区 | 九七影院在线观看免费观看电视 | 久操网在线 | 就要操av | 日韩精品一区二区三区中文在线 | 麻豆福利在线观看 | 久久久精品国产sm调教网站 | 午夜激情网站 | 91精品福利在线 | www.色网| 91美女诱惑 | 欧美视频久久久 | 亚洲精品成人区在线观看 | 爱爱视频免费看 | 亚洲国产看片 | 天天射天天爽 | 天天色棕合合合合合合合 | 少妇毛片一区二区三区粉嫩av | 亚洲视频免费播放 | 国产日韩片| 欧美熟妇激情一区二区三区 | r级无码视频在线观看 | 国产不卡一区二区视频 | 手机看片一区二区 | 在线观看免费高清在线观看 | 不卡的av电影 | 日韩一级性生活片 | 成年人爱爱视频 | 6080毛片 | 93看片淫黄大片一级 | 亚洲色成人www永久网站 | 久草福利资源站 | 性生活网址 | 天天操天天拍 | 狗爬女子的视频 | 涩涩国产| 国产福利片一区二区 | 91精品国产手机 | 中国新婚夫妻性猛交 | 色婷婷免费视频 | 久久老司机精品视频 | 一级免费黄色大片 | 女女互慰吃奶互揉调教捆绑 | 爱露出| 国产婷婷色一区二区在线观看 | 无码精品人妻一二三区红粉影视 | 在线视频免费观看一区 | 国产原创在线播放 | 国产一级二级三级视频 | 看毛片看毛片 | 国产做受高潮动漫 | 人人干在线视频 | 中文字幕观看在线 | 无码国产精品一区二区免费16 | 国产精品天天av精麻传媒 | av免费播放| 最新中文字幕免费视频 | 色一情一乱一伦一区二区三区 | 蜜臀av性久久久久蜜臀av麻豆 | 黑人精品无码一区二区三区AV | 日本在线不卡一区 | 日本乱偷中文字幕 | 日本人做受免费视频 | 亚洲一区二区视频网站 | 色人阁网站 | 69视频网| 成年人免费在线观看视频网站 | 日韩电影在线观看一区二区 | 越南少妇做受xxx片 亚洲av综合色区无码一二三区 | 国产在线拍揄自揄拍无码 | 国产精品天美传媒入口 | 在线观看视频亚洲 | 久热青草| 精品国产乱码久久久人妻 | 国产亚洲精久久久久久无码苍井空 | 欧美在线视频免费 | 日本三级韩国三级三级a级按摩 | 老局长的粗大高h | 美女啪啪一区二区 | 日韩激情在线播放 | 久久久精品999| 亚欧激情 | 成人性做爰aaa片免费 | 日本加勒比中文字幕 | 欧美丰满老熟妇xxxxx性 | 国产在线观看免费 | 久久无码视频网站 | 国产亚洲自拍一区 | 亚洲一区二区三区久久久 | 深夜成人福利视频 | 精品妇女一区二区三区 | 香蕉视频免费在线看 |