30行代码用streamlit构建你的机器学习模型应用

Streamlit 讲解专栏(十二):数据可视化-图表绘制详解(下) 介绍Streamlit库在数据可视化中的应用及函数使用方法。强调数据可视化重要性,介绍Streamlit构建交互式数据应用优势。详解函数的使用及参数:st.vega_lite_chart、st.plotly_chart、st.bokeh_chart、st.pydeck_chart、st.graphviz_chart和st.map,创建各种图表、地图和网络图,实现丰富交互。总结Streamlit的便捷灵活性,并提供进一步学习资源。Streamlit有效探索和传达数据见解,提升可视化能力。 阅读详情

Streamlit是一个快速构建数据分析和机器学习Web页面的开源Python库。

英文说明:A faster way to build and share data apps

先看一个极简的效果,将一个文本情感分类的模型部署在了HuggingFace的Space托管页面了。

效果如下

ff310530b998588aab90f2000e4786ae.jpeg

大家猜猜做出这个效果需要多少个行代码?100行? 300行?No,全部代码仅需10行,如下所示。

import streamlit as st
from transformers import pipeline

st.title('Text Classification')
pipe = pipeline("text-classification")
text = st.text_area("Enter some text:")

if text:
    out = pipe(text)
    st.json(out)

这个项目部署在了huggingface的space页面中了,可以在网址中进行交互测试。

公众号后台回复关键词: streamlit ,获取本文源代码 和 HuggingFace部署的TextClassification和FasterRCNN演示项目地址。

# 安装
#!pip install streamlit -i https://pypi.tuna.tsinghua.edu.cn/simple

#备注,需要python3.7及以上版本。

# 环境测试
#streamlit hello

一,HelloWorld范例

%%writefile demo.py
import streamlit as st 
st.write("hello world")
!streamlit run demo.py --server.port=8085
f5247ad8c6355650675ba3566b362fb3.jpeg

二,MarkDown范例

支持常用的markdown展示

  • st.markdown: 按照markdown语法呈现内容

  • st.header

  • st.subheader

  • st.code

  • st.caption: 注释说明

  • st.text

  • st.latex

%%writefile demo.py
import streamlit as st

# markdown

st.title('streamlit极简教程')

st.markdown('### 一. 安装')

st.text('和安装其他包一样,安装 streamlit 非常简单,一条命令即可')
code1 = '''pip install streamlit'''
st.code(code1, language='bash')
st.caption("需要python3.7以及以上环境")


st.markdown('### 二. 使用')


st.markdown('#### 1 生成 Markdown 文档')

code2 = '''import streamlit as st
st.markdown('Streamlit Demo')
st.header('标题')
st.text('普通文本')
'''
st.code(code2, language='python')


st.markdown('#### 2 生成 图表')

code3 = '''import streamlit as st
import pandas as pd 
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])
st.line_chart(chart_data)'''
st.code(code2, language='python')


st.markdown('### 三. 运行')

code4 = '''streamlit run demo.py'''
st.code(code4, language='bash')
!streamlit run demo.py --server.port=8085
c64fd1116d819d3fa77e7857c440b9c0.jpeg

三,图表范例

支持以下图表展示:

  • st.table

  • st.dataframe

  • st.metric

  • st.json

  • st.line_chart

  • st.bar_chart

  • st.area_chart

  • st.map_chart

  • st.pyplot : matplotlib 的 figure

  • st.plotly_chart: plotly 的 figure

and more

%%writefile demo.py
import streamlit as st
import numpy as np 
import pandas as pd 
import plotly.express as px 


st.title('streamlit图表范例')

st.header("一,Table/DataFrame示范")

df = pd.DataFrame(
    np.random.randn(10, 5),
    columns=('第%d列' % (i+1) for i in range(5))
)

#st.table(df)
st.dataframe(df.style.highlight_max(axis=0))


st.header("二,metric监控指标")
col1, col2, col3 = st.columns(3)
col1.metric("Temperature", "70 °F", "1.2 °F")
col2.metric("Wind", "9 mph", "-8%")
col3.metric("Humidity", "86%", "4%")



st.header("三,内置图表")

st.subheader("1,折线图")

chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])

st.line_chart(chart_data)


st.subheader("2,面积图")

chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns = ['a', 'b', 'c'])

st.area_chart(chart_data)

st.subheader("3,柱形图")

chart_data = pd.DataFrame(
    np.random.randn(50, 3),
    columns = ["a", "b", "c"])
st.bar_chart(chart_data)

st.subheader("4,地图")

chart_data = pd.DataFrame(
    np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
    columns=['lat', 'lon']
)
st.map(chart_data)


st.header("四,plotly图表")

fig = px.line(data_frame=px.data.stocks(),x="date",y=["GOOG","AAPL","AMZN","FB"]) 

st.plotly_chart(fig)
!streamlit run demo.py --server.port=8085

9c0dfa6438a271645c6fdc927fc40533.jpeg7bbbd79061f97c6db87be02007271680.jpega0ab7d182c8ba29dbe214e4e23146199.jpegcb45c9e0095550c9043ec119b5693c7d.jpeg30936ec81c62677b9ae1afd6ccc87d15.jpeg1f6880842ed79e7defa17e9ac7c489e2.jpeg

四,控件范例

streamlit支持非常丰富的交互式输入控件。

值得注意的是,当改变任何一个输入时,整个网页会重新计算和渲染。

  • button:按钮

  • download_button:文件下载

  • file_uploader:文件上传

  • checkbox:复选框

  • radio:单选框

  • selectbox:下拉单选框

  • multiselect:下拉多选框

  • slider:滑动条

  • select_slider:选择条

  • text_input:文本输入框

  • text_area:文本输入区域

  • number_input:数字输入框,支持加减按钮

  • date_input:日期选择框

  • time_input:时间选择框

  • color_picker:颜色选择器

下面分别演示一些较高频的控件

  • 1, button

  • 2, selectbox

  • 3, number_input

  • 4, slider

  • 5, text_input

  • 6, text_area

  • 7, download_button

  • 8, file_uploader

%%writefile demo.py
import streamlit as st 
import plotly.express as px 
import time
import pandas as pd 

st.title('streamlit控件范例')

st.header("1,button")

#button常用于启动一段费时代码的执行
if st.button("Start count sheep"):
    msg = st.empty() #st.empty可以作为占位符
    for i in range(1,11):
        msg.write("{} sheep...".format(i))
        time.sleep(0.3)
else:
    pass #st.stop

st.header("2,selectbox") 

stock = st.selectbox(label = "Choose a stock",options=["GOOG","AAPL","AMZN","FB"])

st.write('You selected:', stock)

fig = px.line(data_frame=px.data.stocks(),x="date",y=[stock]) 

st.plotly_chart(fig)

st.header("3,number_input") 

st.write("input x and y to eval x+y:")
x = st.number_input("x",min_value=-10000,max_value=10000)
y = st.number_input("y",min_value=0,max_value=8)
st.write('x+y=', x+y)


st.header("4,slider") 

st.write("slide to choose your age:")
age = st.slider(label="age",min_value=0,max_value=120)

st.write('your age is ', age)


st.header("5,text_input") 

st.write("what's your name")
name = st.text_input(label="name",max_chars=100)
st.write("your name is ",name)

st.header("6,text_area") 

st.write("give an introduction of  yourself")
name = st.text_area(label="introduction",max_chars=1024)


st.header("7,download_button") 

@st.cache
def save_csv():
    # IMPORTANT: Cache the conversion to prevent computation on every rerun
    df = px.data.stocks()
    return df.to_csv().encode('utf-8')

csv = save_csv()

st.download_button(
     label="Download stock data",
     data=csv,
     file_name='stocks.csv',
     mime='text/csv',
 )

st.header("8,file_uploader")  

csv_file = st.file_uploader("Choose a csv file")

if csv_file is not None:
    try:
        dfstocks = pd.read_csv(csv_file)
        st.table(dfstocks)
    except Exception as err:
        st.write(err)
        
image_file = st.file_uploader("choose a image file(jpg/png)")
if image_file is not None:
    try:
        st.image(image_file)
    except Exception as err:
        st.write(err)
!streamlit run demo.py --server.port=8085

44838246293a1a85eb04ddd0f3351702.jpegeac684044cae85d14f70ee861079137d.jpeg310ab837e1bb4db717d90752b3e58015.jpegd71f266e5443974184483c9667241255.jpegaa9ca1bc680c42fe2ab3c0e698de409a.jpeg

五,布局范例

Streamlit 是自上而下渲染的,组件在页面上的排列顺序与代码的执行顺序一致。

可以应用如下布局组件实现非自上而下的布局。

  • st.sidebar:侧边栏

  • st.columns:列布局

  • st.expander:隐藏

  • st.empty:占位符,可以后续更新其中内容。

  • st.container: 容器占位符,可以后续往其中添加内容。

%%writefile demo.py
import streamlit as st 
import time
import pandas as pd 

st.title('streamlit布局范例')

st.header("1,sidebar")
st.text("see the left side")
with st.sidebar:
    st.subheader("配置参数")
    optim = st.multiselect(label = "optimizer:",options = ["SGD","Adam","AdamW"])
    lr = st.slider(label="lr:",min_value=1e-5,max_value=0.1)
    early_stopping = st.checkbox(label = "early_stopping",value=True)
    batch_size = st.number_input(label = "batch_size",min_value=1,max_value=64)


st.header("2,columns")
col1, col2, col3 = st.columns(3)
col1.metric("accuracy", "0.82", "+32%")
col2.metric("AUC", "0.89", "-8%")
col3.metric("recall", "0.92", "+4%")

st.header("3,expander")
st.line_chart(data = [1,1,2,3,5,8,13,21,33,54])
with st.expander(label="see explanation"):
    st.text("This is the Fibonacci sequence")
    st.text("You can see more about it in below link")
    st.markdown("[](https://baike.baidu.com/item/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97/99145?fr=aladdin)")

st.header("4,empty")
#st.empty可以作为占位符
if st.button("Start count sheep"):
    msg = st.empty() #st.empty可以作为占位符
    for i in range(1,11):
        msg.write("{} sheep...".format(i))
        time.sleep(0.3)
else:
    pass #st.stop
    
    
st.header("5,container")

container = st.container()
container.write("1:This should in container")
st.write("2:This should out  container")
container.write("3:This should in container too")
container.bar_chart(data = [1,1,2,3,5,8,13,21,33,54])
!streamlit run demo.py --server.port=8085

9d91118842f9de8e130a5da6bce6d860.jpeg005a825701a3539a800c932dc7b41135.jpeg618ce63876dd00d376398fe2392b8283.jpeg

六,状态范例

Streamlit支持如下状态范例。

  • st.progress:进度条,如游戏加载进度

  • st.spinner:等待提示

  • st.info:显示常规信息

  • st.warning:显示报警信息

  • st.success:显示成功信息

  • st.error:显示错误信息

  • st.exception:显示异常信息

  • st.balloons:页面底部飘气球,表示庆祝

  • st.snow: 页面飘雪,表示庆祝

%%writefile demo.py
import streamlit as st 
import time


if st.button("Start count sheep"):
    with st.spinner('Wait for it...'):
        bar = st.progress(0)
        msg = st.empty() #st.empty可以作为占位符
        max_num = 20
        for i in range(1,max_num+1):
            msg.write("{} sheep...".format(i))
            time.sleep(0.3)
            bar.progress((i*100)//max_num)
    time.sleep(1)
    st.success("You count 20 sheep! congratulations")
    st.balloons()
    time.sleep(1)
    st.snow()
else:
    pass
!streamlit run demo.py --server.port=8085
91f84b607ccd10f81bd3415eb10d2719.jpeg

七,综合范例

下面示范一个用streamlit实现一个FasterRCNN的网页交互APP范例。

%%writefile demo.py
import numpy as np
from PIL import Image,ImageColor,ImageDraw,ImageFont 
import torch
from torch import nn

import torchvision
from torchvision import datasets, models, transforms

import streamlit as st 

# 可视化函数
def plot_detection(image,prediction,idx2names,min_score = 0.8):
    image_result = image.copy()
    boxes,labels,scores = prediction['boxes'],prediction['labels'],prediction['scores']
    draw = ImageDraw.Draw(image_result) 
    for idx in range(boxes.shape[0]):
        if scores[idx] >= min_score:
            x1, y1, x2, y2 = boxes[idx][0], boxes[idx][1], boxes[idx][2], boxes[idx][3]
            name = idx2names.get(str(labels[idx].item()))
            score = scores[idx]
            draw.rectangle((x1,y1,x2,y2), fill=None, outline ='lawngreen',width = 2)
            draw.text((x1,y1),name+":\n"+str(round(score.item(),2)),fill="red")
    return image_result 


# 加载模型
@st.cache()
def load_model():
    num_classes = 91
    model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True,num_classes = num_classes)
    if torch.cuda.is_available():
        model.to("cuda:0")
    model.eval()
    model.idx2names = {'0': 'background', '1': 'person', '2': 'bicycle', '3': 'car', 
       '4': 'motorcycle', '5': 'airplane', '6': 'bus', '7': 'train', '8': 'truck', '9': 'boat', 
       '10': 'traffic light', '11': 'fire hydrant', '13': 'stop sign', 
       '14': 'parking meter', '15': 'bench', '16': 'bird', '17': 'cat',
       '18': 'dog', '19': 'horse', '20': 'sheep', '21': 'cow', '22': 'elephant', 
       '23': 'bear', '24': 'zebra', '25': 'giraffe', '27': 'backpack', 
       '28': 'umbrella', '31': 'handbag', '32': 'tie', '33': 'suitcase',
       '34': 'frisbee', '35': 'skis', '36': 'snowboard', '37': 'sports ball',
       '38': 'kite','39': 'baseball bat', '40': 'baseball glove', '41': 'skateboard',
       '42': 'surfboard', '43': 'tennis racket', '44': 'bottle', '46': 'wine glass', 
       '47': 'cup', '48': 'fork', '49': 'knife', '50': 'spoon', '51': 'bowl',
       '52': 'banana', '53': 'apple', '54': 'sandwich', '55': 'orange', 
       '56': 'broccoli', '57': 'carrot', '58': 'hot dog', '59': 'pizza',
       '60': 'donut', '61': 'cake', '62': 'chair', '63': 'couch', 
       '64': 'potted plant', '65': 'bed', '67': 'dining table',
       '70': 'toilet', '72': 'tv', '73': 'laptop', '74': 'mouse', 
       '75': 'remote', '76': 'keyboard', '77': 'cell phone', 
       '78': 'microwave', '79': 'oven', '80': 'toaster', 
       '81': 'sink', '82': 'refrigerator', '84': 'book',
       '85': 'clock', '86': 'vase', '87': 'scissors',
       '88': 'teddybear', '89': 'hair drier', '90': 'toothbrush'}
    return model 

def predict_detection(model,image_path,min_score=0.8):
    # 准备数据
    inputs = []
    img = Image.open(image_path).convert("RGB")
    img_tensor = torch.from_numpy(np.array(img)/255.).permute(2,0,1).float()
    if torch.cuda.is_available():
        img_tensor = img_tensor.cuda()
    inputs.append(img_tensor)    

    # 预测结果
    with torch.no_grad():
        predictions = model(inputs)

    # 结果可视化
    img_result = plot_detection(img,predictions[0],
        model.idx2names,min_score = min_score)
    return img_result
    
st.title("FasterRCNN功能演示")

st.header("FasterRCNN Input:")
image_file = st.file_uploader("upload a image file(jpg/png) to predict:")
if image_file is not None:
    try:
        st.image(image_file)
    except Exception as err:
        st.write(err)
else:
    image_file = "horseman.png"
    st.image(image_file)
    
min_score = st.slider(label="choose the min_score parameter:",min_value=0.1,max_value=0.98,value=0.8)

st.header("FasterRCNN Prediction:")
with st.spinner('waitting for prediction...'):
    model = load_model()
    img_result = predict_detection(model,image_file,min_score=min_score)
    st.image(img_result)

50caa365ca4f6b389365a01efe57f5af.jpeg1c4aacbc30fbc9d0d87dc72799948f1c.jpeg

八,部署到HuggingFace

为了便于向合作伙伴展示我们的模型App,可以将stremlit的模型部署到 HuggingFace的 Space托管空间中,完全免费的哦。

方法如下:

1,注册huggingface账号:https://huggingface.co/join

2,在space空间中创建项目:https://huggingface.co/spaces

7bfac31557e0ea127f4ec0833ed6b961.jpegf4dda1779feaf62fa86e6f39479015ed.jpeg

3,创建好的项目有一个Readme文档,根据说明操作即可。

8fe9c7729562a82f5ea413d2c2c6d211.jpeg

以上。

公众号后台回复关键词:streamlit,获取本文源代码 和 HuggingFace部署的TextClassification和FasterRCNN演示项目地址。

0dc8b64a81764d971b2a0d83a1f095f2.png

【Python】Streamlit:为数据科学与机器学习打造的简易应用框架 Streamlit 是一个开源的 Python 库,专为数据科学家和机器学习开发者设计,旨在快速构建数据应用。通过简单的 Python 脚本,开发者无需掌握前端技术,即可将数据分析和模型结果转化为直观、交互式的 Web 应用。其简洁的 API 设计使得开发过程快速且高效,是展示数据分析、构建仪表盘、分享机器学习模型的理想选择。 阅读详情

相关推荐

Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践

在Streamlit官方文档中,没有提供提供安全身份验证组件。本文介绍第三方streamlit-authenticator提供Hashing密码加密、登录窗口认证用户、登出,并进行的实践演示。。

肖永威的专栏 1万+

一个傻瓜式构建可视化 web的 Python 神器 ——streamlit

正值金三银四招聘旺季,很多小伙伴都询问我有没有前端方面的面试题,特地整理出来赠送给大家!资料领取方式:点击这里前往获取待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

weixin_42179304的博客 1530

Streamlit机器学习部署:5分钟把模型变网页应用

机器学习模型部署本质是将算法逻辑转化为用户可交互的界面,其核心原理在于解耦计算与呈现——Streamlit通过‘脚本即UI’范式,将Python代码自动编译为响应式Web组件,省去路由配置、模板渲染和HTTP协议处理等传统Web开发环节。这种轻量级封装显著降低工程门槛,使数据科学家能聚焦模型价值本身,而非基础设施运维。技术价值体现在极简代码量(60行内完成表单+预测)、零配置本地服务及一键云端发布能力。典型应用场景包括教学演示、内部评审、个人作品集与快速原型验证。本文以红酒白酒分类模型为例,详解如何用Str

dieqiao8331的博客 380

Streamlit 使用介绍

通常不需要设置参数。如果你需要调整对象显示的顺序,就可以先设置一个容器,然后将渲染后的内容写入容器里。如果是序列,例如[3,2,1],则将该行分为三列,各列的宽度分别为最大宽度的3/6、2/6、1/6。st.empty也是一个占位容器,不同的是,st.empty只接收“一个”对象的写入,再次写入会覆盖此前的内容。st.form也是一个容器,用法与st.container类似,可以用with语句,也可以链式调用。注意,在st.form中,只有st.form_submit_button允许有回调函数。

啸风 7592

Streamlit+FastAPI构建机器学习应用的小时级交付实践

机器学习应用开发常面临模型可用但无法落地的困境,核心在于缺乏轻量、可交互、易部署的工程化路径。本文围绕‘最小可行界面(MVP UI)’这一基础概念,解析如何利用Streamlit实现声明式前端开发与状态简化,结合FastAPI提供生产级API能力,形成双模协同架构。技术价值体现在跳过传统Web框架的基建负担,复用Python生态模型逻辑,支持CPU友好型推理与实时交互反馈。典型应用场景包括内部POC验证、业务方快速试用、SaaS功能插件集成及智能硬件配套工具链。文中重点融入Streamlit热重载机制与Fa

weixin_33709219的博客 479

使用 Streamlit 库部署机器学习模型

它还支持热重载,以便您的应用程序可以在您编辑和保存文件时实时更新。机器学习是目前最值得进入的领域之一,世界各地的顶级公司都在使用它来改进他们的服务和产品。因此,我们需要部署这些模型,以便每个人都可以使用它们。在本文中,我们将首先训练一个鸢尾花物种分类器,然后使用 Streamlit 部署模型,Streamlit 是一个开源应用程序框架,用于轻松部署 ML 模型。因此,首先我们将训练我们的模型。我们不会做太多的预处理,因为本文的主要目的不是制作一个准确的 ML 模型,而是展示它的部署。

jianqimingtian的博客 548

用Python开发web应用—Streamlit框架解析:组件

Streamlit的组件Components是一系列第三方的Python模块,其极大地扩展了Streamlit的功能。 Components带来了无穷的想象力和可能性,比如与React、Vue等前端框架联动、创建自定义风格和行为的新部件、以及增加新的可视化图表类型等。 使用组件 查找可用组件 查找组件有两个常用的途径: Component Gallery,这是官方挑选出来的特色组件; 安装组件 安装这些组件,只需: pip install some_cool_component 以..

m0_59485658的博客 6133

Streamlit机器学习部署:从模型到可交互网页的零门槛实践

机器学习模型训练完成只是第一步,真正价值在于被用户使用——这需要将算法能力转化为直观、可靠、可访问的交互界面。Streamlit以Python函数为原语,通过声明式UI组件(如st.text_input、st.button)重构Web交付逻辑,绕过HTML/JS/CSS和传统MVC架构,实现‘写代码即建网页’。其重绘模型天然适配无状态预测函数,内置状态管理与主流数据科学栈(scikit-learn、PyTorch、Pandas、Matplotlib)无缝兼容,显著降低部署门槛。适用于教学演示、内部工具、客户

图灵教育官方博客 427

Streamlit: 快速构建数据应用的革命性工具

在当今数据驱动的世界中,能够快速构建和分享数据应用变得越来越重要。Streamlit应运而生,它是一个开源的Python框架,旨在彻底改变数据科学家和AI/ML工程师构建交互式数据应用的方式。本文将深入探讨Streamlit的特点、优势以及它如何revolutionize数据应用开发流程。Streamlit正在改变数据科学家和开发者构建和分享数据应用的方式。它的简单性、灵活性和强大功能使其成为数据驱动决策时代的重要工具。

Nifc666的博客 1154

Streamlit+OpenAI+Comet ML构建可追踪AI对话系统

AI对话系统开发中,'能跑通'不等于'可交付'——可观测性、可复现性与协作可解释性才是工程落地的核心挑战。基于Streamlit的声明式交互协议、OpenAI API的抽象化能力封装,以及Comet ML提供的结构化实验追踪能力,三者协同构成轻量级MLOps实践范式:它将每次用户会话转化为带元数据、指标、代码快照和错误上下文的原子化实验单元,天然支持性能归因、模型行为对比与跨角色协同分析。该方案特别适用于从Notebook原型迈向团队协作部署的AI应用工程师,以及需量化评估LLM服务稳定性的数据科学家,已在

weixin_30642561的博客 540

python web应用开发神器 入门四

st.write 能够在 Streamlit 应用中输出文字等内容。除了能够输出文字,st.write() 命令还能够输出…

zhangzhechun的专栏 466

使用Streamlit部署机器学习模型

计算机能够从经验中学习,而无需明确编程。机器学习是目前最热门的领域之一,世界各地的顶级公司都在使用它来改善他们的服务和产品。但是没有使用在Jupyter Notebook中训练的机器学习模型。因此,我们需要部署这些模型,以便每个人都可以使用它们。在本文中,我们将首先训练Iris Species分类器,然后使用Streamlit部署模型,Streamlit是一个开源应用程序框架,用于轻松部署ML模型。Streamlit允许您使用简单的Python脚本为机器学习项目创建应用程序。

python收藏家的博客 718

机器学习(四十六):Streamlit 构建机器学习 Web

Streamlit 构建机器学习 Web

全栈川川 2819

Streamlit:快速构建数据应用的 Python 框架

摘要: Streamlit 是一个开源的 Python 框架,专为快速构建交互式数据应用而设计。它允许数据科学家无需前端知识,仅用 Python 代码就能创建 Web 应用,支持实时预览和丰富的数据可视化组件。

weixin_45809780的博客 820

星座SAR动目标检测(GMTI)

参考代码 星座SAR动目标检测 www.youwenfan.com/contentcsg/52399.html。

feifeigo123的博客 550

华为手环实时心率数据导出到UWP项目中

hello大家好呀O(∩_∩)O最近在做毕设 其中有个小功能要用到实时心率数据。查找网上的资料发现只有小米手环的实时心率数据导出但是没有华为手环的,我试了华为手环但是并不能行得通哈哈哈。现在分享一下华为手环实时心率数据导出的代码。

apple_63713858的博客 1583

用户验证:Streamlit应用程序与Streamlit-Authenticator

Streamlit是一种开源的Python库,它允许开发者快速构建数据科学和机器学习Web应用程序。然而,随着应用程序的普及和用户数量的增加,如何确保只有经过身份验证的用户才能访问应用程序变得尤为重要。这就需要一个强大而可靠的身份验证机制。这个示例仅用于演示目的,并没有包含任何错误处理或更复杂的身份验证逻辑。在实际应用中,你可能需要处理各种边缘情况,并使用更安全的方式来管理和验证用户的身份。此外,你还可以考虑集成更复杂的权限管理系统,以控制不同用户对应用程序的不同部分的访问权限。

颜淡慕潇 2万+

[WeChatMsg]导出csv格式微信聊天记录的手把手教程

手把手教大家如何导出自己的聊天记录得到csv文件,即使是电脑小白也可以轻松学会o(* ̄▽ ̄*)ブ

weixin_51094633的博客 1万+

机器学习 对模型进行惩罚_使用Streamlit对机器学习模型进行原型制作

机器学习 对模型进行惩罚GitHub Repo: ml-streamlit-demo GitHub存储库: ml-streamlit-demo Bringing a Machine Learning model outside of a notebook environment and turning it into a beautiful data product used to be a l...

weixin_26752765的博客 737

doris2.1.8连接报错ERROR 1203 (42000): Reach limit of connections解决办法

摘要:客户Doris数据库报错"ERROR 1203 (42000): Reach limit of connections"的解决过程。发现AI提供的解决方案存在错误:1)查询命令应为SHOW FRONTEND CONFIG而非show variables;2)参数名称应为qe_max_connection而非max_connections。正确解决步骤:1)用admin账户登录查看连接数限制和当前连接数;2)通过SHOW PROPERTY命令检查用户资源限制;3)针对不同情况修改参数

Brent的专栏 1762

YOLOv13+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv13与SAHI(切片辅助超推理)技术,在VisDrone2019数据集上实现高效的无人机航拍小目标检测。通过5个实战步骤,包括环境配置、SAHI参数解析、数据集调优、完整训练推理流程和性能优化技巧,帮助开发者显著提升小目标检测的准确率和效率。

egg99的博客 432
上一篇: CatBoost的Java端推理
下一篇: 深度学习里面,请问有写train函数的模板吗?
算法美食屋
博客等级 码龄9年 2万+粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值