神器啊!轻松用Python写个APP!转载

原创
小哥 3年前 (2022-10-17) 阅读数 43 #大杂烩
大家好,我是菜鸟兄弟大家好,我是菜鸟,我是菜鸟兄弟大家好,我是菜鸟

想要构建机器学习的开发人员希望构建一个 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 不如像剧本一样简单?不如像编写脚本一样简单?这么简单的脚本怎么样?不如像编写脚本一样简单?

我们希望机器学习工程师能够在没有工具团队的情况下构建NICE 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。例如,您可以按照以下代码对屏幕执行写入操作。

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

  1. 把 widget 视作变量

Streamlit 中没有 callback好了!每次交互只是自上而下地重新运行脚本。这种方法使代码非常简洁:

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

3 编写的代码行编写的代码行 Streamlit 交互 app。

  1. 重用数据和计算重用数据和计算重用数据和计算

如果我必须下载大量数据或执行复杂的计算怎么办?关键是在多次运行中安全地重复使用信息。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 工作流程如下。

  1. 每次用户交互都需要从头开始运行整个脚本。

  2. Streamlit 根据 widget Status为每个变量分配最新的值。

  3. 缓存保证 Streamlit 重用数据和计算重用数据和计算重复使用数据和计算。重复使用数据和计算。重复使用数据和计算。重复使用数据和计算。

如下图所示。如下图所示。如下图所示。如下所示。

用户事件触发用户事件触发器用户事件触发器 Streamlit 从头重新运行脚本。从头开始重新运行脚本。从头开始重新运行该脚本。 只有缓存保存在不同的运行中。只有缓存保留在不同的运行中。

如果你感兴趣,现在就可以试一试!只需运行以下行即可。

Web浏览器将自动打开并移动到本地 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 高速缓存存储整个nvidia的高速缓存存储整个nvidia PGGAN。此方法允许用户在以下情况下更新左侧滑块app 执行近乎瞬时的外推。执行近乎瞬时的外推。执行近乎瞬时的外推。执行近乎即时的推论。

该 Streamlit app 使用 TL-GAN 展示NVIDIA演示NVIDIA演示 PGGAN 的效果。

Streamlit 是自由开源的库,不是私有的,是免费的开源库,不是私有的 web app。您可以在本地部署 Streamlit app不需要提前联系我们。你甚至可以在没有互联网连接的情况下在笔记本电脑上本地运行它 Streamlit。此外,还可以增量地使用现有项目 Streamlit。

递进用法递进用法 Streamlit 在几个方面。有几种方式。有几种方法可以做到这一点。

以上只是 Streamlit 这项功能只是冰山一角。它最令人兴奋的事情之一是,这些原始语言可以很容易地组成复杂的 app这是一个简单的脚本,但它看起来像一个简单的脚本。这涉及到体系结构的操作原则和功能,本文将不对此进行讨论。

Streamlit 组件插图。组件图。组件插图。

我们很高兴与社区分享我们很高兴与社区分享我们很高兴与我们的社区分享 Streamlit我希望它能帮你轻松放好我希望它能帮你轻松放好我希望它能帮你轻松放好 Python 将脚本转化为美观实用的机器学习 app。

如果这篇文章对您有帮助,请不要吝啬您的赞扬,谢谢!

推荐阅读:
入门: 最完整的零基学习最全面的零基学习最完整的零基学习Python的问题  | 从零开始学习从零基础学习从零基础学习8个月的Python  | 实战项目 |学Python这是捷径这是捷径就是这条捷径
干货:爬行豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析最佳球员分析 |   从万众期待到口碑惨败!唐探3令人失望  | 笑新伊田图龙记笑新伊田图龙记笑新伊田图龙记 | 谜语之王回答灯谜之王灯谜之王谜语之王 |用Python人山人海素描图人山人海素描图人山人海 Dishonor太火了,我用机器学习做了一个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python日常酷跑游戏日常酷跑游戏日常酷跑游戏!
AI: 会写诗的机器人会写诗的机器人会写诗的机器人 | 给图片上色给图片上色给图片上色 | 预测收入 | 《耻辱》太火了,我用机器学习做了一部迷你推荐系统电影
小工具: Pdf转Word易于修复表单和水印!易于处理的表单和水印!轻松修复桌子和水印!易于修复的形式和水印! | 一键把html将页面另存为网页另存为网页另存为pdf!|  再见PDF提款费!提款费!提款费!提款费用! | 用90构建最强大的代码行构建最强大的代码行构建最强大的代码行PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一个固定的低成本机票提醒!制作一张别针的低价机票提醒! |60代码行做了一个语音墙纸切换,天天见女士!

年度弹出文案年度弹出文案年度爆炸性文案

  • 1). 卧槽!Pdf转Word用Python轻松搞定 !

  • 2).学Python闻起来好香!我用100一行代码做了一个网站,帮助人们做了一行代码,做了一个网站,帮助了人们做了一行代码,帮助了人们PS旅行图片赚鸡腿吃旅行图片赚鸡腿

  • 3).第一次播放量过亿,火爆全网,我分析了《顺风车妹妹》,发现了这些秘密

  • 4). 80一行行代码!使用Python让救济金做正确的事做做的人做好事的人A梦分身

  • 5).你必须掌握的东西你必须掌握20个python代码,简短而紧凑,永无止境的有用代码,简短而甜蜜,永无止境的有用的代码,简短而紧凑,永无止境的使用代码,简短而甜蜜,永无止境的用途

  • 6). 30个Python古怪技能集古怪小贴士收藏古怪技能集

  • 7). 我总结的80《菜鸟学习专页》《菜鸟学习专页》《菜鸟学习》Python精选干货.pdf》,都是干货

  • 8). 再见Python!我要学Go了!2500词深度分析词深度分析词深度分析 !

  • 9).发现一只舔狗的福利!这Python爬虫神器太酷了,不能自动下载女孩的照片

点击阅读原文点击查看点击点击阅读点击阅读原文点击查看B站我的20个视频!

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门