streamlit实现DNN回归低代码页面

上篇文章简单的介绍了streamlit的用法,本文将实战DNN回归的用法,后面会更新深度学习的其他算法。

页面效果

本次主要是实现在本地启动一个网页,在页面中上传数据集,并选择自变量和标签值,设置各种超参数实现DNN回归算法,最后将Loss值展示出来。如下:
在这里插入图片描述
动态效果如下:
在这里插入图片描述

实现过程

2.1 主体代码

DNN主体代码实现我们在前面有过说明,跳转

这里不过多的讲解,只是为了后面方便扩展和部署,将代码进行了封装和分配。
格式如下:在这里插入图片描述
全部代码在GIt

2.2 streamlit代码讲解

启动网页的第一个页面是
在这里插入图片描述
一个上传数据的功能,这里目前仅支持csv,后面会做扩展

# 1、上传 文件
excel_file = st.file_uploader('上传CSV文件:', type='csv', key = "up_one")
if excel_file is not None:
    data = files_read_excel(excel_file)
    st.write("数据量: ", len(data))

st.file_uploader是用来上传文件的函数,type指定上传文件的类型,key可以认为是当前上传文件这个功能的一个ID,streamlit不允许同一类型的功能键重复,所以需要ID进行区分‘

如果同一功能出现多次会报错,大家可以自己试一下;所以在简单的页面上进行设置时,只设定不同的key值就可以了;但是如果在for循环中,就算设置了key也是不行的,还需要加上random函数这种才行,因为for循环运行时key还是会重复

上传完数据后需要选择自变量和标签值
在这里插入图片描述

col_options = [""] + list(data.columns)
selected_X = st.multiselect('请选择自变量字段:',col_options, key = "seld_two")
st.write(selected_X)
options_y = [item for item in col_options if item not in selected_X]
selected_y = st.selectbox(
        "请选择标签值", options_y, key = "seld_three"
    )

st.multiselect是多选框,第一个参数是展示的当前功能的说明文字,第二个参数是可选的内容,我们这里是将data的列全部写在这里,如下图;标签值的选择是将全部字段去除自变量后的内容,但是y值一般是单选的,所以使用st.selectbox。
在这里插入图片描述
在这里插入图片描述
变量选择完成后,页面将会展示模型训练的各种超参数:
在这里插入图片描述

 # Train ratio slider
    train_ratio = st.sidebar.slider('训练集比例', 0.1, 0.9, 0.8)

    # Batch size slider
    batch_size = st.sidebar.slider('批量大小', 1, 100, 32)

    # Learning rate slider
    learning_rate = st.sidebar.slider('学习率', 0.001, 0.1, 0.01)

    # Epochs slider
    epochs = st.sidebar.slider('Epochs', 10, 500, 100)

    # Hidden layers and neurons input
    num_hidden_layers = st.sidebar.slider('隐藏层层数', 1, 5, 2)

主要函数是st.sidebar.slider
sidebar是指将参数展示在左侧的边栏,因为是全局的参数所以在边栏更适合一点;去掉sidebar就是展示在中间的主区域。
st.sidebar.slider第一个参数是展示的功能说明文字;接下来是当前可选的最大值和最小值,最后一个参数是默认展示的值。

最后设置了一个按钮

 create_button = st.button("开始训练")

点击开始训练开始按照epochs进行训练,并把每一个epochs训练的loss动态在折线图上展现出来,这个原理跟上篇文章介绍是一样的
训练过程如下:
在这里插入图片描述
done

持续更新

全部代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Andy_shenzl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值