昇腾npu上构建modelbox webUI开发容器教程

官方提供了modelbox webUI教程,但是,该教程有以下缺点:

  1. 在容器刚启动时,配置中的访问控制列表没有包含本地PC的IP,这导致如果想从本地PC访问远程服务器上容器的webUI,需要登入容器修改配置文件,再重启modelbox,费时费力。
  2. 新增项目对宿主机不可见。新增项目会保存在容器内,如果不手动复制的话,宿主机无法看到。
  3. ssh登陆麻烦。官方教程会让你登陆到容器,但有时你只想登陆到宿主机开发。可是,让新增项目对宿主机可见是一个问题。
  4. 重启命令冗长。单纯执行modelbox restart会导致报错,所以需要复制输入整个路径$HOME/modelbox-service/modelbox restart才能重启。

为了能开箱即用,本文稍微调整了Dockerfile,并附加了脚本,便于使用。

基础构建脚本

首先,为modelbox开发容器编写Dockerfile:

FROM registry-cbu.huawei.com/modelbox/euler/modelbox-develop-mindspore_2.1.0-cann_6.3.2-d910b-euler-aarch64:latest# install ytorch and npu plugin
COPY torch-1.11.0-cp37-cp37m-linux_aarch64.whl /root/torch-1.11.0-cp37-cp37m-linux_aarch64.whl
COPY torch_npu-1.11.0.post1-cp37-cp37m-linux_aarch64.whl /root/torch_npu-1.11.0.post1-cp37-cp37m-linux_aarch64.whlRUN pip install /root/torch-1.11.0-cp37-cp37m-linux_aarch64.whl
RUN pip install /root/torch_npu-1.11.0.post1-cp37-cp37m-linux_aarch64.whl# edit conf file
COPY ./res/add_acl.py /root/add_acl.py
COPY ./res/restart_modelbox.sh /root/restart_modelbox.sh
RUN pip install tomlRUN modelbox-tool develop -s \&& python add_acl.py \&& $HOME/modelbox-service/modelbox restart

其中:

  • 在Dockerfile内需要先执行modelbox-tool develop -s,这之后才会生成modelbox的配置文件,然后才能修改ACL属性。
  • res/add_acl.py用于替换conf文件里的acl配置项,添加本地PC IP,读者可以替换成自己的PC IP。

在当前目录创建res目录,创建add_acl.py脚本

import toml
import oshome = os.environ['HOME']# 读取文件
with open(f'{home}/modelbox-service/conf/modelbox.conf') as file:config = toml.load(file)# 获取[acl]的值
acl = config['acl']# 添加新元素
acl['allow'].append('10.78.8.148')  # 将这个替换成你的本地PC IP# 将修改后的值写回文件
with open(f'{home}/modelbox-service/conf/modelbox.conf', 'w') as file:toml.dump(config, file)

然后添加res/restart_modelbox.sh,内容简洁如下,是用于快速重启modelbox的。

$HOME/modelbox-service/modelbox restart

然后启动脚本start.sh如下,

sudo docker build -t modelbox_dev:latest .
sudo docker run --rm -it -v ./projects:/root/projects -e ASCEND_VISIBLE_DEVICES=2-3 --net=host modelbox_dev:latest /bin/bash

其中:

  • -v ./projects:/root/projects会把宿主机的projects目录挂到容器内,这样在容器里可以新建项目,在宿主机可以用vscode+ssh修改项目。
  • -e ASCEND_VISIBLE_DEVICES=2-3是用于挂载npu的2和3号卡。
  • --net=host会同步宿主机和容器的网络,便于登陆访问容器web UI的1104端口

使用方法

使用方式很简单:

  1. 在Dockerfile所在目录执行bash start.sh,就会启动modelbox容器。
  2. 在容器内执行bash restart_modelbox.sh确保modelbox重启并生效配置。
  3. 访问webUI的1104端口,新建项目,之后在宿主机的projects目录可见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/204062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GO设计模式——2、工厂方法模式(创建型)

目录 工厂方法模式(Factory Method Pattern) 工厂模式的核心角色 优缺点 代码实现 工厂方法模式(Factory Method Pattern) 工厂方法模式(Factory Method Pattern)又叫作多态性工厂模式,指的…

Kali Linux 2023.4 已经发布了!

开发人员推出了 Kali Linux 2023.4,这是2023 年发行版的第四个也是最后一个版本。 新产品已经可供下载,包含15 个新工具和 GNOME 45。 Offective Security 团队报告称,在今年的最终版本中,操作系统中并没有添加太多新功能&…

什么是海牙公约?

一、什么是海牙公约? "海牙公约" 通常是指1899年和1907年两次在海牙举行的国际和平会议所达成的一系列国际公约。这两次会议的目标是通过国际合作来促进和平、防止战争,并制定一些规则和原则,以限制武装冲突的影响。以下是其中两个…

用 C 写一个卷积神经网络

用 C 写一个卷积神经网络 深度学习领域最近发展很快,前一段时间读transformer论文《Attention Is All You Need》时,被一些神经网络和深度学习的概念搞得云里雾里,其实也根本没读懂。发现深度学习和传统的软件开发工程领域的差别挺大&#xf…

Vue开发中,在实现单页面应用(SPA)前端路由时的hash模式和history模式的区别及详细介绍

一、前言 单页面应用(SPA)的核心思想之一,就是更新视图而不重新请求页面,简单来说,它在加载页面时,不会加载整个页面,只会更新某个指定的容器中的内容。对于大多数单页面应用,都推荐使用官方支持的vue-rou…

动态代理配置方法。如何使用代理IP保护隐私安全?

随着网络技术的不断发展,越来越多的人开始使用代理IP来保护自己的隐私安全。代理IP是一种通过代理服务器来访问网络的特殊技术,可以隐藏用户的真实IP地址,从而保护用户的隐私。本文将介绍动态代理的配置方法以及如何使用代理IP保护隐私安全。…

PyTorch 基础篇(1):Pytorch 基础

Pytorch 学习开始 入门的材料来自两个地方: 第一个是官网教程:WELCOME TO PYTORCH TUTORIALS,特别是官网的六十分钟入门教程 DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ。 第二个是韩国大神 Yunjey Choi 的 Repo:pytorch-t…

Transformer中的layer norm(包含代码解释)

在transformer中存在add&norm操作,add操作很简单,就是把注意力矩阵和原来的矩阵相加,也就是残差链接,可以有效减少梯度消失。如下图所示,为layer norm的解释图,可以看出layer norm是针对一个token来做的…

接口自动化测试总结,接口鉴权+加密与解密+数据库操作/断言...

前言 1、接口鉴权的多种方式 1)后端接口鉴权常用方法 cookie: 携带身份信息请求认证 之后的每次请求都携带cookie信息,cookie记录在请求头中 token: 携带身份信息请求认证 之后的每次请求都携带token认证信息 可能记录在请求头…

Java随记

Java java保留两位小数 1、使用String.format()方法: public static void stringFormatdecimalFormatKeepTwoDecimalPlaces(){double number 3.1415926;String result String.format("%.2f", number);System.out.println(result);}输出:3…

Large Language Models areVisual Reasoning Coordinators

目录 一、论文速读 1.1 摘要 1.2 论文概要总结 二、论文精度 2.1 论文试图解决什么问题? 2.2 论文中提到的解决方案之关键是什么? 2.3 用于定量评估的数据集是什么?代码有没有开源? 2.4 这篇论文到底有什么贡献&#xff1…

第十五章 : Spring Boot 集成MyBatis 多种方式

第十五章 : Spring Boot 集成MyBatis 方式 前言 本章知识重点:Spring Boot集成MyBatis的两种方式:注解方式和配置文件集成方式,重点推荐一款脚手架工具-mybatis-plus3以及如何在Idea中集成与应用;大大提高了开发效率,代码更加规范和简洁。 Spring Boot数据访问概述 在…

振弦采集仪助力岩土工程质量控制

振弦采集仪助力岩土工程质量控制 随着工程建设规模越来越大,建筑结构的安全性和稳定性越来越成为人们所关注的焦点。岩土工程在工程建设中占据着非常重要的地位,岩土工程质量控制更是至关重要。而振弦采集仪作为一种先进的检测设备,正得到越…

[PyTorch][chapter 5][李宏毅深度学习][Classification]

前言: 这章节主要讲解常用的分类器原理.分类主要是要找到一个映射函数 比如垃圾邮件分类 : c0, 垃圾邮件 c1 正常邮件 主要应用场景: 垃圾邮件分类,手写数字识别,金融信用评估. 这里面简单了解一下,很少用 目录: 1: …

还记得当初自己为什么选择计算机?

还记得当初自己为什么选择计算机? 当初你问我为什么选择计算机,我笑着回答:“因为我梦想成为神奇的码农!我想像编织魔法一样编写程序,创造出炫酷的虚拟世界!”谁知道,我刚入门的那天&#xff0…

离线数仓构建案例一

数据采集 日志数据(文件)到Kafka 自己写个程序模拟一些用户的行为数据,这些数据存在一个文件夹中。 接着使用flume监控采集这些文件,然后发送给kafka中待消费。 1、flume采集配置文件 监控文件将数据发给kafka的flume配置文件…

STM32——定时器Timer

定时器工作原理 软件定时 缺点:不精确、占用 CPU 资源 void Delay500ms() //11.0592MHz {unsigned char i, j, k;_nop_();i 4;j 129;k 119;do{do{while (--k);} while (--j);} while (--i); } 使用精准的时基,通过硬件的方式,实现定时功…

Linux---访问NFS存储及自动挂载

本章主要介绍NFS客户端的使用 创建NFS服务器并通过NFS共享一个目录在客户端上访问NFS共享的目录自动挂载的配置和使用 访问NFS存储 前面介绍了本地存储,本章就来介绍如何使用网络上的存储设备。NFS即网络文件系统, 所实现的是 Linux 和 Linux 之间的共…

TypeScript中泛型函数

一.概览 此前,对泛型有了整体的概览,详见TypeScript中的泛型,后面的系列会详细地介绍TypeScript的泛型。此篇文章主要介绍泛型函数 二. 泛型函数 泛型是类型不明确的数据类型,在定义时,接收泛指的数据类型&#xff…

易点易动:颠覆固定资产用量管理,实现高效精准的企业固定资产管理

固定资产用量管理是企业日常运营中不可或缺的一环。然而,传统的人工管理方式面临着时间成本高、数据不准确、难以监控等问题。为了解决这些挑战,易点易动应运而生,它是一款先进的资产管理系统,能够帮助企业实现高效精准的固定资产…