streamlit搭建ML前端demo

0 引入

很多算法工程師在完成數據分析、模型訓練或者項目總結的時候,往往只能通過ppt匯報,添加數據圖表、截圖模型實驗結果等。如果想提供一個前端演示demo,通常可以搭建flask服務,但是flask需要學習很多前端知識,如css、html等,這又是一個深之又深的坑。那有沒有什么工具能夠跳過這些模塊,直接提供一個可用的前端頁面呢?答案是肯定的,今天給大家推薦一個輕量化、簡單好用、快速上手的streamlit。

1 streamlit

1.1 什么是streamlit?

streamlit 是2019年開源的python庫,在GitHub上已經超過了17k的stars了。AI算法工程師利用streamlit可以快速構建機器學習應用和高級數據分析可視化的用戶界面。更多內容和介紹可以參考streamlit的官方幫助文檔

1.2 快速上手

pip安裝

pip install streamlit

安裝好以后,執行如下命令,可以運行內置演示界面hello

streamlit hello

如果你想停止運行,可以隨時在命令行里使用Ctrl+C終止應用。

然后可以創建自己的python腳本app.py

import streamlit as st
st.title("Streamlit Demo")
st.write("Hello Word!")

在python腳本的目錄下,在終端中啟動服務。

streamlit run app.py

執行后會在8501端口啟動服務,如果啟動成功則顯示如下URL。


啟動截圖

本地瀏覽器打開該URL,則為剛剛創建的前端頁面


前端頁面

1.3復雜功能

1.3.1支持markdown語法

可以把平時寫markdown的習慣保留下來,用到前端頁面排版上去。

st.markdown("""
## 代碼片段
import streamlit as st
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.line_chart(data)
""")

前端輸出結果:

markdown示例

1.3.2 數據展示

import streamlit as st
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.write(data.head(10))

前端輸出結果:

表格示例圖

1.3.3 自帶畫圖

import streamlit as st
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.line_chart(data)

前端輸出結果:

畫圖示例

streamlit支持的所有圖類型如下:

  • 折線圖 line_chart
  • 條形圖 bar_chart
  • 面積圖 area_chart

1.3.4 Matplotlib

matplotlib大家應該不陌生,這是python常用的畫圖工具。streamlit也支持該畫圖結果的展示。

import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])

st.title("matplotlib")
st.subheader("histogram")
fig_mp, ax_mpl = plt.subplots()
ax_mp = plt.hist(data)
plt.xlabel("x")
plt.ylabel("y")
st.pyplot(fig_mp)

前端輸出結果:

matplotlib示意圖

1.3.5 Plotly

import streamlit as st
import numpy as np
import pandas as pd
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
import plotly.express as px

st.title("plotly")
st.subheader("histogram")
fig = px.histogram(data)
st.plotly_chart(fig)

前端輸出結果:

plotly示意圖

2 總結

本文主要介紹了一種適合AI工程師們開箱即用的開源前端展示工具——streamlit。介紹了streamlit的安裝、運行和幾種圖表。

3 參考文獻

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容