-
一、选择如下:二、执行命令以及报错如下:
-
1、添加一条路由表1route add 192.168.20.0 mask 255.255.255.0 192.168.4.1 metric 2 if 2命令说明:添加一条路由记录,所有到192.168.20.0/24网段的数据包,都通过2号接口(网卡)走192.168.4.1的网关,优先级为2。12route add -p 192.168.100.0 mask 255.255.255.248 192.168.1.1 metric 3 if 2#作用同上,-p参数表:该记录为永久路由,不会因为重启机器而丢失。2、删除一条路由表1route delete 192.168.10.0【语法】route delete 网络目的地址 [mask] [子网掩码]route delete 112* ------->删除路由时用这种模糊匹配,表删除以112开头的IP路由表中的所有路由时;命令说明:如果有两条192.168.10.0路由记录,即路由表中存在相同的“目的网络号”,则会将两条记录同时删除。如果只想删除其中某一条的话,请在删除后用route add命令再添加上其中一条。3、修改一条现有路由记录1route change 162.0.0.0 mask 255.255.0.0 162.54.10.5 metric 2 if 2命令说明:CHANGE参数只能修改路由条目的“网关”和“跳数”。4、查看路由表1route print -4/-6路由表列说明:第一列是网络目的地址。列出了路由器连接的所有的网段。第二行网络掩码列提供这个网段本身的子网掩码,而不是连接到这个网段的网卡的子网掩码。这基本上能够让路由器确定目的网络的地址类。第三列是网关。一旦路由器确定它要把这个数据包转发到哪一个目的网络,路由器就要查看网关列表。网关表告诉路由器这个数据包应该转发到哪一个IP地址才能达到目的网络。第四列接口列告诉路由器哪一个网卡连接到了合适的目的网络。从技术上说,接口列仅告诉路由器分配给网卡的IP地址。那个网卡把路由器连接到目的网络。然而,路由器很聪明,知道这个地址绑定到哪一个物理网卡。第五列是测量,或跳数。测量本身是一种科学。该值越小的,可信度越高【例子】12NetworkDestination Netmask Gateway Interface Metric0.0.0.0 0.0.0.0 116.69.106.120 116.69.106.1 1上面信息表示发向任意网段的数据通过本机接口116.69.106.1被送往一个默认的网关:116.69.106.120,它的管理距离是1,管理距离指的是在路径选择的过程中信息的可信度,管理距离越小的,可信度越高。5、查看广播信息12345678arp -a##查看查看与本地电脑连接的mac地址跟IP地址,即当前电脑上的ARP映射表。可以看到当前的ARP的映射关系是动态的还是静态的。arp -s w.x.y.z aa-bb-cc-dd-ee-ff##添加静态ARP实现ARP绑定。其中w.x.y.z代表要绑定的IP地址,aa-bb-cc-dd-ee-ff代表其MAC地址arp -d InetAddr[IfaceAddr]##删除指定的IP地址项,此处的InetAddr代表IP地址,要删除所有项,请使用星号(*)通配符代替。
-
批处理概述批处理,顾名思义就是可以批量处理,也称为批处理脚本,英译名为BATCH,后缀名.bat也是由此而来。他的构成没有固定的格式,只要遵循:每一行可视为一条命令,每条命令里可以含多条子命令,从第一行开始执行,直至最后一行结束,它运行的平台是DOS即可。批处理的特点:使用方便、灵活,功能强大,自动化程度高。rem命令是批处理文件中的注释,相当于C++中的//。 @echo off rem echo off:关闭回显,批处理中的每一条命令都不会显示在显示器上。而echo off本身也是一条命令,如果不想让其显示,只需在前方加@符号即可。 SET CURRENT_PATH=Í% rem 注意,SET等号左右两边不能有空格 rem 将等号右侧的值赋值给等号左侧的变量; rem 使用%包裹的字符(字符串)是一个变量; rem Í%:点击的bat脚本的工作路径(最开始点击的bat脚本所在的路径)。 SET PROTOC_PATH=%CURRENT_PATH% SET PATH=%PATH%;%PROTOC_PATH% rem 将PROTOC_PATH所指向的路径添加到系统PATH环境变量中去(并不会永久改变环境变量,是临时性的) set target_path=. echo 编译: player.proto cpp && "%PROTOC_PATH%\protoc.exe" --cpp_out="%target_path%/" --proto_path "./" player.proto rem echo + message,用来在DOS界面打印消息,类似于C语言的printf。 rem &&符号在第三部分:常用特殊符号中有介绍,不再叙述。 rem 由于一开始开启@echo off,而&&后面部分为一条命令(将ProtoBuf源文件编译为C++源文件,包括.h、.cc文件),则在DOS界面中是不会显示的,即@echo off的屏幕效果不会因为&&而失效。 echo 编译: player.proto csharp && "%PROTOC_PATH%\protoc.exe" --csharp_out="%target_path%/" --proto_path "./" player.proto rem 原理同上。 echo 操作完成,按任意键退出 echo 完成时间 Úte:~0,10% %time:~0,8% rem Úte:~0,10%是批处理中用于取日期的命令。~0,10%类似于字符串截取。 rem %time:~0,8%是批处理中用于取时间的命令。~0,8%类似于字符串截取。 pause>nul&exit rem pause是批处理中按任意键退出,但是由于会显示一行中文,故使用>nul,用于屏幕标准输出在屏幕上的显示,即“按任意键退出”该行中文不会显示在DOS界面中。&符号的作用在第三部分:常用特殊符号已经介绍。 rem exit命名用于退出DOS控制台,当我们按任意键退出时,执行exit。 常用特殊符号命令含义@命令行回显屏蔽符%批处理变量引导符>>>输出重定向> 传递并覆盖>> 传递并在末尾追加<>&<&管道命令,一般不常用|命令管道符^转义字符,将特殊符号 < 、 > 、 & 的特殊功能去掉&&&||组合命令,就是把多个命令组合起来当一个命令执行。& 命令是顺序执行的,从前往后执行&& 可以同时执行多条命令,当碰到执行出错的命令后,将不再执行后面的命令|| 可以同时执行多条命令,当第一个命令执行失败后,才执行第二条命令,当碰到执行正确的命令后将不再执行后面的命令“ ”字符串界定符号,相当于空格;当命令相同时,可以将不同的目标用 ; 来隔离,但执行效果不变,如果执行过程中发生错误,则只返回错误报告,但程序仍会执行( )小括号在批处理编程中有特殊的作用,左右括号必须成对使用,括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行!在变量延迟问题中,用来表示变量,即 %var% 应该表示为 !var!批处理(bat) Í% 与 %~dp0的区别Í%是指:点击的bat脚本的工作路径(最开始点击的bat脚本所在的路径)。%~dp0是指:当前执行的bat脚本所在目录(随着执行脚本的变化而变化)。TIPS:%~dp0可以在A.bat的命令行中运行B.bat时,获得B.bat所在的路径。批处理(bat)将路径添加到PATH环境变量中的两种方式环境变量:通过在环境变量里面加入所需软件的安装路径(exe文件所在路径),当我们想运行某一软件时双击其快捷方式或者在DOS界面输入软件名称(命令),此时,计算机除了在其当前目录下寻找该软件的.exe文件之外,还在环境变量中搜索该软件的执行路径,找到,则运行。永久添加TIPS:该方式需要有管理员权限。123456@echo offrem 设置要永久加入到path环境变量中的路径set My_PATH=D:AppFolderset PATH=%PATH%;%My_PATH%reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment" /v "Path" /t REG_EXPAND_SZ /d "%PATH%" /fexit临时添加123456@echo offrem 设置要临时加入到PATH环境变量中的路径set My_PATH=D:AppFolderset PATH=%PATH%;%My_PATH%rem 其它脚本命令todopause
-
基于Windows编译OBS C SDK指南背景在Windows下使用OBS C SDK(v3.22.7及之后,v3.22.7之前的版本跳转到后半部分),希望编译成DLL动态链接库文件供工程使用。编译C SDK基于visual studio进行编译;此处基于visual studio2017进行编译作为示例;1、打开编译工程进行编译打开visual studio 2017,选择File->Open->Project/Solution打开源代码目录下的编译工程(目录:"your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\sln\vc100\obs.sln"),然后直接编译。常见问题:1、esdklogapi.h(194): error C3872: “0xe58b”: 此字符不允许在标识符中使用 error C2143: 语法错误: 缺少“;”(在“*”的前面)“in”: 未声明的标识符“0x2033”: 此字符不允许在标识符中使用解决方法:报错的对应文件转换下换行符为CRLF即可解决改问题2、无法打开输入文件“libeay32.lib”解决方法:于链接器中删除 libeay32.lib ssleay32.lib增加 对应包含目录下的库,例如(libssl.lib、libcrypto.lib)编译C SDK Demo1、打开测试工程打开visual studio,选择File->Open->Project/Solution打开源代码目录下的测试工程(测试工程目录:"your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++_Demo\sln\obs_demo.sln");选择对应的发布版本及平台如果出现与编译时类似的提示是否升级项目的编译器时,点击确定,如果不小心点击取消则需要点击项目->重定向项目->确定。2、编译测试工程之前建议先完成下方常见问题a、b选择Build->Rebuild编译测试工程;常见问题:a. 如果出现如下错误,表明未在当前工程路径下找到对应的lib文件,请将上一步中编译得到的libeSDKOBS.lib、libeSDKOBS.dll及huaweisecurec.lib、huaweisecurec.dll复制到测试工程目录下("your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++_Demo\sln\")再重新执行编译;b.编译成功,运行时提示找不到xxx.dll除了问题a中提到的dll外,还需要:your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\bin\win64_x64_msvc\release(32位是your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\bin\win32_x86_msvc\release)下的所有dllplatform\eSDK_LogAPI_V2.1.10\C\release_x64(32位是platform\eSDK_LogAPI_V2.1.10\C\release)下所有dllc.执行了a、b问题中的步骤,为啥还是有运行的异常弹窗?这种情况下请确认a、b步骤中使用的所有dll是否对应相同的架构(win32_x86或win64_x64)v3.22.7前参考下面的编译指南背景在Windows下使用OBS C SDK,希望编译成DLL动态链接库文件供工程使用。原帖OBS C SDK基于Windows进行编译_对象存储服务_存储服务_华为云论坛 (huaweicloud.com) ,存在些许纰漏,基于该贴修复了一些不明确的步骤。编译C SDK基于visual studio进行编译;此处基于visual studio2017进行编译作为示例;1、打开编译工程打开visual studio 2017,选择File->Open->Project/Solution打开源代码目录下的编译工程(目录:"your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\sln\vc100\obs.sln"),打开工程时如果出现如下提示是否升级项目的编译器及依赖库时,选择Cancel(表示依赖VS2010编译工具进行编译,如果本地未安装过VS2010,请参考常见问题中的解决方案,然后编译);2、编译工程选择Build->Rebuild重新编译工程;出现如下提示代表工程编译成功;编译产物见目录:"your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\build\vc100\Release"常见问题:a. 提示缺少VS2010 VC100工具集出现该问题的原因是该工程默认采用VS2010工具集进行编译,如果本地环境中未安装过VS2010时将会提示该问题;以visual studio2017版本为例展示该问题解决方案:1、在工程上右键选择重定向项目(不仅是图中的项目,huaweisecurec项目也需要此操作)2、重定向项目至指定平台工具集及SDK版本(以VS2017为例,平台工具集版本为V141)3、替换“your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\lib\win64_x64_msvc\release”目录下的libxml2.lib文件为附件(可到原帖中下载)中的libxml2.lib及libxml2.dll文件,否则在高版本VS中编译会提示该依赖库为低版本VS中编译,导致工程编译失败;4、选择右边的发布版本及平台,然后右键obs工程->属性->链接器->输入->附加依赖项-><编辑>在列表中最后一行添加cjson.lib后点击确定完成这些步骤后重新编译工程即可;测试C SDK方式一:直接使用提供的测试工程1、打开测试工程打开visual studio,选择File->Open->Project/Solution打开源代码目录下的测试工程(测试工程目录:"your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\build\obs\demo\sln\obs_demo.sln");选择对应的发布版本及平台如果出现与编译时类似的提示是否升级项目的编译器及依赖库且没有安装vs2010时,点击确定,如果不小心点击取消则需要点击项目->重定向项目->确定。2、编译测试工程之前建议先完成下方常见问题a、b选择Build->Rebuild编译测试工程;常见问题:a. 如果出现如下错误,表明未在当前工程路径下找到对应的lib文件,请将上一步中编译得到的libeSDKOBS.lib、libeSDKOBS.dll及huaweisecurec.lib、huaweisecurec.dll复制到测试工程目录下("your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\build\obs\demo\sln")再重新执行编译;b. 编译过程中出现如下错误时需修改工程配置选项;右键单击工程Properties->Linker->Command Line Additional Options,添加/SAFESEH:NO ;输出如下结果时代表编译测试工程成功,但是仍缺失部分dll,拷贝 “your-sdk-path\\source\eSDK_OBS_API\eSDK_OBS_API_C++\bin\win64_x64_msvc\release”文件夹和“your-sdk-path\platform\eSDK_LogAPI_V2.1.10\C\release_x64”文件夹下的所有dll文件以及原帖附件中提供的libxml2.dll到测试工程目录下("your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\build\obs\demo\sln"),之后可以根据实际需要配置测试工程中的ACCESS_KEY_ID(对应AK)、SECRET_ACCESS_KEY(对应SK)、HOST_NAME(对应EndPoint)等信息来调用相关接口进行测试;c. 在高版本VS中运行时出现提示“无法从const char* 转换为char*”;出现该问题时,可以通过设置Properties->C/C++->Language->Conformance mode(符合模式)为否来解决;注意:如果在编译SDK工程时采用了高版本VS进行编译,同时用附件中的libxml2替换了原路径下的libxml2.lib文件,则还需要将libxml2.dll文件添加到工程源文件目录下;libxml2.dll->"your-sdk-path\source\eSDK_OBS_API\eSDK_OBS_API_C++\bin\win64_x64_msvc\release\libxml2.dll"添加完依赖库目录后编译运行即可执行测试工程;常见问题a. 提示缺少MSVCR100.dll文件;原因是当前系统上缺少低版本运行库文件MSVCR100.dll,下载到该文件并放于系统C:\Windows\System32或C:\Windows\SysWOW64目录下即可;对于高版本Visual studio,新建测试工程并引入SDK动态链接库的方法与VS2015基本一致。附件libxml2可到原帖中下载
yd_264107108 发表于2022-09-15 12:56:46 2022-09-15 12:56:46 最后回复 yd_298600240 2025-02-27 15:32:09
1059 2 -
windows EVS初始化挂载成功,仍然显示未完成
-
问题描述在安装OpenEye软电话后,双击运行,系统提示如下错误:解决方法OpenEye软电话采用C++语言开发,在Windows 10操作系统上运行时,依赖操作系统的相关联的插件包,如果客户端未安装,则OpenEye会存在该问题。解决方法如下:从Windows官网下载相关插件包,并完成安装。https://www.microsoft.com/en-us/download/confirmation.aspx?id=26999https://www.microsoft.com/en-us/download/details.aspx?id=48145卸载OpenEye并重新安装OpenEye。
-
Oracle的EBS系统, 3.*版本的设计器无法拾取,提示如下:临时解决方案: Java 1.8版本下载链接, 然后在本地构造提示的路径即可.先测试这个版本是否可以使用. Jdk-8u202-windows-i586.exe另外还可以去oracle官网下载Java1.8版本https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html的这个版本也可以, 只是要注册并且下载速度较慢 jre-8u331-windows-i586.exe除去以上操作,还需要在1.6的java环境里添加javabridge的相关内容, 具体可参考 https://bbs.huaweicloud.com/forum/thread-166931-1-1.html
This is WeAutomate 发表于2022-08-01 14:37:15 2022-08-01 14:37:15 最后回复 This is WeAutomate 2022-10-20 12:24:26
521 1 -
安装和配置Redis前言:windows没有32位的Redis,所以32位机器的朋友考虑换一下机器。1、windows环境下的redis需要去github上获取:https://github.com/MicrosoftArchive/redis/releases2、直接下载最新版本,选择.msi格式的安装版本(另外一种.zip通过命令安装)3、直接运行.msi的安装包,一直next,直到下面界面,勾选上再next4、这一步选择端口,然后next(后面可以通过配置文件修改的)5、选择最大缓存容量,点击next(后面可以通过配置文件修改的)6、接下来可以点击install进行安装了,安装完毕后,进入redis安装目录找到配置文件,注意是redis.windows-service.conf,不是redis.windows.conf,后者是以非系统服务方式启动程序使用的配置文件.7、在配置文件中,找到requirepass foobared字样,在其后面追加一行,输入requirepass 123456。这是访问Redis时所需的密码,一般测试情况下可以不用设定密码。不过,即使是作为本地访问,也建议设定一个密码。此处以简单的123456来演示,然后保存退出8、进入计算机服务中(右键计算机-->管理-->服务和应用程序-->服务),再在右侧找到Redis名称的服务,查看启动情况。如未启动,则手动启动之。正常情况下,服务应该正常启动并运行了,但是因为前面修改过配置文件,需要重启服务,切记9、测试一下redis能否正常工作。用命令进入redis安装路径,输入redis-cli并回车(redis-cli是客户端程序)如图正常提示进入,并显示正确端口号,则表示服务已经启动。10、使用服务前需要先通过密码验证。输入“auth 123456”并回车(123456是之前设定的密码)。返回提示OK表示验证通过。然后再验证set和get。一切正常,说明可以开始随便盘它了。可视化工具redis常用的可视化工具 Redis Desktop Manager。0.9.4以上要给钱的。下载地址:https://github.com/uglide/RedisDesktopManager/releases/download/0.9.3/redis-desktop-manager-0.9.3.817.exe这位朋友的百度云盘里也有(感谢):https://blog.csdn.net/u012688704/article/details/82251338下载完成之后直接点击安装包安装即可,无需任何配置。然后直接连接Redis就可以盘了————————————————原文链接:https://blog.csdn.net/weixin_41381863/article/details/88231397
-
方法1:右键菜单“以管理员身份运行”方法1下的管理员权限仅在本次执行生效,如果需要持续以管理员权限执行,请参考方法2方法2:通过兼容性设置,使程序默认以管理员权限执行右键单击程序->点击属性菜单->弹出属性设置对话框->按需设置管理员权限(1)仅对当前登录的用户生效(2)对所有用户生效
-
Windows系统MindSpore 1.6.2 CPU 环境下,运行gitee提供的SSD模型,下载COCO数据集后,修改了official/cv/ssd/config/ssd300_config_gpu.yaml文件,单独运行official/cv/ssd/src/dataset.py文件创建MindRecord文件报错coco文件夹及位置如图gitee教程如下:ssd模型位置:\official\cv\ssdhttps://gitee.com/mindspore/models/tree/r1.6/official/cv/ssd本人修改的yaml文件及完整代码在附件,yaml为 official/cv/ssd/config/ssd300_config_gpu.yaml
-
一、在Windows上远程连接服务器1)打开MobaXterm工具,并依次点击:Session,SSH 按钮。2)输入连接信息,远程地址,并点击OK。3)输入账号:bearpi,点击回车。输入密码:bearpi,注意,输入密码的时候屏幕不会显示,输完之后点击回车。5)在弹出的界面上,点击Yes保存账号信息,以免下次输入。二、把ubuntu文件远程映射到Windows上1)安装RaiDrive软件2)切换为中文语言3)添加链接信息取消勾选只读SFTP://______ (这个输入获取到的Linux地址)账户:账号和密码皆为 bearpi其他默认点击确定4)查看本地映射的ubuntu文件路径三、在ubuntu获取源码1)鼠标焦点移到MobaXterm2)在MobaXterm中输入:cd /home/bearpi然后回车3)在MobaXterm中输入:mkdir project && cd project然后回车4)在MobaXterm中输入:hpm init -t default然后回车5)在MobaXterm中输入:hpm i @bearpi/bearpi_hm_nano然后回车,等待1-3分钟(根据不同网速)6)当屏幕中出现Installed.意味着代码获取完成四、编译代码1)在MobaXterm中输入:hpm dist然后回车,等待直到屏幕出现:BUILD SUCCESS字样,说明编译成功。2)查看编译出的固件位置:当编译完后,在Windows中可以直接查看到最终编译的固件,具体路径在:注意,最前的磁盘在为RaiDrive映射的路径。五、连接开发板1)通过TypeC数据线,把电脑与BearPi-HM Nano连接。2)安装CH340驱动。下载地址:http://www.wch.cn/search?q=ch340g&t=downloads3)关闭虚拟机捕获USB功能。(有很多开发者都是因为虚拟机捕获了USB设备,导致本机Windows电脑看不到串口)如果上面操作不行,直接关闭VMware Workstation,选择挂起,然后再重新插拔USB。4)查看开发板的串口六、下载程序1)在Windows打开Hiburn工具,并点击Refresh,在COM中选择之前看到的COM号然后点击Setting,并选择 Com settings,2)在Com settings中设置Baud为:921600,点击确定3)点击 Hiburn工具中的Select file按钮,在弹出的文件框中,选择 四-2 中对应的路径,并选中:Hi3861_wifiiot_app_allinone.bin 文件。4)点击Auto burn复选框,然后点击Connect此时Connect按钮变成Disconnect,等待下载5)复位开发板RESET按键,开始下载程序6)直到出现Execution Successful字样,程序下载完成。7)下载完后,点击Disconnect按钮,便于后面调测使用。七、MobaXterm查看串口打印日志1)打开MobaXterm,点击:Session、Serial按钮设置Seral port为 Hiburn 同一个串口设置Speed为 115200点击OK2)如果显示Unable to open...等字样,需要看一下Hiburn的链接状态是否为关闭(六-7)步骤。3)复位开发板,此时COM打印出对应日志信息。
-
# OpenHarmony 开发环境搭建 ## WSL + VSCode + DevEco 我并没有使用华为官方推荐的 Windows + Ubuntu 虚拟机开发的方式,因为我觉得过于繁琐,索性我就直接用微软的 WSL2 直接安装了 DevEco Device Tool,配合 Windows Terminal 使用,还是很舒服的,但是我不知道为什么华为默认只支持了 Bash,还不能修改默认安装位置?作为有文件洁癖的我的解压了官方安装包,修改了里面的安装脚本,还把默认支持的 Shell 从 `/bin/sh` 改为了 `/usr/bin/zsh`,这样就很舒服了。 然后就是初始化、编译一把梭了,结果出现了以下问题。  Google 之后发现,原来是缺少了 [gn](https://github.com/timniederhausen/gn)(GN 是一个用来生成 Ninja 构建文件的工具),没啥好说的,再下载编译一下 gn 就行了。  结果还是报错:  这个问题我就没那么多时间陪你慢慢解决了,索性我直接换用了 Docker。希望华为自己也能优化一下这些工具的配置,简化繁琐的流程,同时也要给予开发者足够的个性化(只支持 Bash 这合适吗?)。 ## Docker 先搜索一下有没有官方镜像,看来是有的,就是可能有点老了。另外需要注意的是它的 tag 不是 `latest`,而是 `0.0.3`。  那就直接 pull 下来就好了,然后直接 run 一下容器就行了,另外还在里面配置了 ssh。  初始化、编译一个项目试试。  OK,看来是没问题了,算是搭建好了吧。
-
问题现象:问题原因:操作系统中未安装系统对应版本的媒体功能包“KB3145500”解决办法:使用浏览器访问如下URL地址(此为推荐地址,用户也可自行去到官网下载安装),进入媒体功能包列表页面。URL地址:https://support.microsoft.com/en-us/topic/media-feature-pack-list-for-windows-n-editions-c1c6fffa-d052-8338-7a79-a4bb980a700a根据PC机上“Windows 版本”中的年份信息,在“Media Feature Packs by Windows version”区域单击对应版本媒体功能包的下载链接。进入对应版本的媒体功能包下载页面,在“Download information”中下载对应版本媒体功能包。进入本地下载目录,双击下载的媒体功能包文件,并根据提示完成安装。重启PC,使得安装的媒体功能包生效。重新运行脚本注:如以上操作仍无法解决问题,可通过华为云论坛进行提问解决
-
这里提供了使用MXNet实现手写数字图像识别应用的示例,帮助您使用ModelArts提供的PyCharm ToolKit工具,在本地快速完成模型的训练和部署。更多关于PyCharm ToolKit工具的描述,请参见《工具指南》。MNIST是一个手写体数字识别数据集,常被用作深度学习的入门样例。本示例将针对MNIST数据集,使用MXNet原生接口编写的模型训练脚本(ModelArts默认提供),在ModelArts PyCharm ToolKit中完成模型训练,并将此模型部署为在线服务。部署完成后,用户可通过在线服务识别输入图片中的数字。开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。本示例模型构建的步骤如下所示:准备工作本地已安装PyCharm 2019.2或以上版本,推荐Windows版本,Community或Professional均可,请单击PyCharm工具下载地址获取工具并在本地完成安装。使用PyCharm ToolKit远程连接Notebook开发环境,仅限PyCharm专业版。使用PyCharm ToolKit提交训练作业,社区版和专业版都支持,但仅限于提交旧版训练作业,暂不支持新版训练作业。已注册华为云帐号,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻结状态。在ModelArts管理控制台中,当前帐号已完成访问授权的配置。如果已完成,此操作可跳过。如未完成,请参考使用委托授权。针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。已在OBS服务中创建桶和文件夹,用于存放样例数据集以及模型。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表1所示的文件夹。创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。确保您使用的OBS目录与ModelArts在同一区域。表1 文件夹列表文件夹名称用途“dataset-mnist”用于存储数据集。“mnist-output”用于存储训练输出的模型和日志文件。步骤1:安装PyCharm ToolKit,并添加访问密钥获取PyCharm ToolKit工具安装包,单击ToolKit工具的下载地址,获得工具包。打开本地PyCharm工具。在PyCharm工具中,选择菜单栏的“File > Settings”,弹出“Settings”对话框。在“Settings”对话框中,首先单击左侧导航栏中的“Plugins”,然后单击右侧的设置图标,选择“Install Plugin from Disk”,弹出文件选择对话框。图1 选择从本地安装插件在弹出的对话框中,从本地目录选择ToolKit的工具zip包,然后单击“OK”。图2 选择插件文件单击“Restart IDE”重启PyCharm。在弹出的确认对话框中,单击“Restart”开始重启。图3 重启PyCharm重启成功后,打开一个Project,当PyCharm工具栏出现“ModelArts”页签,表示ToolKit工具已安装完成。图4 安装成功单击工具栏上的“ModelArts > Edit Credential”,在PyCharm中添加访问密钥。获取此帐号的访问密钥(“AK/SK”),详细操作请参见获取访问密钥。PyCharm ToolKit安装后,在ToolKit工具中添加访问密钥,详细操作请参见使用访问秘钥登录。图5 填写区域和访问密钥查看认证结果。在右下角Event Log区域中,当提示如下类似信息时,表示访问密钥添加成功。16:01 Validate Credential Success: The HUAWEI CLOUD credential is valid.步骤2:准备数据ModelArts在公共OBS桶中提供了MNIST数据集,命名为“Mnist-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-mnist”。单击数据集下载链接,将“Mnist-Data-Set”数据集下载至本地。在本地,将“Mnist-Data-Set.zip”压缩包解压。例如,解压至本地“Mnist-Data-Set”文件夹下。参考上传文件,使用批量上传方式将“Mnist-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-mnist”OBS路径下。“Mnist-Data-Set”数据集包含的内容如下所示,其中“.gz”为对应的压缩包。“t10k-images-idx3-ubyte”:验证集,共包含10000个样本。“t10k-images-idx3-ubyte.gz”:验证集的压缩包文件。“t10k-labels-idx1-ubyte”:验证集标签,共包含10000个样本的类别标签。“t10k-labels-idx1-ubyte.gz”:验证集标签的压缩包文件。“train-images-idx3-ubyte”:训练集,共包含60000个样本。“train-images-idx3-ubyte.gz”:训练集的压缩包文件。“train-labels-idx1-ubyte”:训练集标签,共包含60000个样本的类别标签。“train-labels-idx1-ubyte.gz”:训练集标签的压缩包文件。步骤3:编写训练代码ModelArts提供了本示例需要使用的训练代码,请获取并在PyCharm工程中打开。在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_MXNet_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目录中获取到训练代码文件“train_mnist.py”。打开PyCharm工具,单击“File > New Project”创建新工程, 在工程目录下创建“src”文件夹,并将训练代码文件“train_mnist.py”拷贝到“src”文件夹下。图6 将训练代码拷贝至src目录步骤4:训练模型数据和代码准备完成后,您可以创建一个训练作业,选用MXNet引擎,基于本地的train_mnist.py训练脚本,并最终生成一个可用的模型。本示例已提供编码完成的脚本(基于MXNet引擎的原生接口),如果使用自行编写的代码,请使用ModelArts支持的引擎类型及其对应版本的接口,并满足其要求。在PyCharm工具栏中,选择“ModelArts > Edit Training Job Configuration”。在弹出的对话框中,按照如下示例配置训练参数。“Job Name”:自动生成,首次提交训练作业时,该名称也可以自己指定。“AI Engine”:选择“MXNet”,版本为“MXNet-1.2.1-python3.6”。“Algorithm Source”:此处选择“Frequently-used”,代表常用框架。Custom表示自定义镜像,基于自定义镜像的训练作业案例请参见使用自定义镜像创建训练作业。“Specifications”:选择GPU规格。“OBS Path”:填写准备工作中创建的输出路径,用于存储训练输出模型和日志文件。“Data Path in OBS”:填写步骤2:准备数据中数据上传的OBS目录。此处需完整OBS路径,需包含OBS桶名称。此示例填写的值如图所示,请务必修改为您自己的OBS桶及路径。“Boot File Path”:选择本地的训练脚本“train_mnist.py”。“Code Directory”:选择启动脚本所在“src”目录。“Running Parameters”:是训练脚本所需要的输入参数,本样例中没有参数,无需填写。填写完成后,单击“Apply and Run”提交训练作业到云上ModelArts。说明:由于MNIST数据集数据较多,为提升训练效率,操作示例选择GPU训练。但是,GPU的费用高于CPU,请根据实际情况选择可用的资源池。图7 配置训练作业训练作业提交后,可在下方查看训练日志。当训练日志中出现“Current training job status: Successful”类似信息时,表示训练作业运行成功。图8 查看训练日志其中, “ModelArts Event Log”栏为工具打印的日志,“ModelArts Training Log”为训练脚本代码打印的日志。从日志可以看到,工具会先将本地工程的代码自动上传至云上OBS,然后自动提交一个训练作业。作业提交成功后,工具会实时从云上的训练环境获取日志并展示在“ModelArts Training Log”窗口,直至作业运行结束。在PyCharm的左边菜单栏,单击“ModelArts Explorer”,选择刚才提交的作业,双击版本号“V0001”,可以查看作业详情。图9 选择对应的训练作业及版本图10 训练作业详情步骤5:编写推理代码和配置文件,并上传至模型所在路径ModelArts提供了本示例需要使用的推理代码“customize_service.py”和配置文件“config.json”,文件路径和下载的git工程中的训练代码在同一目录。此推理代码和配置文件是ModelArts提供的示例。在步骤4:训练模型中,训练作业生成的模型存储在“test-modelarts/mnist-output/MA-mnist-11-30-16/output/V0001”路径下(其中MA-mnist-11-30-16是Job Name,如果配置时填写了自定义Job Name,则路径中就是自定义的Job Name),且系统将自动生成“model”文件夹,模型相关的文件存储在此目录下。将获取的“customize_service.py”和“config.json”文件,上传至OBS的“model”文件夹下。说明:如果训练作业运行多次,将在“训练输出位置”生成不同的版本,即“mnist-output”目录下将生成多种版本的目录,如“V0001”、“V0002”,请基于训练作业的版本,将文件上传至对应版本下的“model”文件夹内。前往OBS管理控制台,找到“test-modelarts”桶,然后进入“test-modelarts/mnist-output/MA-mnist-11-30-16/output/V001/model”路径,执行“上传对象”的操作。OBS的上传操作指导,请参见上传文件。步骤6:部署在线服务训练完成的模型还是存储在OBS路径中,您可以将此模型导入到ModelArts中并部署为在线服务。在训练作业版本号上单击鼠标右键,选择“Deploy to Service”。图11 部署为在线服务在弹出的对话框中,按照如下说明填写部署为在线服务的参数。“Service Name”:自动生成,也可以自定义。“Auto Stop”:勾选Auto Stop,表示启动自动停止功能,服务会在指定时间后自动停止。“Model Path”:自动填写,无需自己配置。与您选择的训练作业及其版本一致。“Environment Variables”:填写运行参数,设置为“input_data_name=images;input_data_shape=0,1,28,28;output_data_shape=0,10”。“input_data_name”:参数值必须是images。针对自己开发训练脚本的场景,此参数是必须设置的。您可以在导入模型时设置参数,也可以写到推理代码中。“input_data_shape”:代表NCHW。本示例的数值为“0,1,28,28”,表示设置了输入图片的规则,其中,输入预测图片大小必须是“28px*28px”。“output_data_shape”:置信度。本示例指定范围为“0~10”。表示输出结果会显示“0~9”中10个类别,属于每一个类别的概率。信息填写完成后,单击“OK”,开始服务部署。图12 部署为在线服务可以在最下方的日志栏查看服务部署进度。图13 查看部署进度模型部署上线需要花费一些时间,请耐心等待几分钟。当出现类似“Service status is running”信息时,表示服务部署成功。服务部署成功后,将展示在线服务的链接,单击链接可以进入ModelArts控制台部署上线 >在线服务的界面。说明:首次进入需要输入华为云帐号密码登录。图14 完成部署步骤7:测试服务在线服务部署成功后,您可以进入在线服务,发起预测请求进行测试。部署成功后,单击提供的链接进入ModelArts控制台的“部署上线 >在线服务”界面。找到刚部署的在线服务,单击服务名称,进入在线服务详情页面中,单击“预测”页签,进入预测页面。在“选择预测图片文件”右侧,单击“上传”按钮,上传一张黑底白字的图片,然后单击“预测”。预测完成后,预测结果显示区域将展示预测结果,根据预测结果内容,可识别出此图片的数字是“2”的概率为“1”。说明:由于推理代码和配置文件中已指定图片要求,用于预测的图片,大小必须为“28px*28px”,且图片必须是黑底白字。建议不要使用数据中自带的图片,可以使用Windows自带的画图工具绘制一张。图15 预测结果步骤8:清除相应资源,避免产生费用为避免产生不必要的费用,在完成试用后,建议您删除相关资源,如在线服务、训练作业及其OBS目录。进入ModelArts管理控制台,删除在线服务:在“在线服务”页面,单击操作列的“更多>删除”。在PyCharm菜单栏中,选择“ModelArts > Stop Training Job”停止此训练作业。或者进入ModelArts管理控制台,在“训练作业旧版”页面,单击操作列的“删除”,删除此训练作业。进入OBS管理控制台,删除数据准备阶段创建的OBS桶。先逐个删除桶内文件夹和文件,再执行删除桶的操作。
-
使用MindStudio进行PraNet模型onnx推理MindStudio是一套基于华为昇腾AI处理器开发的AI全栈开发平台,包括基于芯片的算子开发、以及自定义算子开发,同时还包括网络层的网络移植、优化和分析,另外在业务引擎层提供了一套可视化的AI引擎拖拽式编程服务,极大的降低了AI引擎的开发门槛,全平台通过Web的方式向开发者提供以下4项服务功能。MindStudio除了具有工程管理、编译、调试、运行等一般普通功能外,还能进行性能分析,算子比对,可以有效提高工作人员的开发效率。除此之外,MIndStudio具有远端环境,运行任务在远端实现,对于近端的个人设备的要求不高,用户交互体验很好,可以让我们随时随地进行使用。MindStudio可以单独安装在Windows上。在安装MindStudio前需要在Linux服务器上安装部署好Ascend-cann-toolkit开发套件包,之后在Windows上安装MindStudio,安装完成后通过配置远程连接的方式建立MindStudio所在的Windows服务器与Ascend-cann-toolkit开发套件包所在的Linux服务器的连接,实现全流程开发功能。一、概述PraNet是一种基于并行反向注意力的网络,用于精确分割结肠镜图像中的息肉。具体来说,PraNet首先使用并行的部分解码器(PPD)在高级层中聚合特征。基于这个组合特征,该网络生成一个全局映射图作为以下组件的初始引导区域。此外,该网络还使用反向注意模块(RA)挖掘边界线索,该模块能够建立区域和边界线索之间的关系。由于区域和边界之间的迭代交互机制,PraNet能够校正预测结果中相互矛盾的区域,从而提高分割精度。在五个具有挑战性的数据集,六个指标上定量和定性的实验结果表明,PraNet显著地提高了分割精度,并且在泛化性能和分割实时性(∼50fps)方面具有明显优势。二、服务器端推理环境准备1、 获取Pytorch onnx推理项目源代码仓git clone https://github.com/DengPingFan/PraNet.git -b master2、 获取模型评测脚本文件git clone https://github.com/plemeri/UACANet3、 当前目录结构4、 配置conda环境、安装依赖包5、 下载pth模型文件,将模型文件放入文件夹PraNet中。6、 准备数据集,本模型使用Kvasir数据集作为测试集。3、 客户端Mindstudio3.1 安装和配置环境前往网页https://www.hiascend.com/zh/software/mindstudio 并下载安装推理环境在远端服务器上已经配置完成。3.2 创建工程选择Ascend App 项目其中CANN版本应选择远端服务器,点击change添加远程服务器填写远端服务器信息,测试连接,连接成功后,选择CANN目录。点击完成。等待本地同步远端服务器CANN文件。同步成功后,选择ACL Project(python)项目,点击完成,完成新建项目。配置项目结构选择add python SDK选择ssh interpreter添加远程服务器选择python解释器配置本地文件夹与远程服务器映射从远端服务器拉取代码拉取代码成功数据预处理数据预处理将原始数据集转换为模型输入的数据,使用PraNet_preprocess.py第一个参数是数据集路径,第二个参数是数据预处理后的输出路径数据预处理成功生成PNG图片输入info文件,使用benchmark推理需要输入图片数据集的info文件,用于获取数据集。使用get_info.py脚本,输入已经获得的图片文件,输出生成图片数据集的info文件。第一个参数指定数据格式,第二个参数指定数据集路径,第三个参数指定输出info文件的路径,其余参数指定读取数据的长宽,运行后获得pre_bin.info文件运行PraNet_pth2onnx.py文件将pth文件导出为onnx文件第一个参数是读入pth的路径,第二个参数是输出onnx的路径使用onnxsim优化onnx文件onnx 转om转换om模型成功后,使用mindstudio remote终端执行benchmark推理启动ssh session,切换conda环境、工作目录使用Benchmark工具进行推理,配置benchmark工具需要的环境执行benchmark命令推理成功,需要对推理结果进行后处理,通过PraNet_postprocess.py进行后处理第一个参数是需要后处理文件的路径,第二个参数是处理后文件的输出路径。后处理成功后,使用Eval.py进行精度评估第一个参数是金标准路径,第二个参数是预测结果路径,第三个参数是评估结果输出路径310执行完毕,经该模型迁移至710,将上述流程在Ascend710上在执行一遍精度和性能均达标。Q&A:Q: 使用benchmark工具时报错./benchmark.x86_64: error while loading shared libraries: libacl_dvpp.so: cannot open shared object file: No such file or directoryA: 使用命令source /usr/local/Ascend/ascend-toolkit/set_env.sh激活环境后,错误消失Q: ATC转换模型后发生精度损失怎么办?A:可以在ATC转换命令后增加参数--precision_mode=allow_fp32_to_fp16--buffer_optimize=off_optimizeQ:pth转换onnx发生报错,找不到模型怎么办?A:将./lib/PraNet_Res2Net.py的res2net50_v1b_26w_4s(pretrained=True)修改为res2net50_v1b_26w_4s(pretrained=False)Q:模型的性能没有达到预期标准怎么办?A:使用命令aoe --framework 5 --model PraNet-19_dybs_sim_n.onnx --job_type 1 --output ./test --input_shape "input:1,3,352,352"其中model参数后使用onnx模型,job_type可选1或者2,output参数指定输出om的路径,input_shape指定了输入格式的大小以及batch
上滑加载中
推荐直播
-
华为开发者空间玩转DeepSeek
2025/03/13 周四 19:00-20:30
马欣 山东商业职业技术学院云计算专业讲师,山东大学、山东建筑大学等多所本科学校学生校外指导老师
同学们,想知道如何利用华为开发者空间部署自己的DeepSeek模型吗?想了解如何用DeepSeek在云主机上探索好玩的应用吗?想探讨如何利用DeepSeek在自己的专有云主机上辅助编程吗?让我们来一场云和AI的盛宴。
即将直播 -
华为云Metastudio×DeepSeek与RAG检索优化分享
2025/03/14 周五 16:00-17:30
大海 华为云学堂技术讲师 Cocl 华为云学堂技术讲师
本次直播将带来DeepSeek数字人解决方案,以及如何使用Embedding与Rerank实现检索优化实践,为开发者与企业提供参考,助力场景落地。
去报名
热门标签