99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機(jī)器學(xué)習(xí)開發(fā)者想要打造一款A(yù)pp有多難?

lviY_AI_shequ ? 來源:機(jī)器之心 ? 2020-05-12 10:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

機(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/

用 300 行 Python 代碼,編程一個可實時執(zhí)行神經(jīng)網(wǎng)絡(luò)推斷的語義搜索引擎。

以我的經(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ù)噩夢」……

機(jī)器學(xué)習(xí)工程師創(chuàng)建 app 的流程(ad-hoc)。

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

工具團(tuán)隊構(gòu)建 app 的流程(干凈整潔,從零開始)。

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

我們返回之前自行構(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)建流程如下:

Streamlit 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í)行寫入操作:

importstreamlitasstst.write('Hello,world!')

2. 把 widget 視作變量

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

importstreamlitasstx=st.slider('x') st.write(x,'squaredis',x*x)

3 行代碼寫成的 Streamlit 交互 app。

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 app 使用 TL-GAN 展示了英偉達(dá) PGGAN 的效果。

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。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8503

    瀏覽量

    134648
  • 激光雷達(dá)
    +關(guān)注

    關(guān)注

    971

    文章

    4236

    瀏覽量

    192908
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86797

原文標(biāo)題:有了這個神器,輕松用 Python 寫 APP !

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    NVIDIA Isaac Sim和Isaac Lab現(xiàn)已推出早期開發(fā)者預(yù)覽版

    NVIDIA 發(fā)布了機(jī)器人仿真參考應(yīng)用 Isaac Sim 和機(jī)器人學(xué)習(xí)框架 Isaac Lab 的開發(fā)者預(yù)覽版。開發(fā)者現(xiàn)在可以通過 GitHub 訪問早期版本,搶先體驗先進(jìn)功能,用于
    的頭像 發(fā)表于 07-04 14:23 ?439次閱讀

    HarmonyOS 代碼工坊的指尖開發(fā),讓 APP 開發(fā)所見即所得

    沙盤被直接搬入了移動設(shè)備本身。眼尖的開發(fā)者應(yīng)該已經(jīng)發(fā)現(xiàn),最近華為應(yīng)用市場“應(yīng)用嘗鮮”專區(qū)里,上架了一款名為“HarmonyOS 代碼工坊”的新應(yīng)用,下載量持續(xù)攀升。 開發(fā)者只需要下載“HarmonyOS 代碼工坊”,就可以看到,
    的頭像 發(fā)表于 06-24 12:08 ?176次閱讀
    HarmonyOS 代碼工坊的指尖<b class='flag-5'>開發(fā)</b>,讓 <b class='flag-5'>APP</b> <b class='flag-5'>開發(fā)</b>所見即所得

    深開鴻C(jī)EO王成錄:開發(fā)者是開源鴻蒙生態(tài)的原點

    5月24日,深開鴻正式發(fā)布全國首面向開發(fā)者的開源鴻蒙學(xué)習(xí)平臺——開鴻Bot系列產(chǎn)品。這是開源鴻蒙在開發(fā)者終端領(lǐng)域的關(guān)鍵落地,更是深開鴻貫徹“以開發(fā)
    的頭像 發(fā)表于 05-26 12:06 ?423次閱讀
    深開鴻C(jī)EO王成錄:<b class='flag-5'>開發(fā)者</b>是開源鴻蒙生態(tài)的原點

    開鴻Bot系列:為開源鴻蒙開發(fā)者而生!

    操作系統(tǒng),實現(xiàn)從國產(chǎn)高性能芯片到操作系統(tǒng)的全棧自主化,構(gòu)建起站式的開源鴻蒙學(xué)習(xí)開發(fā)平臺。融合開發(fā)與辦公場景打造開源鴻蒙生態(tài)的“第
    的頭像 發(fā)表于 05-16 16:06 ?483次閱讀
    開鴻Bot系列:為開源鴻蒙<b class='flag-5'>開發(fā)者</b>而生!

    Java開發(fā)者必備的效率工具——Perforce JRebel是什么?為什么很多Java開發(fā)者在用?

    Perforce JRebel是一款Java開發(fā)效率工具,旨在幫助java開發(fā)人員更快地編寫更好的應(yīng)用程序。JRebel可即時重新加載對代碼的修改,無需重啟或重新部署應(yīng)用程序,就能讓開發(fā)者
    的頭像 發(fā)表于 04-27 13:44 ?263次閱讀
    Java<b class='flag-5'>開發(fā)者</b>必備的效率工具——Perforce JRebel是什么?為什么很多Java<b class='flag-5'>開發(fā)者</b>在用?

    名單公布!【書籍評測活動NO.58】ROS 2智能機(jī)器開發(fā)實踐

    注釋,同時針對核心內(nèi)容提供C++和Python兩個版本,方便讀者理解。 所以,本書不僅適合希望了解、學(xué)習(xí)、應(yīng)用ROS 2的機(jī)器人初學(xué)者,也適合定經(jīng)驗的
    發(fā)表于 03-03 14:18

    當(dāng)平臺工程遇上DevEx:打造卓越的開發(fā)者體驗

    作者:京東零售 井亮亮 引言 近期在參與編寫平臺工程系列標(biāo)準(zhǔn)時,我發(fā)現(xiàn)開發(fā)者體驗 (DevEx) 是個不可忽視的關(guān)鍵因素,它對于構(gòu)建個成功的平臺工程起到了重要的作用, DevEx 可以稱之為平臺
    的頭像 發(fā)表于 02-19 10:17 ?281次閱讀
    當(dāng)平臺工程遇上DevEx:<b class='flag-5'>打造</b>卓越的<b class='flag-5'>開發(fā)者</b>體驗

    谷歌推出Android XR SDK開發(fā)者預(yù)覽版

    近期推出的 Android XR SDK 開發(fā)者預(yù)覽版是一款適用于 Android XR 的綜合開發(fā)工具套件。它是 Android 系列中最新的平臺,專為擴(kuò)展現(xiàn)實 (XR) 頭顯設(shè)備 (以及未來
    的頭像 發(fā)表于 01-10 10:13 ?670次閱讀

    開發(fā)者的開源鴻蒙故事

    近日,在以“切為了開發(fā)者”為主題的“2024開放原子開發(fā)者大會暨首屆開源技術(shù)學(xué)術(shù)大會”上,開源鴻蒙5.0 Release版本正式發(fā)布,備受各方關(guān)注。該版本在系統(tǒng)完備度、分布式創(chuàng)新、開發(fā)者
    的頭像 發(fā)表于 01-06 10:28 ?875次閱讀

    《HarmonyOS第課》煥新升級,賦能開發(fā)者快速掌握鴻蒙應(yīng)用開發(fā)

    《HarmonyOS第課》煥新升級,賦能開發(fā)者快速掌握鴻蒙應(yīng)用開發(fā) 隨著HarmonyOS NEXT發(fā)布,鴻蒙生態(tài)日益壯大,廣大開發(fā)者對于系統(tǒng)化學(xué)
    發(fā)表于 01-02 14:24

    基于瑞薩FPB-RA4E2智能床頭燈項目——4 APP制作

    App Inventor是一款由Google開發(fā)的在線移動應(yīng)用開發(fā)平臺,主要用于開發(fā)Android應(yīng)用程序。它通過可視化編程方式,允許用戶使
    發(fā)表于 11-29 22:38

    HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)Intents Kit(意圖框架服務(wù))事件推薦開發(fā)者測試

    :基礎(chǔ)信息提供,環(huán)境準(zhǔn)備,聯(lián)調(diào)驗證。 、基礎(chǔ)信息提供 達(dá)成開發(fā)意向后,開發(fā)者發(fā)送郵件到郵箱(hagservice@huawei.com)或者聯(lián)系華為意圖框架接口同事,向華為提供測試應(yīng)用的信息。 二、環(huán)境
    發(fā)表于 11-18 17:39

    如果設(shè)計一款桌面機(jī)器玩具,最吸引人的外觀與功能要有哪些?

    初步設(shè)想制作如下其中一款,有感興趣的朋友可以幫提提意見。 A一款圓敦敦的音響狀的“個人日程助手”,具備番茄鬧鐘、音樂播放、減壓交互、語言對話、工作日報生成。 B一款迷你瓦利機(jī)器人,
    發(fā)表于 10-19 18:25

    宣布 RISE RISC-V 開發(fā)者表彰試點計劃:賦能開發(fā)者拓展 RISC-V 影響力

    我們直在尋找加強(qiáng)RISC-V架構(gòu)和擴(kuò)大其在軟件生態(tài)系統(tǒng)中應(yīng)用的方法。為進(jìn)步實現(xiàn)這個愿景,我們很高興地宣布啟動RISC-V開發(fā)者表彰試點計劃[1],旨在表彰和支持為將RISC-V打造
    的頭像 發(fā)表于 10-15 08:08 ?567次閱讀
    宣布 RISE RISC-V <b class='flag-5'>開發(fā)者</b>表彰試點計劃:賦能<b class='flag-5'>開發(fā)者</b>拓展 RISC-V 影響力

    想要設(shè)計一款壓控或流控電流源,電流輸出是交流,大小500mA,什么電路推薦嗎?

    想要設(shè)計一款壓控或流控電流源,電流輸出是交流,大小500mA,什么電路推薦嗎
    發(fā)表于 09-27 07:20