在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

機器學習開發者想要打造一款App有多難?

lviY_AI_shequ ? 來源:機器之心 ? 2020-05-12 10:06 ? 次閱讀

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

Streamlit 網站:https://streamlit.io/ GitHub地址:https://github.com/streamlit/streamlit/

用 300 行 Python 代碼,編程一個可實時執行神經網絡推斷的語義搜索引擎。

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

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

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

機器學習工程師創建 app 的流程(ad-hoc)。

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

工具團隊構建 app 的流程(干凈整潔,從零開始)。

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

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

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

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

Streamlit app 構建流程。

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

Streamlit 的核心原則如下:

1. 擁抱 Python

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

importstreamlitasstst.write('Hello,world!')

2. 把 widget 視作變量

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

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

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

3. 重用數據和計算

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

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

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

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

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

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

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

如下圖所示:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

該 Streamlit app 使用 TL-GAN 展示了英偉達 PGGAN 的效果。

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

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

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

Streamlit 組件圖示。

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

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

    關注

    66

    文章

    8438

    瀏覽量

    132981
  • 激光雷達
    +關注

    關注

    968

    文章

    4024

    瀏覽量

    190309
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    84977

原文標題:有了這個神器,輕松用 Python 寫 APP !

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    谷歌推出Android XR SDK開發者預覽版

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

    開發者的開源鴻蒙故事

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

    《HarmonyOS第課》煥新升級,賦能開發者快速掌握鴻蒙應用開發

    《HarmonyOS第課》煥新升級,賦能開發者快速掌握鴻蒙應用開發 隨著HarmonyOS NEXT發布,鴻蒙生態日益壯大,廣大開發者對于系統化
    發表于 01-02 14:24

    HarmonyOS NEXT應用元服務開發Intents Kit(意圖框架服務)事件推薦開發者測試

    :基礎信息提供,環境準備,聯調驗證。 、基礎信息提供 達成開發意向后,開發者發送郵件到郵箱(hagservice@huawei.com)或者聯系華為意圖框架接口同事,向華為提供測試應用的信息。 二、環境
    發表于 11-18 17:39

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

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

    開發者分享 | 基于先楫RT-Thread BSP,使用CLion開發應用

    本期開發者:朱彥祖RT-Thread資深工程師,HPM6700/6400元老級開發者及骨灰級用戶,先輯生態社區常駐優秀開發者,江湖人稱杭州吳彥祖。背景最近在使用先輯HPM6750開發
    的頭像 發表于 06-07 08:17 ?2994次閱讀
    <b class='flag-5'>開發者</b>分享 | 基于先楫RT-Thread BSP,使用CLion<b class='flag-5'>開發</b>應用

    個新的積木編程工具:Node-App

    、OLED、TFT顯示屏之外,又添加了更靈活的網絡接口。這里就有個問題,網絡界面不僅需要在硬件上實現功能,還需要構建個用戶端App。這兩的實現方式
    發表于 05-28 15:55

    涂鴉App開發工具App SDK

    聯網移動應用(IoTApp)開發打造系列SDK,為開發者提供了豐富的組件和示例代碼,可以快速實現移動App對智能設備的連接、控制以及豐富
    的頭像 發表于 05-24 08:15 ?895次閱讀
    涂鴉<b class='flag-5'>App</b><b class='flag-5'>開發</b>工具<b class='flag-5'>App</b> SDK

    Meta Quest商店優化搜索權重,助力小型開發者應用

    此外,Meta 還將 Quest 應用商店與旗下的“App Lab”進行整合。App Lab 是一款專門面向初創公司/開發者的軟件測試平臺,只要符合基本技術及內容要求,即可在該平臺上發
    的頭像 發表于 05-20 17:05 ?623次閱讀

    報名開啟!第二屆OpenHarmony開發者大會2024重磅來襲!

    OpenHarmony 開發者大會2024,為開發者、產業組織、生態伙伴和行業用戶搭建個交流、分享和學習的平臺。大會以 OpenHarmony 4.1 Release版本根技術特性
    發表于 05-14 15:23

    華為云開發者桌面全新發布 CodeArts IDE for Python,極致優雅云原生開發體驗

    近日,華為云正式發布 CodeArts IDE for Python,這是一款內置華為自研 Python 語言服務,提供智能編程、靈活調試能力的可擴展桌面開發工具,為華為云開發者提供卓越
    的頭像 發表于 05-10 00:27 ?1281次閱讀
    華為云<b class='flag-5'>開發者</b>桌面全新發布 CodeArts IDE for Python,極致優雅云原生<b class='flag-5'>開發</b>體驗

    機智云開發者中心:讓移動APP應用開發更智能化

    智能化和高效。 ? 新版本開發者中心的介紹 機智云物聯網新版本開發者中心是一款專為開發者設計的一體化開發工具,旨在提供更智能、簡便的移動
    的頭像 發表于 03-26 16:45 ?364次閱讀
    機智云<b class='flag-5'>開發者</b>中心:讓移動<b class='flag-5'>APP</b>應用<b class='flag-5'>開發</b>更智能化

    Android 15的首個開發者預覽版現已發布

    Android 15 的首個開發者預覽版現已發布,以便各位開發者能與我們通力協作,打造更優秀的 Android 平臺。
    的頭像 發表于 03-12 14:16 ?992次閱讀
    Android 15的首個<b class='flag-5'>開發者</b>預覽版現已發布

    鴻蒙開發者預覽版如何?

    在24年的華為鴻蒙發布會中表示。預覽版已經向開發者開放申請,首批支持的機型分別為華為 Mate 60、華為Mate 60 Pro、華為Mate X5。 其HarmonyOS NEXT去除
    發表于 02-17 21:54

    鴻蒙系統優缺點,能否作為開發者選擇

    星河版已經是純血鴻蒙,但是它的發展些周期。生態圈的建立難度大,各大廠商加入鴻蒙原生開發需要時間累積。 鴻蒙開發人才空缺,由于鴻蒙作為一款新型的系統,程序員們都是從0學起。所以市面上很
    發表于 02-16 21:00
    主站蜘蛛池模板: 午夜两性色视频免费网站 | 2018天天干天天操 | 亚洲综合色一区二区三区小说 | 久久99热精品免费观看无卡顿 | www.五月婷| 综合久| 精品三级国产精品经典三 | 免费一级特黄欧美大片勹久久网 | 37pao强力打造免费高速高清 | 2020夜夜操 | 岛国毛片一级一级特级毛片 | 五月停停| 人人添 | 亚洲youjizz | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠久久丁香 | 一二三四日本视频社区 | 好大好硬好深好爽想要免费视频 | 日日噜噜噜夜夜爽爽狠狠视频 | 天堂中文在线观看 | 毛片免| 国产美女一级高清免费观看 | 伊人99| 国产三级在线播放 | 国产农村一一级特黄毛片 | 免费又爽又黄的禁片1000部 | 亚洲天天做日日做天天欢毛片 | 久久综合九色婷婷97 | 国产成人优优影院 | 欧美图片小说视频 | 成人男女啪啪免费观看网站 | 黄色xxxx| 让她爽的喷水叫爽乱 | 一区中文字幕 | 色多多在线看 | 18满xo影院视频免费体验区 | 超黄视频网站 | 欧美一区二区视频三区 | 色老头成人免费综合视频 | 日本大片免费一级 | 色yeye在线观看 | 日日夜夜天天久久 |