本文将介绍一种专门针对机器学习工程师的应用程序框架——Streamlit。
在实际工作中,每个机器学习项目最终都会遇到各种问题,尤其是那些由Jupyter Notebook和Flask应用拼凑而成的工具,这些工具难以维护,且部署起来非常麻烦。这些工具通常包含传感器校准工具、模拟比较应用、激光雷达对准工具和场景回放工具等。随着项目的进展,这些工具的需求越来越多,最终导致维护变得困难重重。
为了应对这种情况,需要建立专门的工具团队,他们能够编写高质量的Vue和React代码。然而,这些团队往往有多个项目需要处理,导致工具更新周期较长。因此,我们需要一种更简便的方式来构建工具,使机器学习工程师能够独立创建高质量的应用程序,而无需依赖工具团队。
于是,我们开始探索如何让构建工具像编写Python脚本一样简单。我们希望机器学习工程师能够在不依赖工具团队的情况下,快速创建出优秀的应用程序。这些工具应该是机器学习工作流程的自然延伸。我们希望通过简化工具构建过程,使创建的工具既美观又高效,同时具备高度的灵活性。
经过一年的努力,我们开发出了Streamlit,这是一个面向机器学习工程师的完全免费的开源应用框架。Streamlit的核心理念是简化工具构建过程,使其更加直观和易用。
以下是Streamlit的几个核心特点:
包含Python脚本:Streamlit应用程序实际上就是一个自上而下运行的Python脚本,没有任何隐藏的结构。可以通过函数调用来分解代码。例如,可以输入以下代码:
python
import streamlit as st
st.write('Hello, world!')
将微件视为变量:Streamlit中没有回调函数!每个交互只是自上而下重新运行脚本。这种方法产生的代码非常简洁:
python
import streamlit as st
x = st.slider('x')
st.write(x, '的平方是', x * x)
重用数据和计算:如果下载了大量数据或执行了复杂的计算怎么办?Streamlit引入了一个缓存机制,可以安全地重用信息。例如,这段代码只会从特定的URL下载一次数据,从而生成一个简单快速的应用程序: ```python import streamlit as st import pandas as pd
@st.cache def readandcachecsv(url): return pd.readcsv(url, nrows=1000)
BUCKET = "https://streamlit-self-driving.s3-us-west-2.amazonaws.com/" data = readandcachecsv(BUCKET + "labels.csv.gz") desiredlabel = st.selectbox('筛选:', ['car', 'truck']) st.write(data[data.label == desired_label]) ```
Streamlit的工作原理如下: 1. 每次用户交互都会从头开始重新运行整个脚本。 2. Streamlit为每个变量配置最新的微件值。 3. 缓存机制允许Streamlit跳过冗余的数据提取和计算步骤。
总之,Streamlit使得机器学习工程师可以轻松地创建高效、美观且易于维护的应用程序。例如,一个300行的Streamlit应用可以实现语义视觉搜索和交互式神经网络推理。只需运行以下命令即可体验Streamlit:
sh
$ pip install --upgrade streamlit
$ streamlit hello
Streamlit的应用程序是纯Python文件,可以与Git和其他源代码管理系统协同工作。此外,Streamlit提供了实时编码环境,使得开发过程更加流畅。例如,可以使用缓存简化计算流程,提高应用程序性能。
Streamlit是一个开源库,可以自由使用,无需联系开发者。它可以运行在任何支持Python的环境中,包括没有互联网连接的笔记本电脑。总之,Streamlit为机器学习工程师提供了一个强大且灵活的工具,能够简化工具构建过程,提升工作效率。
希望以上内容对你有所帮助,欢迎点赞、关注,共同分享AI学习与发展的经验。如需转载,请后台留言,遵守转载规范。