Streamlit 是基于 Python 的 Web 应用程序框架,可视化数据,分析结果。
Streamlit 是一个开源库,可在短时间内开发机器学习可视化仪表板。只需几行代码就可以构部署强大的数据应用程序。Streamlit 可将仪表板的开发时间从几天缩短至几小时。
第一个程序,在终端中运行streamlit run demo_01.py
import streamlit as st st.write('Hello, world!')
将微件视为变量:
Streamlit 没有回调函数,每个交互只能自上而下重新运行脚本,这样产生了真正整洁的代码。
x = st.slider('x') st.write(x, 'squared is', x * x)
重用数据和计算:
如果下载了大量数据或执行复杂计算,关键是在运行中安全地重用信息。Streamlit 引入了一个缓存原语,这是一个持久的,默认情况下不变的数据存储区,使Streamlit 安全地重用信息。
使用 st.cache 在 Streamlit 运行中持久化数据。
read_and_cache_csv = st.cache(pd.read_csv) BUCKET = "https://streamlit-self-driving.s3-us-west-2.amazonaws.com/" data = read_and_cache_csv(BUCKET + "labels.csv.gz", nrows=1000) desired_label = st.selectbox('Filter to:', ['car', 'truck']) st.write(data[data.label == desired_label])
Streamlit是这样工作的:
1. 为每个用户交互从头开始运行整个脚本。
2. Streamlit为每个变量配置指定微件状态的最新值。
3. 缓存允许Streamlit跳过冗余的数据提取和计算步骤。
Streamlit应用程序是纯Python文件,可以同时使用自己喜欢的编辑器和调试器。
Streamlit提供立即模式实时编码环境,只需在Streamlit检测到源文件更改时单击“始终重新运行”。
缓存简化了计算流程的设置,链接缓存函数会自动创建高效的计算流程:
@st.cache def load_metadata(): DATA_URL = "https://streamlit-self-driving.s3-us-west-2.amazonaws.com/labels.csv.gz" return pd.read_csv(DATA_URL, nrows=1000) @st.cache def create_summary(metadata, summary_type): one_hot_encoded = pd.get_dummies(metadata[["frame", "label"]], columns=["label"]) return getattr(one_hot_encoded.groupby(["frame"]), summary_type)()
# Piping one st.cache function into another forms a computation DAG. summary_type = st.selectbox("Type of summary:", ["sum", "any"]) metadata = load_metadata() summary = create_summary(metadata, summary_type) st.write('## Metadata', metadata, '## Summary', summary)
一般的程序是load_metadata→create_summary;每次运行脚本时,Streamlit只重新计算所需流程的任何子集,以获得准确信息。
Streamlit是为GPU构建的,允许直接访问机器原语(如TensorFlow和Pytorch),并对这些库进行补充。例如,Streamlit的缓存存储了所有英伟达名人的照片GAN,当用户更新滑块时,这种方法几乎可以即时进行推理。
参考: