加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

从Python代码到APP,你只必要一个小器材:GitHub已超3000星

发布时间:2019-11-01 01:32:48 所属栏目:移动互联 来源:机器之心编译
导读:呆板进修开拓者想要打造一款 App 有多灾?究竟上,你只必要会 Python 代码就可以了,剩下的事变都可以交给一个器材。克日,Streamlit 连系首创人 Adrien Treuille 撰文先容其开拓的呆板进修器材开拓框架Streamlit,这是一款专为呆板进修工程师建设的免费、
副问题[/!--empirenews.page--]

呆板进修开拓者想要打造一款 App 有多灾?究竟上,你只必要会 Python 代码就可以了,剩下的事变都可以交给一个器材。克日,Streamlit 连系首创人 Adrien Treuille 撰文先容其开拓的呆板进修器材开拓框架——Streamlit,这是一款专为呆板进修工程师建设的免费、开源 app 构建框架。这款器材可以在你写 Python 代码的时辰,及时更新你的应用。今朝,Streamlit 的 GitHub Star 量已经高出 3400,在 medim 上的热度更是到达了 9000+。 

从Python代码到APP,你只必要一个小器材:GitHub已超3000星
 
Streamlit 网站:https://streamlit.io/
GitHub地点:https://github.com/streamlit/streamlit/

从Python代码到APP,你只必要一个小器材:GitHub已超3000星

用 300 行 Python 代码,编程一个可及时执行神经收集揣度的语义搜刮引擎。

以我的履历,每一个不服凡的呆板进修项目都是用错误百出、难以维护的内部器材整合而成的。这些器材凡是用 Jupyter Notebooks 和 Flask app 写成,很难陈设,必要对客户端处事器架构(C/S 架构)举办推理,且无法与 Tensorflow GPU 会话等呆板进修组件举办很好的整合。
我第一次看到此类器材是在卡内基梅隆大学,之后又在伯克利、Google X、Zoox 看到。这些器材最初只是小的 Jupyter notebook:传感器校准器材、仿真比拟 app、激光雷达对齐 app、场景重现器材等。
当一个器材越来越重要时,项目司分析参与个中:历程和需求不绝增进。这些单独的项目酿成代码剧本,并逐渐成长成为冗长的「维护恶梦」…

从Python代码到APP,你只必要一个小器材:GitHub已超3000星

呆板进修工程师建设 app 的流程(ad-hoc)。

而当一个器材很是要害时,我们会组建器材团队。他们纯熟地写 Vue 和 React,在条记本电脑上贴满声明式框架的贴纸。他们的计划流程是这样式的:

从Python代码到APP,你只必要一个小器材:GitHub已超3000星

器材团队构建 app 的流程(干净整洁,从零开始)。

这的确太棒了!可是全部这些器材都必要新成果,好比每周上线新成果。然而器材团队也许同时支持 10 多个项目,他们会说:「我们会在两个月内更新您的器材。」
我们返回之前自行构建器材的流程:陈设 Flask app,写 HTML、CSS 和 JavaScript,实行对从 notebook 到样式表的全部一些举办版本节制。我和在 Google X 事变的伴侣 Thiago Teixeira 开始思索:假如构建器材像写 Python 剧本一样简朴呢?
我们但愿在没有器材团队的环境下,呆板进修工程师也能构建不错的 app。这些内部器材应该像呆板进修事变流程的副产物那样天然而然地呈现。写此类器材感受就像实习神经收集可能在 Jupyter 中执行点对点说明(ad-hoc analysis)!同时,我们还想保存强盛 app 框架的机动性。我们想缔造出令工程师自满的好器材。
我们但愿的 app 构建流程如下:

从Python代码到APP,你只必要一个小器材:GitHub已超3000星

Streamlit app 构建流程。
与来自 Uber、Twitter、Stitch Fix、Dropbox 等的工程师一道,我们用一年时刻缔造了 Streamlit,这是一个针对呆板进修工程师的免费开源 app 框架。不管对付任何原型,Streamlit 的焦点原则都是更简朴、更纯粹。
Streamlit 的焦点原则如下:
1. 拥抱 Python
Streamlit app 是完全自上而下运行的剧本,没有潜匿状态。你可以操作函数挪用来处理赏罚代码。只要你会写 Python 剧本,你就可以写 Streamlit app。譬喻,你可以凭证以下代码对屏幕执行写入操纵:
import streamlit as stst.write('Hello, world!') 

从Python代码到APP,你只必要一个小器材:GitHub已超3000星

2. 把 widget 视作变量
Streamlit 中没有 callback!每一次交互都只是自上而下从头运行剧本。该要领使得代码很是干净:
import streamlit as stx = st.slider('x')
st.write(x, 'squared is', x * x) 

从Python代码到APP,你只必要一个小器材:GitHub已超3000星

3 行代码写成的 Streamlit 交互 app。
3. 重用数据和计较
假如要下载大量数据或执行伟大计较,怎么办?要害在于在多次运行中安详地重用信息。Streamlit 引入了 cache primitive,它像一个一连的默认不行变动的数据存储器,保障 Streamlit app 轻松安详地重用信息。譬喻,以下代码只从 Udacity 自动驾驶项目(https://github.com/udacity/self-driving-car)中下载一次数据,就可获得一个简朴快速的 app:

从Python代码到APP,你只必要一个小器材:GitHub已超3000星

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读