会写 Py 脚本,就能开发机器学习工具
作者头像
  • 2019-10-06 15:29:30 1

Streamlit:简化机器学习应用开发

文 | Adrien Treuille
译 | 汇智网
推荐 | 编程派公众号(ID:codingpy)

Streamlit是一个专门为机器学习和数据分析团队设计的应用开发框架。它提供了一种快速构建自定义机器学习工具的方式,可以替代Flask在机器学习项目中的角色,帮助机器学习工程师快速开发用户交互工具。

1. Hello World

Streamlit应用本质上是Python脚本,可以使用函数调用进行重构。如果你会编写Python脚本,那么就可以开发Streamlit应用。例如,下面的代码会在网页上显示“Hello, world!”:

```python import streamlit as st

st.write('Hello, world!') ```

结果如下:

Hello World

2. 使用UI组件

Streamlit将组件视为变量,而不是回调函数。每个交互都会简单地返回结果,从而确保代码简洁:

```python import streamlit as st

x = st.slider('x') st.write(x, '的平方是', x * x) ```

结果如下:

UI组件示例

3. 数据重用和计算

当你需要下载大量数据或运行复杂计算时,如何处理?关键在于安全地重用数据。Streamlit引入了缓存机制,可以安全地重复使用信息。例如,下面的代码只会从Udacity的自动驾驶汽车项目中下载一次数据,从而实现简单而快速的应用:

```python import streamlit as st import pandas as pd

重复使用此数据

readandcachecsv = st.cache(pd.readcsv)

BUCKET = "https://streamlit-self-driving.s3-us-west-2.amazonaws.com/" data = readandcache_csv(BUCKET + "labels.csv.gz", nrows=1000)

desiredlabel = st.selectbox('筛选:', ['car', 'truck']) st.write(data[data.label == desiredlabel]) ```

结果如下:

数据重用示例

简而言之,Streamlit的工作原理如下:

  • 对于用户的每次交互,整个脚本会从头到尾执行一次。
  • Streamlit基于UI组件的形状给变量赋值。
  • 缓存机制使Streamlit能够避免重复请求数据或重复计算。

4. 实例:自动驾驶数据集工具

下面的Streamlit应用允许你在Udacity的自动驾驶汽车照片数据集中进行语义搜索、可视化人工标注,并实时运行YOLO目标检测器:

自动驾驶数据集工具

这个应用只有300行Python代码,其中大部分是机器学习代码。实际上,其中只有23个Streamlit调用。你可以尝试自己运行:

bash pip install --upgrade streamlit opencv-python streamlit run https://raw.githubusercontent.com/streamlit/demo-self-driving/master/app.py

原文链接:Turn Python Scripts into Beautiful ML Tools

回复下方关键词,获取优质资源:

  • 回复关键词「pybook03」,获取主页君与小伙伴共同翻译的《Think Python 2e》电子版。
  • 回复关键词「入门材料」,获取主页君整理的10本Python入门书籍电子版。
  • 回复关键词「book 数字」,将数字替换为0及以上数字,即可获得相应的礼物。
    本文来源:图灵汇
责任编辑: :
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
能开发脚本机器工具学习Py
    下一篇