CSDN话题挑战赛第2期
参赛话题:
学习笔记
深度学习-图像生成领域许多工作都会做网页demo,技术与应用接轨,让用户体验模型能力。
之前试过用轻量级Web应用框架Flask将深度学习模型部署到微信小程序端:
pytorch模型部署小程序_三思为上策的博客-CSDN博客_pytorch 小程序
如果要用Flask写网页demo也是可以的,但还要会写html,太麻烦啦,我就选择了streamlit——只需要懂python即可,各种网页功能性部件都被封装好了,可以查询
API Reference - Streamlit Docs
搜索你想要用的API。
-
streamlit安装:在命令行进入你运行模型需要的环境,安装streamlit及附属包即可。
conda activate xxx
pip install streamlit
测试安装是否成功:
streamlit hello
如果成功,则浏览器会自动弹出
http://localhost:8501/
,出现streamlit提供的示例。
如果失败,优先考虑是附属安装的包出错了,根据报错的信息,把对应的包卸载重装即可。
我遇到了这个报错信息:
TypeError:__init__() got an unexpected keyword argument 'show_envvar',
报错位置在 ' 安装路径.../anaconda3/envs/xxx/lib/python3.6/site-packages/click/core.py ',于是我重装了click包。
(不懂为啥,我把pip uninstall click命令敲了2遍才把click相关文件卸干净了)
pip uninstall click
pip install click
可以参考我的代码模板:新建一个demo.py文件写入以下内容
一些streamlit API解释可以参考我的前一篇笔记:(Paint2Pix用streamlit实现了交互性很强很好玩的绘画生成真实人脸,以及根据涂鸦编辑真实人脸的功能)
Paint2Pix代码笔记_三思为上策的博客-CSDN博客
import streamlit as st
def main():
prompt_container = st.empty() #定义一个空容器
if 'load_models' not in st.session_state:
prompt_container.caption('Loading...')
#空容器装入caption部件,在它的位置上显示'Loading...'
st.session_state.load_models = []
# 在这里load模型,然后把模型传入寄存器
st.session_state.load_models.append(模型1)
st.session_state.load_models.append(模型2)
prompt_container.empty() #重新置为空容器,caption消失
# 我用这个状态寄存器来防止模型调用过程中反复调用
if 'editing' not in st.session_state:
st.session_state.editing = False
# main app body
# 介绍一下网页
st.markdown(
YourAPP: Intro...
# 上传图片
image_container = st.empty()
in_image = image_container.file_uploader("1.Input image:", type=["png", "jpg"])
get_value = lambda x: x if x is None or isinstance(x, str) else x.getvalue()
if 'input_img' not in st.session_state or get_value(st.session_state.input_img) != get_value(in_image):
if 'input_img' in st.session_state and get_value(st.session_state.input_img) != get_value(in_image):
print("update img...")
for key in st.session_state.keys():
# 只有加载好的模型存下来不被删除,其他寄存器内容被删
if key != 'load_models':
del st.session_state[key]
time.sleep(1)
st.session_state.input_img = in_image
if in_image is not None:
# 保存用户上传的图片
image = Image.open(in_image).convert('RGB')
image.save("static/111111.jpg")
st.markdown('2.click the button to start:')
img_edit_button = st.button('Start')
# 这里写按下按键后的操作
if img_edit_button:
if not st.session_state.editing:
st.session_state.editing = True
print("user choosing done!editing...")
# 此处调用模型
# 两列展示原图和编辑后的图
col1, col2 = st.columns(2)
with col1:
st.subheader('your input:')
ori_img = np.array(Image.open('static/111111.jpg'))
st.image(ori_img)
with col2:
st.subheader('edited result:')
return_img = np.array(Image.open('static/edit/222.jpg'))
st.image(return_img)
st.session_state.editing = False
if __name__ == "__main__":
st.set_page_config(
page_title="Your Demo", page_icon=":pencil2:"
st.title("--Your Demo--")
main()
然后用命令行来跑代码:
conda activate xxx
CUDA_VISIBLE_DEVICES=1 streamlit run demo.py
即可在本机自动弹出窗口使用网页demo,也可以在同一局域网下别的电脑上访问http://你的主机IP:8501。
IP查询:windows用ipconfig命令,ubuntu用ifconfig。
用户每一次交互,网页都会更新,demo.py会被重新run,代码运行过程中定义、更新的变量都会被刷新,只有存入st.session_state的数据可以长期留存。
调用API定义的streamlit小部件,会按代码前后顺序来排列在网页上。
st.markdown('2.click the button to start:')
img_edit_button = st.button('Start')
网页上,文字信息2.click the button to start:会出现在Start按键上方一行。
python︱写markdown一样写
网页
,代码快速生成web工具:
streamlit
(一)
上篇主要是steamlit的介绍以及
streamlit
的一些初始化,这篇是一些组件的介绍,当然风格是直接上代码。
参考代码:mattzheng/cookbook_elements
文章目录1 空白占位符placeholder: st.empty()
1 空白占位符placeholder: st.empty()
import
streamlit
as st
import pandas as pd
import n
cnsenti App这是使用
streamlit
库将中文情感分析[cnsenti部署到网络世界,可在线提供简单的中文文本的情绪及情感计算。
streamlit
库(https://docs....
登录界面
streamlit
实现,这里
streamlit
框架是一直不断刷新,所以要用外部的控制刷新,或者跳转来解决。哔哩哔哩
streamlit
简单开发视频。汇智网
streamlit
开发手册。
streamlit
可视化大致。选择框,sidebar是侧边。
streamlit
官网。
streamlit
思路。
streamlit
思路。显示图,html方法。
Streamlit
是一个非常灵活和易于使用的工具,可以帮助你创建出强大的交互式应用程序。除了上述组件和功能,
Streamlit
社区也提供了许多第三方扩展和插件,可以进一步增强你的应用程序的功能和外观。这只是一个简单的示例,
Streamlit
还提供了许多其他功能,如绘图、数据可视化、布局和部署选项。文件中,你可以使用
Streamlit
的各种功能来创建你的应用程序。以下是一个简单的
Streamlit
教程,它将带你从头开始创建一个基本的交互式应用程序。创建一个新的 Python 文件,比如。
本文介绍如何利用
Streamlit
搭建个人博客网站,将 Markdown 文章和图像展示在交互式界面中。无需繁琐前端开发,我们通过 Python 编写代码,创造出美观功能丰富的博客。文章解释了读取 Markdown、处理图片链接、构建多页面交互等技术,同时涵盖发布网站至
Streamlit
Cloud。通过
Streamlit
,我们以创新方式与读者互动,将复杂内容以直观方式展示。这篇文章为初次尝试使用
Streamlit
的人提供了实用指南,激发大家在交互式数据应用方面的创造力。
Web 应用程序是显示数据科学或机器学习项目结果的好方法。从头开始开发 Web 应用程序需要大量时间、精力和技术技能。另一种构建 Web 应用程序的方法是使用开源 Python 库,例如
Streamlit
。
Streamlit
是一个开源 Python 框架,可让您为数据科学和机器学习项目创建漂亮的交互式网站。
Streamlit
提供设计和配置
网页
、访问和显示数据以及生成各种不同类型的图表和图形的功能。您可以在几分钟内构建和部署功能强大的 Web 应用程序。
Streamlit
兼容并集成了许多 Python
头条号:人工智能研究所
微@信搜索:启示AI科技什么是flaskFlask 是一个微型的 Python 开发的 Web 框架,基于Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask使用BSD授权。 Flask也被称为"microframework",因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的...
§01
Streamlit
开发
今天(2022-01-28)在整理 OpenCV对图像进行尺寸变换 以及 利用OpenCV对图像进行裁剪 的过程中,看到别人使用SteamLit展示OpenCV的一些具体操作。下面是从知乎
streamlit
:快速构建机器学习数据分析web app利器 上看到的一篇介绍如何利用
streamlit
完成Web App开发的介绍。下面就测试一下这款 Web App开发工具。
StreamLit
入门
streamlit
是一个用于构建机器学习、数据可视化的pytho
在这篇文章中,我们将学习如何构建
Streamlit
组件以及如何发布
streamlit
组件供其他人使用。
Streamlit
组件是一个可共享的
Streamlit
插件,可让你为应用程序添加新的视觉效果和交互性。为什么要使用或构建
Streamlit
组件?因为尽管
Streamlit
具有大量内置功能,但有时你可能希望向
Streamlit
(尚)不可用的应用程序添加可视化或交互性,然后与社区共享。有三种类型的组件:想知道要构建哪些组件?以下是一些思路:Cruft 为你提供预先存在的项目模板。可以使用 pip、
本文首发于:行者AI
在工作当中,算法工程师经常需要快速编写一些演示
demo
,例如快速演示一些算法,或者需要编写数据标注的工具等。常见的实现方式是算法工程师试用flask等框架编写api,再由前端工程师编写相关的
网页
调用api。这样毫无疑问是非常耗时,效率低下的。
然而,使用
streamlit
框架就可以快速搭建
demo
页面,算法工程师只使用python语言就可以编写比较精美的
demo
页面。
streamlit
框架内部负责处理
网页
的渲染工作,算法工程师将重点放在算法的流程方面就好。
streaml.
当需要对班级内多人进行打分时,为了不使用问卷星等平台进行评分,使用pandas进行操作数据,使用
streamlit
进行数据传输,可以实现问卷星的功能。当所有人提交后,在本地会生成每个人的评分文件,我们需要再运行一段代码来将评分文件进行合并。合并之后就能直观看到总平均分啦。当然还能进行优化,比如将这些代码整合到一起,实时计算等。这样我们把所有的评分输入后,点击提交,就能生成一个评分的csv文件了。例如刘备、关羽、张飞三人的学号、姓名、专业和班级。首先需要准备一个模板文件,写入待用户评分的人。
本案例来看一个专门
做
数据展示的案例1,uber数据集的展示。
1 数据探索性app - Create a data explorer app
在本教程中,您将使用
Streamlit
的核心功能来创建一个交互式应用程序;
探索纽约市打车软件优步的公共接送数据集。
完成后,您将知道如何获取和缓存数据、绘制图表、在地图上绘制信息,并使用交互式小部件(如滑块)来过滤结果。
2 加载数据
现在你有了一款应用程序,接下来你需要
做
的就是获取纽约市取车和落车的优步数据集。
streamlit
好处就在于cache只加载最初一次
很抱歉,作为一个语言模型,我无法提供代码示例,但是我可以提供一些概念和技巧,帮助您更好地开发后台管理系统
网页
。
首先,您需要确定所需的功能,以便确定
网页
的布局和界面。一般情况下,后台管理系统
网页
需要包括数据管理、用户管理、权限管理等功能。
然后,您可以使用 HTML、CSS 和 JavaScript 等技术,编写
网页
的静态界面。
接着,您可以使用后端技术,如 Node.js、PHP 等,连接数据库...
Streamlit
是一个流行的Python库,它可以帮助数据科学家和机器学习工程师快速构建交互式数据应用程序。使用
Streamlit
,开发人员可以使用少量的Python代码来构建具有吸引力和功能性的应用程序,这些应用程序可以在Web浏览器中访问。
Streamlit
的特点包括易于使用、自动更新、实时预览等,这些使得数据科学家和机器学习工程师能够更轻松地与数据进行交互和探索。