【山东大学软件学院 21 级项目实训】飞桨平台BML Codelab学习-(下)

侧边栏 (剩下的)

代码片段

BML CodeLab提供常用机器学习和深度学习代码片段,支持一键插入到Notebook代码文件中。AI开发者编码过程中如果遇到重复性的代码,也可以将其收藏为自己的代码片段,一键插入使用,提高开发效率。

代码片段提供公共代码片段库和我的代码片段库管理能力。

公共代码片段库

公共代码片段库中内置了常见的机器学习片段,您可直接插入使用,双击可浏览代码片段内容。

FinalVideo_1624959446.gif

我的代码片段库

您可管理自己的代码片段。我的代码片段库支持插入、编辑、重命名、删除和浏览。

FinalVideo_1625038621.gif

使用规范

  • 代码片段内容不容许重复,若重复会提示:当前代码片段已存在;
  • 若云端同步过来的片段内容与本地代码片段有重复,会根据时间新的覆盖旧的;名称也会替换成最新时间编写的;
  • 在不登录情况下,可以保存代码片段到本地;
  • 登录后,会自动将我的代码片段同步到云端,用户更换设备,我的代码片段会同时同步过去;
  • 代码片段名称容许重复;

包管理

BML CodeLab 提供可视化包管理能力,内含 160 多种常用包及精选的百度自研能力,用户可按需安装、卸载、更换版本。

image.png

这里需要注意:

  • 每个包仅能处于一种操作中(安装/卸载/更换版本);
  • 若您对某个包下载多个版本,环境中只保留最新下载的版本

精选推荐

提供:

* wenxin
* Blackhole
* PaddlePaddle
* PaddlePaddle-gpu
* PaddleX
* PaddleHub

BML CodeLab 会定期对以上能力进行版本更新,用户可根据实际需要进行安装和更新版本。

已安装

展示的是当前环境下已安装的所有包,可通过精准匹配查找已经安装的包。

这里需要注意: Blackhole和wenxin 如果通过精选推荐安装,不会出现在已安装列表中。

未安装

展示的是当前环境下未安装的常用Python包,可通过精准匹配查找已经安装的包。

环境信息

您可查看当前运行环境的硬件信息和镜像基础信息。

硬件信息:

展示CPU(CPU核数)、GPU(GPU卡详细信息)、总显存、总内存、总硬盘信息;

环境配置:

展示 Python版本;

操作步骤

点击侧边栏环境信息按钮,查看具体信息

数据模型可视化

VisualDL是一个面向深度学习任务设计的可视化工具。VisualDL 通过丰富的图表来展示数据,使用户可以更直观、清晰地查看数据的特征与变化趋势,有助于分析数据、及时发现错误,进而改进神经网络模型的设计。喜欢的同学可以去star支持一下哦~

BML CodeLab已经集成VisualDL工具以便于您的使用,您可在侧边栏点击VDL启动数据模型可视化服务。

BML CodeLab数据可视化服务操作说明

Step1 创建日志文件LogWriter,训练代码中增加 Loggers 来记录不同种类的数据,设置实验结果存放路径. 注意我们的logdir = "./log", 即需要把log目录放到/home/work/log.

from visualdl import LogWriter

if __name__ == '__main__':
    value = [i/1000.0 for i in range(1000)]
    # 初始化一个记录器
    with LogWriter(logdir="./log/scalar_test/train") as writer:

Step2 训练过程中插入数据打点语句,将结果储存至日志文件中

for step in range(1000):
            # 向记录器添加一个tag为`acc`的数据
            writer.add_scalar(tag="acc", step=step, value=value[step])
            # 向记录器添加一个tag为`loss`的数据
            writer.add_scalar(tag="loss", step=step, value=1/(value[step] + 1))

Step3 切换到「VDL」数据模型可视化页签,指定日志文件与模型文件(不指定日志文件无法启动VisualDL)

*注意:VisualDL启动中不可删除或替换日志/模型文件;日志文件可多选,模型文件一次只能上传一个,且模型文件暂只支持模型网络结构,不支持展示各层参数

  • 选择日志文件

    PaddleX

  • 选择模型文件

    PaddleX

Step4 点击「启动VisualDL」后,再点击「进入VisualDL」即可打开可视化界面

*注意:使用VisualDL需要Python3以上版本;端口8080是VisualDL的专用端口,严禁占用,否则无法正常启动VisualDL

资源监控

BML CodeLab提供资源实时监控功能,您可查看资源实时使用情况。

资源监控指标介绍
CPU占用率当前已使用CPU量/CPU总可使用量
内存占用率当前已使用的内存/内存总可使用量
硬盘占用率当前已使用的磁盘大小/磁盘总可用量
GPU占用率可选择GPU卡,显示已使用的GPU量/该卡总可用量
显存占用率可选择GPU卡,显示选择GPU卡已使用显存大小/该卡总可用量

操作步骤

点击侧边栏资源监控按钮,进入资源页面,您可选择具体GPU卡进行监控

image.png

应用

BML CodeLab提供用户创建应用、调试应用和部署应用等功能。相关功能以StreamlitGradio作为底层技术,为用户提供快速搭建交互式图形化界面的能力,只需要几行代码即可搭建一个炫酷的图形化界面。

创建应用

BML CodeLab启动页新增2种应用选项。点击该Gradio或Streamlit,即在文件列表自动创建一个应用文件,文件默认命名为untitled.streamlit.py/untitled.gradio.py(应用文件的独特命名形式)。 

image.png

调试应用

进入应用文件,即可开始编写并调试应用代码。整个页面分为工具栏、代码编辑区、交互效果预览区三部分,以下将详细说明: 

image.png

  • 工具栏:共包含4个选项,从左至右分别为运行、保存、在浏览器打开、应用部署:

    • 运行:提交代码编辑区代码并运行,在交互效果预览区得到最新的交互内容。
    • 保存:保存代码编辑区中的代码。
    • 在浏览器打开:打开一个新的浏览器页面,更好的查看交互效果。需要注意的是,每次运行都需要重新点击在浏览器打开,查看最新的交互效果,已经打开的浏览器页面不会实时刷新。
    • 应用部署:应用部署至项目详情页。
    • 预览开关:控制交互效果预览区的展示。为了获得更多的代码编辑区,建议在编写代码时关闭预览,在样式调整时打开预览。
  • 代码编辑区:编写Python代码,串联模型推理和交互,获得完整的应用。
  • 交互效果预览区:运行当前文件代码所得到的交互效果。每次打开该类文件系统均会默认运行,一般需要几秒钟的等待时间。

部署应用

  • 请适当考虑显存和并发问题,添加相关代码至应用文件,以确保应用的正常运行。
  • 如部署环境需要其他的框架版本,请根据CUDA版本(11.2)自行安装。

点击应用部署按钮即可进入部署流程。部署前,请详细阅读部署引导并按照要求将相关文件存放在部署包中,为方便文件管理建议新建一个文件夹作为部署包。部署时,请根据要求填写应用名称、部署包目录、执行文件。部署时间(30秒~2分钟)受相关依赖安装时间影响,部署成功后出现提示'应用部署成功,请跳转至项目详情页查看应用效果'。

  • 应用名称:应用命名,仅作为自己备注查看。
  • 部署包目录:部署包所在的目录,所有文件均需要放在部署包目录。
  • 执行文件:应用文件。
  • 部署环境:根据应用实际情况选择合适的部署环境。需要说明的是,GPU部署需要额外使用算力卡。 

    2.png

     

    3.png

     

    image.png

部署成功后的项目详情页将优先展示应用体验内容。作者可以额外看到应用名称、应用类型、部署时间、服务器类型、调用次数、无调用时间、操作(删除应用、打开/关闭应用、部署日志)。

如您想将应用发布至应用中心,请点击右上角的'发布应用'按钮,填写发布必要信息并上传应用封面。 

image.png

 

image.png

部署详细教程和注意事项请点击此处查看。

使用样例-Streamlit

以下是基于Streamlit应用创建工具使用PaddleHub中stylepro_artistic模型实现图片风格迁移的应用代码和交互效果。需要注意的是代码中迁移风格图片(StarryNight.png)需要您手动下载并上传至应用文件的同级目录。

示例代码:

import streamlit as st
import paddlehub as hub
import cv2
from PIL import Image
import numpy as np
import os 
import paddlehub as hub
import cv2
stylepro_artistic = hub.Module(name="stylepro_artistic")
st.markdown('### 梵高星空夜图像风格迁移')
st.write('点击 Browse files 上传张图片,生成梵高星空夜风格的图片,赶快试试吧~')
with st.form(key="图像风格迁移"):
    per_image = st.file_uploader("上传图片", type=['png', 'jpg','jpeg'], label_visibility='hidden')
    col1, col2 = st.columns(2)
    with col1:
        st.markdown('#### 原始图片')
        if per_image:
            st.image(per_image)
        else:
            st.image("https://codelab-public.bj.bcebos.com/base.jpeg")
    submit = st.form_submit_button("开始生成")
    with col2:
        st.markdown('#### 预测结果')
        if per_image:
            img = Image.open(per_image)
            img = cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)
            result =stylepro_artistic.style_transfer(images=
            [{
            'content': img,
            'styles': [cv2.imread(os.path.join(os.path.dirname(os.path.realpath(__file__)),'StarryNight.png'))]
            }])
            st.image(result[0]['data'])
        else:
            st.image("https://codelab-public.bj.bcebos.com/test.jpeg")
st.markdown('#### 梵高星空夜作品展示')
st.image("https://bkimg.cdn.bcebos.com/pic/d01373f082025aafcce937a8f7edab64024f1afd?x-bce-process=image/resize,m_lfit,w_1280,limit_1")

交互效果: 

image.png

 相关代码教程请点击此处 查看。

使用样例-Gradio

以下是基于Gradio应用创建工具使用PaddleHub中stylepro_artistic模型实现图片风格迁移的应用代码和交互效果。需要注意的是代码中迁移风格图片(StarryNight.png)需要您手动下载并上传至应用文件的同级目录。

示例代码:

import gradio as gr
import paddlehub as hub
import cv2
import numpy as np
import os 
from PIL import Image

stylepro_artistic = hub.Module(name="stylepro_artistic")
def quickstart(image):
    result =stylepro_artistic.style_transfer(images=
            [{
            'content': image,
            'styles': [cv2.imread(os.path.join(os.path.dirname(os.path.realpath(__file__)),'StarryNight.png'))]
            }])
    return result[0]['data']
demo = gr.Interface(fn=quickstart,title="梵高星空夜图像风格迁移",inputs="image", outputs="image")
demo.launch()

交互效果: 

image.png

 相关代码教程请点击此处 查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值