-
External Network1. The login page shows "This site can't be reached" or gets stuck in loading status.Please checkIs the network connected?Is the proxy settings correct?Is the firewall security level too high or the firewall policy settings incorrect?2. Client timeoutUser doesn't login within 1 minute which causes the following error, please try to login again.Internal Network1. The login page shows "This site can't be reached" or gets stuck in loading status.Please checkIs the network connected?Is the proxy settings correct?Proxy settingsOpen System Settings – Network and Internet – ProxyChoose to use proxy server2. The login page shows "login failed"It took a long time to login and failed. After retrying, still failed.Please check if the proxy setting in CodeArts IDE is correct.Open Settings in IDESearch “proxy” and enter the used proxyClick Check Connection to ensure the network is connectedIf the network connection is available, please try to login again.HuaweiCloud开发工具 发表于2023-05-09 15:16:52 2023-05-09 15:16:52 最后回复 HuaweiCloud开发工具 2023-05-09 15:16:52176 0
-
0. 安装环境在开始之前,请检查是否已安装 Node.js (cid:link_6)。已安装的情况下,可在本地CMD或CodeArts IDE终端使用命令行 node -v 以及 npm -v 查看相应的安装版本。1. 实战教程(1)创建一个新的插件打开 CodeArts IDE,点击菜单“文件 -> 新建项目”,选择“扩展”。填入插件的相关信息,为了更好地理解后续教程,建议类型选择“支持可展示的Webview以及弹窗的扩展”或者“支持注册创建项目向导的扩展”。注意:发布商必须为插件市场中已创建的发布商,否则将无法在插件市场上发布插件,也可在发布前在 package.json 文件中修改。点击“创建”,等待插件项目创建完成,选择是否在当前窗口打开新建的插件项目。(2)使用CodeArts IDE调试你的前后端代码后端调试 在插件的 src/node/ 目录下存放的是插件的后端代码,后端代码运行在 nodejs 环境中,插件项目在创建的时候已经默认生成了一个后端文件 backend.ts,对于轻量级的插件,只需要在该文件中添加自己想要实现的业务功能即可,该文件包含了三个默认的方法 init()、run()、stop()。另外还默认添加了一个 doSomething 方法,这个方法仅仅是作为示例使用,开发者可以根据需要进行修改或删除。 这里我们简单介绍下 init,run 和 stop 方法:init 函数:作为该后端实例的初始化方法,可以在插件启动的时候进行一些初始化操作,写在该函数中的代码一定会先于 run 和其他函数被调用,这里需要注意的是,对于前端暴露给后端的函数不能在 init 函数中进行调用,也就是不能在 init 方法中执行 this.plugin.call 调用。run 函数:作为后端实例的主逻辑函数,承担着业务功能入口的作用,在该函数中可以方便地调用 CodeArts 的 API,比如 codearts.window.showInformationMessage(`hello world!`); 也可以调用前端暴露出来的函数,也就是可以在该方法中执行 this.plugin.call 调用。stop 函数:将会在插件被停止前被调用,如有需要可以进行一些资源清理的操作。 后端调试步骤:1. 添加断点:在 backend.ts 的 run() 函数中添加一个断点2. 打开调试窗口:按 F5 或者点击右上角调试工具栏中的开始调试按钮,打开【扩展开发宿主】窗口3. 进入断点,进行调试前端调试 与插件的后端不同,前端的代码最终将被编译并运行于浏览器环境中,前端的代码存放于 src/browser 目录中,插件项目在创建的时候会默认生成两个前端源码文件 frontend.ts 和 dynamic-webview.ts。这两个文件的内容与后端 backend.ts 的结构非常相似,只不过运行的环境不同而已,这里就不再重复对这两个文件中 init()、run()、stop() 方法进行介绍。由于前端运行在浏览器环境中,代码调试将借助于浏览器自带的调试功能。如果需要自动重新编译前端代码,可以在终端中执行命令 npm run watch-browser,然后再运行调试。在启动调试后如果修改了代码,只需在调试窗口按 Ctrl+R 重新加载窗口即可看到修改后的效果。 前端调试步骤:0. 前端调试前,需要先把 webpack.config.js 文件中的 devtool 配置为 'inline-source-map',然后在命令行执行 npm run prepare1. 添加断点:在 frontend.ts 的 run() 函数中添加一个断点2. 打开调试窗口:按 F5 或者点击右上角调试工具栏中的开始调试按钮,打开【扩展开发宿主】窗口3. 打开插件注册的视图,进入断点,进行前端的调试,若无法进入断点,可以使用 Ctrl + Shift + I 打开“开发人员工具”,再 Ctrl + R 重新加载当前窗口(3)前后端方法相互调用后端调用前端1. 在前端定义暴露给后端的方法打开 src/browser/frontend.ts 文件,其中 Frontend 类继承自 AbstractFrontend,除了需要实现的 init()、run()、stop() 这三个方法,我们自定义了一个 myApi(message: string) 方法,如果想要把 myApi 方法暴露给后端去调用,只需要在函数上添加 @expose('function_id') 修饰器。注意:多个expose修饰器中的function_id不能重复@expose('myplugin.page.myApi')public myApi(message: string): string { console.log(message); return 'this is a return value from frontend function';}2. 在后端调用前端暴露的方法打开 src/node/backend.ts 文件,其中 Backend 类继承自 AbstractBacend,需要实现 init(), run(), stop() 这三个方法,我们可以在 run() 方法中通过 this.plugin.call() 调用在前端定义的 myApi 方法并获取到返回值。public async run(): Promise<void> { const retValue = await this.plugin.call('view_type_of_your_plugin_view::myplugin.page.myApi', 'this is a function call from backend'); this.plugin.log(LogLevel.INFO, retValue);}前端调用后端类似的,我们可以在后端定义自己的方法并将方法暴露给前端调用。1. 在后端定义暴露给前端的方法打开 src/node/backend.ts 文件,自定义一个 doSomething(name: string) 方法。@expose('your_backend_function_identifier')public doSomething(name: string): boolean { codearts.window.showInformationMessage(`hello ${name}!`); return true;}2. 在前端调用后端暴露的方法打开 src/browser/frontend.ts 文件,在 run() 方法中通过 this.plugin.call() 调用在后端定义的 doSomething 方法。run(): void { this.plugin.call('your_backend_function_identifier', 'world');}(4)事件订阅:发布和监听事件在插件后端监听事件打开 src/node 目录下的 backend.ts 文件,在 Backend 类的 run() 方法中我们添加如下代码注册监听一个文件删除的事件。const registeredEvent = codearts.workspace.onDidDeleteFiles((event) => { codearts.window.showInformationMessage(`${event.files.join(',')} deleted.`);});this.plugin.context.subscriptions.push(registeredEvent);如果想要删除这个事件的监听可以直接调用 registeredEvent 的 dispose() 方法即可。大家可以尝试注册一些其他的事件并测试效果。在插件前端监听事件打开 src/browser 下的 fronted.ts 文件,我们通过在 Frontend 类的 run() 方法中添加如下代码注册监听一个改变当前活动的编辑器的事件。const eventHandler = (eventType: any, evt: any) => { // do something};this.plugin.subscribeEvent(EventType.WINDOW_ONDIDCHANGEACTIVETEXTEDITOR, eventHandler);前端取消事件注册的方式和后端并不相同,我们需要使用 plugin 对象的 unsubscribeEvent 方法取消注册的事件处理句柄。this.plugin.unsubscribeEvent(EventType.WINDOW_ONDIDCHANGEACTIVETEXTEDITOR, eventHandler);(5)国际化插件创建完后,在根目录下默认生成了 package.nls.json 和 package.nls.zh-cn.json 文件,package.nls.json 文件用来记录默认情况下的翻译词条,比如没有找到对应语言的翻译文件插件框架将默认采用该文件中的词条。package.nls.zh-cn.json 则是中文简体的翻译词条文件,如果插件需要支持其他语言也可以自行添加翻译文件。localize 方法需要提供了一个 key 参数来指定使用国际化文件中的词条索引键值,后续的不定参数用来对翻译词条中的占位符进行替换,词条中支持使用"{0} {1} {2}"这样的格式进行占位,localize 方法的第二个参数开始会被依次替换到占位符中。localize(key: string, ...args: any[]): string;示例如下:{ "plugin.welcome": "Welcome!", "plugin.hello": "Hello {0}!"}内置成员plugin的localize方法我们还在前后端内置的 plugin 成员变量中实现了 localize 方法。Frontend类 (src/browser/fronted.ts) 和 Backend类 (src/browser/backend.ts) 分别继承了 AbstractFrontend 前端类和 AbstractBackend 后端类,可以直接使用 this.plugin.localize 方法进行本地化翻译。// 不带参数this.plugin.localize('plugin.welcome');// 带参数this.plugin.localize('plugin.hello', 'world');直接引入localize方法import { localize } from '@cloudide/nls';使用如下代码就可以将词条填充为: Hello World!localize('plugin.hello', 'World');页面文件中的国际化方法通用插件可以使用 ejs 和 pug 引擎来渲染界面,无论是 ejs 还是 pug 引擎插件框架都为开发者提供了一个 l10n 内置对象,里面存储了当前所选语言的翻译词条列表。对于选择 ejs 引擎来做界面渲染的开发者可以在 ejs 文件中使用如下方式来对需要本地化的文案进行翻译:<%= l10n['plugin.hello'] %>对于使用 pug 引擎的开发者可以使用如下方式:#{l10n['plugin.hello']}(6)插件打包安装在终端执行命令“npm run package”打包插件在 CodeArts IDE 安装打包后的插件2. 插件样例插件注册视图标题栏行为:codearts-example-view-title-actions插件注册菜单:codearts-example-registerMenu插件注册项目创建向导:codearts-example-project-wizard3. 插件发布通过 IDE 直接发布到插件市场0. 若还没有创建发布商,请参考《CodeArts IDE插件市场帮助文档》,前往插件市场创建一个发布商。若已创建发布商但还未创建发布商凭证,请前往 插件市场发布商管理 创建,以下是创建凭证的步骤:(1)点击新增凭证(2)输入凭证名称,并设置过期时间(3)创建成功,请妥善保存发布商凭证,关闭窗口后将无法再次获得此凭证1. 发布前,请确认 package.json 中的 publisher 与发布商凭证对应的发布商的唯一标识相符2. 在 IDE 终端执行命令“npm run publish”,等待打包完成后输入发布商凭证,按回车确认3. 等待插件上传并发布4. 成功后,可以在插件市场的插件管理中看到已上传的插件,默认为灰度待发布,需要插件市场管理者权限审核待发布插件,然后由发布商角色为manager/developer/ower权限用户,将灰度发布状态插件提交正式发布,无需审核,该版本将自动变为正式版本,可以在CodeArts IDE插件市场中搜索到此插件。通过插件市场进行发布请参考《CodeArts IDE插件市场帮助文档》,按照步骤在插件市场上传和管理自己的插件。HuaweiCloud开发工具 发表于2023-04-27 09:22:57 2023-04-27 09:22:57 最后回复 HuaweiCloud开发工具 2023-04-27 09:22:57368 0
-
外部网络一、登录页显示“无法访问此网站”或一直处于加载状态解决方法:请检查①电脑网络是否连通②是否设置了代理服务器,设置是否正确③是否防火墙安全等级过高或防火墙策略设置不当二、客户端登录超时用户未在一分钟内登录,导致客户端提示“登录超时,请重试”,请尝试重新登录。企业内网一、登录页显示“无法访问此网站”或一直处于加载状态解决方法:请检查 ①电脑网络是否连通 ②系统代理设置是否正确代理设置:打开系统设置 - 网络和Internet - 代理,开启“使用代理服务器”二、登录页显示“登录失败”登录时间过长且登录失败,重试后仍然显示登录失败。解决方法:请检查CodeArts IDE代理设置是否正确。(1)打开IDE设置(2)搜索“proxy”,输入使用的代理(3)输入完成后点击“检查连接”,输入URL地址检查网络是否连通显示“连接成功”说明网络连接正常,请再次尝试登录。HuaweiCloud开发工具 发表于2023-04-17 17:24:17 2023-04-17 17:24:17 最后回复 yd_251015891 2024-01-30 10:49:461163 5
-
当今时代复杂多变,科技发展大势所趋,软件研发作为推动这个时代快速演进的发动机,每一位开发者都要保持敏锐的行业洞察力,与领跑趋势的能动性行业趋势日新月异。顺应国家产业发展需求,华为云将与高校共同探索新工科教学模式,结合企业应用情况和学生情况,助推新生工程教育,将加速云开发走进高校 。携华为云CodeArts IDE 走进高校,走入课堂,作为一站式云上开发创新工具,释放学生创新活力!主办单位:华为云计算公司、成都东软学院计算机与软件学院承办单位: 成都东软学院计算机与软件学院网络工程系>>活动报名入口<<学习内容:一、【云上开发初体验】【认识CodeArts IDE】:初识CodeArts IDE【云上开发体验】:华为云CodeArts IDE调用API语音合成二、【华为云软件开发进阶实践】【认识CodeArts】:从0到1深度体验CodeArts 【最佳案例实践】:华为端到端(HE2E)DevOps三、【华为云开发者认证高阶挑战】考取开发者认证证书,提升个人竞争力!了解开发者认证详情报名本活动后>>戳我申请<<1元兑换价值500元开发者认证考试券!活动福利:福利一:参与训练营学习,完成以下学习体验任务,达标即可抽取好礼!学习体验礼:完成【云上开发体验】华为云CodeArts IDE调用API语音合成,即可参与有机会抽取奖品:保温杯(共30份),本活动结束后导出完成名单进行统一抽奖。心得分享有礼:反馈学习体验截图+心得体会/产品改进建议等内容至本活动贴评论区,活动结束后,运营小姐姐将抽取优质内容,送出荣耀智能体脂2、保温杯(共12份)福利二:邀请好友共同学习,赢惊喜大礼! 邀请100人参与学习,排名1名,即可得HUAWEI MatePad1个。(限1份)邀请85人参与学习,排名2-3名,即可得HUAWEI WATCH GT2 1个。(限2份)邀请40人参与学习,排名4-5名,即可得华为AI音响或荣耀FlyPods青春版无线耳机1个。(限2份)邀请30人参与学习,排名6-7名,即可得华为10000mAh移动电源SuperCharge快充版或荣耀Xsports运动蓝牙耳机1个。(限2份)邀请20人参与学习,排名8-9名,即可得华为手环4或荣耀手环 5i 标准版1个。(限2份)邀请8人参与学习,排名10-40名,即可得华为定制三合一数据线1个(限30份)如何邀请好友:参与活动报名生成你的邀请二维码;好友通过你的邀请码报名活动参与学习,且好友需为首次注册华为云的新用户,参与学习验证标准:完成免费开通CodeArts及下载CodeArts IDE并登录华为云账号。加入社群,关注最新活动消息
-
实验内容:CodeArts IDE定位华为云开发者桌面,是利用华为自研IDE内核技术,面向华为云开发者提供的智能化可扩展桌面集成开发环境(IDE),内置华为自研JAVA语言开发支持,搭载华为云行业和产业开发套件,提供极致的一站式用云和开发体验。本实验基于华为云自研CodeArts IDE,指导用户通过使用华为云API,来实现一个文字合成语音的应用。实验分为了初阶、高阶、进阶三个版本。初阶版:预置好了一段工程示例,用户通过使用华为云API来实现语音合成的功能,从而合成语音文件高阶版:指导开发者如何利用华为云提供的SDK来编写代码,从而实现语音合成的程序进阶版:对高阶版的程序进行改造,利用CodeArts IDE提供的代码补全、重构等功能,指导开发者实现一个更复杂更高级的功能。实验目的:通过完成此实验让开发者学习使用华为云CodeArts IDE,通过其强大功能完成应用开发通过完成此实验让开发者更加了解华为云API,基于华为云强大的API可以实现更多复杂的功能和应用完成的注意事项:用户需要实名认证才能免费体验用户如果被华为云判断为黑产用户,则没有免费体验的权限用户免费体验示例,必须进入体验页面前提条件:华为云账号注册&实名认证 请注册华为云账号并完成实名认证,实验过程中请使用Chrome浏览器完成相关操作。华为云账号注册步骤请参考:cid:link_1实名认证操作步骤请参考:cid:link_21.CodeArts IDE Online 路径点击如下链接,访问CloudIDE产品首页(需登录华为云账号),点击“免费体验云开发”按钮,进入IDE界面cid:link_52.CodeArts IDE(客户端)语音合成体验路径2.1 体验CodeArts IDE: 2.1.1下载CodeArts IDE(客户端) ①访问如下CodeArts产品下载页(需登录华为云账号),点击下载,下载完成后安装到本地cid:link_02.1 2.1.2登录华为云,体验API ①安装完成后,打开CodeArts IDE客户端,点击右上角登录按钮,登录华为云账号; ②点击客户端右侧边栏中的华为云API插件,了解集成的华为云API能力(建议点击华为云API,将其拖动到左边侧边栏中,方面后续操作)[Q(1] 2.2 初阶版:体验语音合成API,合成一段语音2.2.1 环境准备(一键式小程序)①下载一键式环境搭建小程序到任意目录(此目录不包含中文目录,否则可能会出现未知问题) ,此小程序依赖你本地安装了7zip/WinRAR等解压工具,双击打开,如果你已经安装,输入y回车。②此时小程序会将2.2.2中的代码工程以及OpenJDK下载到小程序所在的目录中,并完成解压,打开代码工程,为工程配置JDK(如果出现未知问题,也可以按照2.2.2中一步步手动操作)2.2.2 环境准备(手动初始化)①下载OpenJDK11到本地目录,然后解压到任意路径(需要记住此路径)2.点击下载工程,解压到任意目录在CodeArts IDE客户端点击“文件”-> “打开…”、“打开文件夹”,找到刚刚的工程目录,选择文件夹,然后选择此工程内打开第一次加载Java插件需要完成初始化,需要等待一会儿,等待右下角的Initializing Java Language Server Features完成后开始下一步③为工程配置JDKJava Smart Assist插件加载完成后,此时右下角会显示Language Server is ready 以及 提示为配置JDK。点击左下角的“管理”按钮,选择“设置”,在弹出设置选项中依次选择“Java SmartAssist开发套件”->“Project Settings”-> “Project SDK目录选择”-> 找到刚刚JDK的解压目录 ->选择文件夹,此时工程右下角会显示加载JDK,需要稍等片刻选择完成后可以关闭此配置项,IDE会自动帮您加载JDK2.2.3 体验API①搜索API,在CodeArts IDE客户端内,打开“华为云API”,搜索“语音合成”,选择第一个搜索结果②右侧弹出RunTts详细情况,可以查看API相关信息,包括(API是干啥的,有哪些参数)然后选择“调试API”页签③输入需要合成的文字,例如“华为云软件开发生产线”,选择audio_format为.mp3,点击“调试”按钮,可以看到API的调试结果,可以看到“调试成功”,查看右下“响应结果”的“响应体”页签,可以看到返回的结果,“data”是音频的base64编码。④点击响应体右侧的“拷贝”图标按钮,再将左边侧边栏的华为云API页面切换到“工程页面”,找到src/resources目录,将结果备份到工程目录src/resources/APIResponse.json中⑤找到test目录下的测试类SisServiceTest.java,点击找到方法“should_return_audio_when_response_json()”,点击“Run‘All in SisServiceTest’”,最后可以看到目录下生成的音频文件。2.3 高阶版:通过编写代码实现语音合成的应用2.3.1 为程序配置AK/SK代码访问API需要AK/SK,参考文档获取用户AK/SK,将其输入到resources文件夹下的credentials.properties文件中的ak、sk中2.3.2 编写SDK代码①在editor中点击右键打开菜单,选择启用“华为云SDK代码补全助手”,在IDE中输入RunTts,DevKit会自动帮你联想出合适的API,选择RunTts,DevKit会帮你自动把SDK调用实现,并且将代码中涉及到的依赖自动import②点击编辑API参数,填入相关参数后,点击确定,生成API参数的代码③修改函数,在try括号中进行语句添加return response,将调用API的代码client.runTts返回的结果response作为函数的返回。④找到test目录下的测试类SisServiceTest.java,找到方法“should_return_audio_when_call_api”,点击“Run‘All in SisServiceTest’”,最后可以看到目录下生成的音频文件。2.4 进阶版:改造现有工程,实现更多功能(此阶段需要开发者具备一定编码能力)将方法TextToSpeech进行改造,可以让用户输入一段台词(男女对话),将其中男生的台词生成男生的语音,女生的台词生成女生的语音。3 FAQ: 3.1Java语言服务(Java Language Server)加载失败/在Java语言服务初始化时,如果关闭了IDE窗口、取消了加载等等情况,则会出现安装失败,点击重新安装即可。如果重新安装仍有问题,参考3.2解决方案。 3.2点击Java SmartAssist开发套件空白原因可能是因为Java语言服务初始化失败导致,彻底解决改问题,找到C盘/用户目录下的.codearts文件夹,删除language-server文件夹,重新启动CodeArts IDE客户端,此时会重新加载Java语言服务3.3JDK没有加载/加载失败这是因为工程的JDK没有配置,可以参考2.2.2中为第三步:工程配置JDK。另外还有一种一劳永与的方法:将下载并解压后的OpenJDK目录配置到电脑windows环境变量的JAVA_HOME变量中(如何设置windows环境变量,可以自行baidu),如图所示3.4在加载工程的时候出现Cannot resolve xxx或者 Could not transfer artifact xxx等这是因为工程所依赖的二方包没有下载下来,工程中默认链接的是官方的下载源(在国外),可能因为网络问题或者其他问题导致链接不稳定,此时把配置文件修改成链接到国内的下载源:点击下载最新的配置(settings.xml),将此目录(C盘用户目录下找到.codearts文件夹,然后按照此路径找到settings文件.codearts\language-server\2210.0.17\language-server\plugins\maven\lib\maven3\conf)下的文件替换3.5 登录/激活相关问题如果在实验过程中遇到CodeArts IDE登录问题,可以参考CodeArts IDE登录检查指导.docx
-
程序文件在windows上可以正常编译和运行,但是在线训练时显示编译异常,排除了以下可能性:1、JDK版本不正确(JDK版本为1.8,)2、未引入第三方库3、头文件异常(将本程序的头文件放到官方给的demo里可以成功提交)4、目录结构不正确(将源代码复制到官方demo并打包)5、文件夹内有其余文件请各位大佬指导下,谢谢!
-
idea使用git 合并分支 1. 将主分支(master)更新到自己的分支(dev) 右下角点击分支、checkout到自己分支下、点击自己的分支、选择 remote branches 中的 origin/master 分支,点击 "merge selected into current" checkout到自己分支下、点击Git/Pull、选择 origin/master 分支、点击Pull 两种方法都可。 2. 将自己的分支(dev)合并到主分支(master) checkout到主分支(master)、先Pull一下最新的代码、点击右下角主分支、在local branches里选择自己的分支点击"merge selected into current"、然后记得push下、推送至远程仓库 ———————————————— 原文链接:https://blog.csdn.net/m0_52366016/article/details/122131791
-
CodeArts for RemoteShell区域按键功能全局快捷键Ctrl + Shift + W关闭窗口Ctrl + K组合键基本编辑Ctrl + X剪切Ctrl + C复制Alt + Arrowup向上移动行Alt + Arrowdown向下移动行Shift + Alt + Arrowup在上面复制当前行Shift + Alt + Arrowdown在下面复制当前行Ctrl + Shift + K删除一行Ctrl + Enter在下面插入行Ctrl + Shift + Enter在上面插入行Ctrl + Shift + \跳转到匹配括号Ctrl + ]增加缩进Ctrl + [减少缩进Home转到行首End转到行尾Ctrl + Home转到文件开头Ctrl + End转到文件末尾Ctrl + Arrowup向上滚动行Ctrl + Arrowdown向下滚动行Alt + Pageup向上滚动页面Alt + Pagedown向下滚动页面Ctrl + Shift + [折叠区域Ctrl + Shift + ]展开区域Ctrl + K,Ctrl + [折叠所有子区域Ctrl + K,Ctrl + ]展开所有子区域Ctrl + K,Ctrl + 0折叠所有区域Ctrl + K,Ctrl + J展开所有区域Ctrl + K,Ctrl + C添加行注释Ctrl + K,Ctrl + U删除行注释Ctrl + /切换行注释Shift + Alt + A切换块注释Alt + Z切换自动换行导航Alt + Leftarrow后退Alt + Rightarrow前进查找&替换Ctrl + F查找Ctrl + H替换F3查找下一个Shift + F3查找上一个Alt + Enter选择所有的匹配Ctrl + D将选择添加到下一个查找匹配项Ctrl + K,Ctrl + D将上一个选择移到下一个查找匹配项Alt + C切换是否区分大小写Alt + R切换是否正则表达式Alt + W切换是否全字匹配多光标选择Alt + (鼠标点击)插入光标Ctrl + Alt + ↑在上方插入光标Ctrl + Alt + ↓在下方插入光标Ctrl + U撤消上一个光标操作Shift + Alt + I在所选的每一行的末尾插入光标Ctrl + L选择当前行Ctrl + Shift + L选择所有当前选择Ctrl + F2选择所有出现的当前单词Shift + Alt + →扩展选择Shift + Alt + ←收缩选择Shift + Alt + (拖曳鼠标)列(框)选择Ctrl + Shift + Alt + (箭头键)列(框)选择Ctrl + Shift + Alt + Pageup向前列(框)选择页面Ctrl + Shift + Alt + Pagedown向后列(框)选择页面代码编辑Ctrl + Space显示代码推荐Ctrl + K,Ctrl + X删除每一行行尾空格编辑器editorCtrl + F4,Ctrl + W关闭当前编辑页Ctrl + Shift + Pageup向左移动编辑器Ctrl + Shift + Pagedown向右移动编辑器Ctrl + \分割编辑器Ctrl + 1 第一编辑器组获取焦点Ctrl + 2第二编辑器组获取焦点Ctrl + 3第三编辑器组获取焦点Ctrl + K,Ctrl + LeftArrow让上一个编辑器组获取焦点Ctrl + K,Ctrl + RightArrow让下一个编辑器组获取焦点Ctrl + K,LeftArrow向左侧移动当前编辑器组Ctrl + K,RightArrow向右侧移动当前编辑器组文件管理Ctrl + S保存文件Ctrl + F4,Ctrl + W关闭文件Ctrl + Shift + T重新打开最近一次关闭的编辑器Ctrl + Tab打开下一个文件Ctrl + Shift + Tab打开上一个文件Ctrl + K,P复制当前活动文件的路径显示F11切换全屏Ctrl + =放大显示Ctrl + -缩小显示Ctrl + B显示/隐藏侧边栏Ctrl + K,Z禅模式,按两次esc退出终端Ctrl + Shift + `创建新终端Ctrl + C复制选择Ctrl + V粘贴到活动终端Ctrl + Arrowup向上滚动Ctrl + Arrowdown向下滚动Shift + Pageup向上滚动页面Shift + Pagedown向下滚动页面Ctrl + Home滚动到顶部Ctrl + End滚动到底部HuaweiCloud开发工具 发表于2022-12-28 10:20:30 2022-12-28 10:20:30 最后回复 HuaweiCloud开发工具 2022-12-28 10:20:30810 0
-
一、登录激活常见问题1、登录华为云失败,该如何处理?解决办法:检查本机是否需要配置proxy登录,如已配置请检查proxy是否有效。在"管理代理服务器"弹窗中配置全局代理,可以成功登录激活RemoteShell。二、proxy配置常见问题1、登录华为云服务器,proxy该如何设置?新建主机连接时,可在"管理代理服务器"弹窗配置。如需修改,可点击修改远程主机信息进行修改。2、proxy配置修改后不生效,如何解决?解决办法:可以尝试点击关闭该主机的所有连接,再重新操作连接。3、proxy配置检查连接失败,如何解决?解决办法:检查proxy的地址和端口是否有效,用户名或密码是否输入错误,修改后重新尝试。三、新建主机连接常见问题1、新建主机连接失败,可根据以下可能原因排查重试。检查用户名、密码是否输入正确。确保SSH服务已开启(默认端口为22),如果修改SSH默认的22端口,请确认要连接的远程端口已配置且生效,并添加对应的防火墙规则。确认当前使用proxy代理配置出口IP的全部地址的远程端口(SSH默认端口为22)已经允许。检查弹性云服务器的防火墙是否允许当前该主机使用的proxy代理配置的出口IP作为入口IP。请确认网络ACL没有禁用当前该主机使用的proxy代理配置的出口IP。2、遇到如下连接失败的场景,该如何解决?在连接远程主机时,遇到如下报错时,即为代理服务器未输入用户名和密码引起。解决办法:需在代理服务器弹窗中输入用户名和密码,如下图:在连接远程主机时,遇到如下报错时,即为网络超时引起。解决办法:确认proxy地址是否有效。在连接远程主机时,遇到如下报错时,即为错误的密码或主机IP引起。解决办法:修改正确密码后,重新尝试连接。或尝试移除该远程主机后,使用正确的主机地址进行新建远程连接。四、增加用户连接常见问题1、用户尝试打开较多终端时,受到限制?单个用户目前仅支持同时创建7个终端。2、用户名错误导致连接失败,无法修改用户名,如何操作才能连接成功?解决办法:不可直接修改用户名,请移除该用户连接后重新尝试使用正确的用户名新建连接。
-
简介本章节主要介绍使用RemoteShell插件的远程主机和用户连接、管理代理配置、用户操作远程文件系统及获取华为云服务器相关功能,支持开发者在完全不需要拥有远程开发环境源代码的情况下,也能轻松获得远程开发体验。使用CodeArts IDE for RemoteShell,您可以连接华为云ECS主机或任意主机。一、下载安装CodeArts IDE for Remoteshell现已开放公测,下载获取免费体验。二、创建主机连接RemoteShell支持创建主机(可多台)远程连接,在新建远程连接时,可选择使用或不使用代理进行连接,身份认证支持密码、密钥、双因子三种方式。当RemoteShell自动打开远程主机终端,成功获取远程文件系统时,说明主机连接成功,界面提示如下:在使用过程中,可对远程主机基本信息进行修改,也可以移除主机和断开所有主机连接。三、proxy配置管理可以新增,编辑,删除proxy。如果您需要配置全局代理,可以在“应用程序代理”中进行修改。如果您的远程主机需要使用代理进行连接,只可选用列表中其中一个或不使用代理,即在创建主机连接时选中某个代理或者不使用,或对已有主机信息进行修改。四、增加用户使用连接创建主机连接成功后,会自动增加当前用户的远程使用权限。同时也支持一台主机增加多用户连接。当RemoteShell自动打开远程主机终端,成功获取相应的远程文件系统,说明用户连接成功。在使用过程中,可对用户连接的基本信息进行修改,也可以移除该用户和断开该用户的连接。五、操作远程文件系统和远程终端创建主机连接成功后,即可操作远程文件系统。文件系统通过文件树右键菜单即可对内部文件/文件夹进行上传、下载、复制粘贴、删除、重命名等操作。可直接编辑文件代码,也可通过顶部菜单“编辑文件”功能或编辑区右键菜单进行相关操作。通过文件右键菜单可对文件和终端进行拆分、关闭等操作。与语言服务相关的代码补全、重构、跳转、修复、华为云SDK代码补全助等功能,请您持续关注后续迭代版本。2. 远程终端多终端分区布局:您可以在同一个页面中创建多个RemoteShell终端,并可以直接拖动窗口,随意组合成您喜欢的布局。六、获取华为云服务器首先需要使用华为云账号即可完成登录:2.登录成功后才能获取,绿色表示当前可连接的远程机,点击按钮可以继续执行连接到该主机的操作。HuaweiCloud开发工具 发表于2022-12-28 10:14:00 2022-12-28 10:14:00 最后回复 yd_227464670 2024-03-26 16:20:003465 3
-
如图我想把numpy创建的变量转换成Tensor但是报错如图
-
CodeArts IDE问题反馈
-
CodeArts定位为华为云开发者桌面,是一款智能化桌面集成开发环境,目标是让开发者更简单的使用华为云,以及更高效的基于华为云来构建应用。小编特意整理了一份关于这款软件的操作合集指南。一、下载安装CodeArtsCodeArts安装要求 至少需要 2 GB RAM ,但是推荐8 GB RAM; 至少需要 2.5 GB 硬盘空间,推荐SSD; 64位Microsoft Windows 10下载并安装CodeArts >>>前往CodeArts官方下载页面https://devcloud.cn-north-4.huaweicloud.com/codearts/download" \t "_blank 下载解压完成后,运行CodeArts-*.exe文件。 按照安装导航的步骤,选择个人安装配置进行安装。二、CodeArts登陆与激活 运行CodeArts,前往CodeArts下载激活https://bbs.huaweicloud.com/blogs/371339" \t "_blankCodeArts快捷键CodeArts快捷键(一)cid:link_0CodeArts快捷键(二)cid:link_1CodeArts智能代码补全代码补全可以有效的提升开发效率、减少拼写错误和输入代码量。CodeArts依赖于codearts.smartassist-java-ls插件实现代码补全功能。代码补全类型主要有:关键字基础补全名字补全类型补全方法补全片段补全缩写补全智能类型匹配补全标签属性补全CodeArts的代码补全具有能使用字段名称的驼峰字母作为关键字母快速搜索的特点。参考链接cid:link_2CodeArts智能搜索智能搜索是CodeArts的核心功能之一,依赖于Language Server,能够进行项目级别的搜索,比如整个项目全局搜索、文件搜索、类名搜索以及自定义范围的搜索等,通过快捷键Double Ctrl,或Ctrl + N,或Ctrl + Shift + L可以打开搜索框。智能搜索的类型主要有6大类:AllTypeMemberTextFileCommand参考链接cid:link_3CodeArts代码重构重构是通过改变现有程序结构而不改变其功能和用途来提高代码的可重用性和可维护性。CodeArts支持重构操作,提供了多种重要的重构类型,如下:重命名提取重构(方法、常数、接口、字段、变量、参数、超类)引入重构 (字段、常量、变量、参数、参数对象、函数变量、功能参数)复制重构移动和更改重构查找和替换重构内联重构 (方法、字段、变量、匿名类、超类、参数)设计模式与重构补全功能运用参考链接cid:link_4CodeArts常见问题cid:link_5
-
目录写在最前面ResNet18简介工具简介MindX SDK简介MindStudio环境搭建与配置MindStudio安装(Windows版本)SSH连接MindX SDK安装推理开发运行流程业务开发Python版本开发新建一个目录代码目录结构模型转换pipeline文件编排main.py文件编写代码运行C++版本开发新建一个项目代码目录结构模型转换(或者不转换)业务代码书写(修改)项目编译代码运行可参考的代码FAQ模型运行报错?如果想换个数据集怎么办?Python找不到模型路径?C++找不到模型路径?No Python interpreter configured for the module?SDK版本获取失败?结语1. 写在最前面这是一篇基于昇腾众智“ResNet18 for pytorch”代码的MindX SDK应用开发经验帖。原始项目代码可以从Ascend/ModelZoo-PyTorch - Gitee.com仓库中找到,根据原始项目代码,我们可以在MindStudio上快速实现一个ImageNet2012数据集1000分类应用的开发。整个过程中,MindStudio昇腾论坛上的教程基于MindStudio的MindX SDK应用开发全流程MindStudio昇腾_华为云论坛 (huaweicloud.com)也提供了很大的帮助。2. ResNet18简介ResNet是ImageNet竞赛中分类问题效果较好的网络,它引入了残差学习的概念,通过增加直连通道来保护信息的完整性,解决信息丢失、梯度消失、梯度爆炸等问题,让很深的网络也得以训练。ResNet有不同的网络层数,常用的有18-layer、34-layer、50-layer、101-layer、152-layer。ResNet18的含义是指网络中有18-layer。参考论文:He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.3. 工具简介3.1. MindX SDK介绍MindX SDK是华为昇腾AI处理器加速的AI软件开发套件(SDK), 提供了大量丰富的API,可以快速完成AI应用的开发3.2. MindStudioMindStudio提供了一个AI开发所需的一站式开发环境,支持模型开发、算子开发以及应用开发三个主流程中的开发任务依靠模型可视化、算力测试、IDE本地仿真调试等功能,MindStudio能够帮助开发者在一个工具上就能高效便捷地完成AI应用开发MindStudio采用了插件化扩展机制,开发者可以通过开发插件来扩展已有功能官网地址:MindStudio-昇腾社区 (hiascend.com)4. 环境搭建与配置因为我使用的Windows系统环境,所以这里提供Windows环境下MindStdio环境搭建和配置的全流程,其它系统可以查看安装方案-安装指南-MindStudio-文档首页-昇腾社区 (hiascend.com)4.1. MindStudio 安装(Windows版本)安装前的说明MindStudio可以单独安装在Windows上。在安装MindStudio前需要在Linux服务器上安装部署好Ascend-cann-toolkit开发套件包,之后在Windows上安装MindStudio,安装完成后通过配置远程连接的方式建立MindStudio所在的Windows服务器与Ascend-cann-toolkit开发套件包所在的Linux服务器的连接,实现全流程开发功能。我所采用的是windows共部署的方法2. 下载安装MindStudio前往MindStudio下载-昇腾社区 (hiascend.com)页面进行MindStudio软件包的下载,并且参照安装MindStudio-安装操作(Windows)完成MindStudio的安装。4.2. SSH连接在进行共部署之前,先确认SSH服务器连接成功按照上面图中所示,依次配置之后,点击Test Connection,显示下图就表示连接成功。4.3. MindX SDK安装远端环境MindX SDK安装Windows 场景下基于 MindStuido 的 SDK 应用开发,请先确保远端环境上 MindX SDK 软件包已安装完成,安装方式请参见《mxManufacture 用户指南》和 《mxVision 用户指南》的“使用命令行方式开发”>“安装 MindX SDK 开发套件” 章节。本地 CANN 安装①:在 Windows 本地打开 MindStudio,点击 Customize > Allsettings…,如下图所示:②:进入设置页面,点击 Appearance & Behavior > System Settings > CANN 进入 CANN 管理界面。完成后的状态如下图所示:3. 本地 MindX SDK安装与步骤 2 开始一致,进入设置页面,点击 Appearance & Behavior > System Settings > MindX SDK 进入 MindX SDK 管理界面。界面中 MindX SDK Location 为软件包的默认安装路径,默认安装路径为“C:\Users\用户名\Ascend\mindx_sdk”。 单击 Install SDK 进入 Installation settings 界面。参数说明Remote Connection远程连接的用户及 IPRemote CANN Location远端环境上 CANN 开发套件包的路 径,请配置到版本号一级Remote SDK Location远端环境上 SDK 的路径,请配置到 版本号一级。IDE 将同步该层级下的 include、opensource、python、 samples 文件夹到本地 Windows 环境Local SDK Location同步远端环境上 SDK 文件夹到本地 的路径。默认安装路径为“C:\Users\ 用户名\Ascend\mindx_sdk”5. 推理开发运行流程使用 MindStudio 开发和运行推理业务步骤如下:(1) 确定业务流程:根据业务功能如目标检测、图像分类、属性识别等,将 业务流程进行模块化。(2) 寻找合适插件:根据已有 SDK 插件的功能描述和规格限制来匹配业务功 能,当 SDK 提供的插件无法满足功能需求时,用户可以开发自定义插件。(3) 准备推理模型文件与数据:准备输入图片和下载模型,使用 Model Convertor 模型转换工具将模型转换为 om 格式。(4) 流程编排:以可视化的方式,开发数据流图,生成 pipeline 文件供应用框 架使用,配置文件以 json 格式编写,必须指定业务流名称、元件名称和 插件名称,并根据需要,补充元件属性和下游元件名称信息。(5) 业务集成:编写 C++程序或 Python 程序,调用业务流管理的 API ( MxStreamManager ), 先 进 行 初 始 化 , 再 加 载 业 务 流 配 置 文 件 (*.pipeline),然后根据 stream 配置文件中的 StreamName 往指定 Stream 获取输出数据,最后销毁 Stream。(6) 编译与运行应用:若新建的工程为 Python 版本的应用工程,不需要执行 编译应用工程,配置 Python 环境后,即可在远端服务器运行;若新建工 程为 C++版本的应用工程,则需要进行远端编译,远端编译时,会对工 程文件夹进行目录拷贝到远端连接的环境,编译成功后即可运行。6. 业务开发业务开发将按照python版和C++版分别进行介绍6.1.Python版本开发6.1.1 新建一个项目首先创建一个项目,选择一个自己喜欢的位置,比如图中所示,将在D:\Codes\python\Ascend\MyApp位置下创建自己的项目。选择好了后,点击下一步选择MindX SDK Project(Python)如图所示,被圈出来的4个项目,上面两个是空模板,在这里面创建我们自己的工程项目,因为我们要创建Python版的应用,所以选箭头指的这个;下面两个是官方给出的样例项目,如果对目录结构和应该写哪些代码不太熟悉的话,也可以创建一个样例项目先学习一下。选择完成后,点击Finish完成项目的创建6.1.2 代码目录结构Python版本的SDK项目大概有哪些文件呢?我们其实可以先打开一个官方样例项目先看看左边是我们自己创建的项目,右边是官方样例项目,对比之下我们可以发现,右边的样例项目主要有models(用于存储模型文件)、pipeline(流程编排文件)、python(项目python代码)和streamserver(实际开发中没用上)。PS: 其实也不一定要按照这个目录结构存放代码,只是这样结构更加清晰一些。我的工程目录文件是这样其中data用来存放数据图片6.1.3 模型转换下载模型首先我们先在ModelZoo-昇腾社区 (hiascend.com)中下载ResNet18模型和代码选Pytorch版分别下载模型脚本和模型其中模型脚本在“pipeline文件编排”和“main.py文件编写”章节得到应用解压后,我们只要这个onnx模型,同时,我们将names标签数据也一起放进models文件夹模型转换点击这个工具,进入模型转换界面选择待转换的模型路径选好后点一下任意一个位置,MindStudio会进入模型解析状态等待模型解析完成后,可以修改输出的模型名字,或者点击下一步点击Finish,开始转换转换完成稍等片刻,出现这个就表明转换完成如上图所示,在显示的路径中可以找到转化好的文件我们将om文件移动到models文件夹中,就可以进行接下去的步骤了6.1.4 pipeline文件编排pipeline文件编排是python版SDK最主要的推理开发步骤作为一个图片分类任务,主要包括以下几个步骤:初始化 → 图片数据传送 → 图片预处理 → 图片分类 → 序列化 → 结果传回由于ResNet18模型采用的是PIL库进行图片预处理,而非opencv,因此我们不在pipeline中进行图片预处理步骤(包括图片解码、缩放、裁剪),而是通过在main.py文件中进行图片预处理,再将结果传给推理业务因此pipeline流程编排为以下几个步骤初始化 → 获取图片数据 → 图片分类 → 序列化 → 结果传回可视化结果如下图所示:实际上,我们可以通过对之前下载好的代码文件中已有的pipeline进行简单修改,就可以完成我们自己的pipeline文件编排在下载好的ResNet18_for_PyTorch_{$version}__code中,路径./infer/sdk/data/config下可以找到resnet18.cfg和resnet8.pipeline两个文件,将这两个文件分别移动到models目录和pipeline目录下,如下图所示:对resnet18.pipeline进行参数修改我个人比较喜欢文本编辑的方式修改,如下图所示修改完成后,就可以进行main.py文件的编写了,离成功运行越来越近了!6.1.5 main.py文件编写根据pipeline文件编排中的说明,我们在main.py中需要完成3件事——对图片进行预处理+将预处理好的结果传给推理业务+获取推理结果实际上,我们依旧可以参考下载的代码文件中./infer/sdk/main.py文件中的做法,稍作修改就可以(1) 图片预处理主要用到resize、center_crop、preprocess和gen_protobuf(图片编码为推理业务需要的字节流)四个函数参照下载代码中的main.py文件,很容易就能得到这四个函数# resize and cropdef resize(img, size, interpolation=Image.BILINEAR): return img.resize(size[::-1], interpolation)def center_crop(img, out_height, out_width): height, width, _ = img.shape left = int((width - out_width) / 2) right = int((width + out_width) / 2) top = int((height - out_height) / 2) bottom = int((height + out_height) / 2) img = img[top:bottom, left:right] return img# preprocessor调用上面的两个函数进行图片缩放裁剪处理def preprocess(in_file): mean = [0.485, 0.456, 0.406] std = [0.229, 0.224, 0.225] img = Image.open(in_file).convert('RGB') w = img.size[0] h = img.size[1] if w > h: input_size = np.array([256, 256 * w / h]) else: input_size = np.array([256 * h / w, 256]) input_size = input_size.astype(int) print(input_size) img = resize(img, input_size) # transforms.Resize(256) img = np.array(img, dtype=np.float32) img = center_crop(img, 224, 224) # transforms.CenterCrop(224) img = img / 255. # transforms.ToTensor() img[..., 0] = (img[..., 0] - mean[0]) / std[0] img[..., 1] = (img[..., 1] - mean[1]) / std[1] img[..., 2] = (img[..., 2] - mean[2]) / std[2] img = img.transpose(2, 0, 1) # HWC -> CHW return img#generate protobuf调用preprocess生成传给推理业务的流数据def gen_protobuf(in_file): img_np = preprocess(in_file) vision_list = MxpiDataType.MxpiVisionList() vision_vec = vision_list.visionVec.add() vision_vec.visionInfo.format = 0 vision_vec.visionInfo.width = 224 vision_vec.visionInfo.height = 224 vision_vec.visionInfo.widthAligned = 224 vision_vec.visionInfo.heightAligned = 224 vision_vec.visionData.memType = 0 vision_vec.visionData.dataStr = img_np.tobytes() vision_vec.visionData.dataSize = len(img_np) protobuf = MxProtobufIn() protobuf.key = b"appsrc0" protobuf.type = b'MxTools.MxpiVisionList' protobuf.protobuf = vision_list.SerializeToString() protobuf_vec = InProtobufVector() protobuf_vec.push_back(protobuf) return protobuf_vec(2) main方法编写main方法的编写,可以基于官方样例代码中的main方法,在那个基础上,调用我们自己的预处理函数再传值给推理业务即可streamName: 业务流的名字,需要和pipeline文件中写的保持一致6.1.6 代码运行前面的步骤完成之后,我们就可以进行代码的运行了。(1) 选择一张测试用图片我们在data目录中放入自己想要的测试图片,比如我放的这张然后在main.py中设置好图片位置全部完成后应该为这样(2) 设置运行脚本接着,我们点击上图中箭头指的地方,设置运行脚本为main.py(3) 获取运行结果点击运行获得推理结果我们可以看到,推理结果为golden retriver 金毛寻回犬上网搜搜看,发现和我们测试的狗狗图片是一样的品种6.2 C++版本开发6.2.1 新建一个项目可以参见“Python版本开发-新建一个项目”章节,这次我们选择的是C++开发空项目应该为这样6.2.2 代码目录结构根据上图的说明,我们还需要建立一个models文件用于存放模型文件,完整的目录结构应该长这样值得注意的是,这里多了一个preprocess.py文件,是用于预处理图片的,在下面“代码运行”章节会详细说明6.2.3 模型转换(或者不转换)和Python版本开发一样,可以对下载到的onnx模型进行转换,也因为转换好的模型其实就是下载的模型中的om模型,所以也可以直接拿来用。6.2.4 业务代码书写(修改)(1) 将下载到的代码中,./infer/mxbase中的src代码和CMakeLists.txt文件全部移动到src目录下(2) 修改src代码①修改路径首先修改main.cpp中的文件路径再修改编译文件中的代码路径②修改业务代码因为我们下载到的代码中,推理结果只保留了推理的类别编号,并且需要传入测试图片所在的父目录。而我们想要让它测试一张图片,并且将推理结果输出类别名称,所以需要对main.cpp和Resnet18Classify.cpp中部分代码进行修改main.cpp主要修改传入图片的方法,像上图中一样,改为传单张图片Resnet18Classify.cpp主要修改一处,将结果储存到文本文件中的方法,修改为打印输出ShowResult函数(记得在.h头文件中也添上这个方法)APP_ERROR Resnet18Classify::ShowResult(const std::string &imgPath, std::vector> \ &BatchClsInfos) { uint32_t batchIndex = 0; std::string fileName = imgPath.substr(imgPath.find_last_of("/") + 1); for (const auto &clsInfos : BatchClsInfos) { std::string resultStr; for (const auto &clsInfo : clsInfos) { resultStr += std::to_string(clsInfo.classId) + "," + clsInfo.className + "," + "confidence: " + std::to_string(clsInfo.confidence) + ";"; } LogInfo << fileName << "->Result: " << resultStr; batchIndex++; } return APP_ERR_OK;}同时,在Process函数中,将SaveResult替换成ShowResult方法调用Process函数APP_ERROR Resnet18Classify::Process(const std::string &imgPath) { std::vector inputs = {}; std::string inputIdsFile = imgPath; APP_ERROR ret = ReadInputTensor(inputIdsFile, &inputs); if (ret != APP_ERR_OK) { LogError << "Read input ids failed, ret=" << ret << "."; return ret; } std::vector outputs = {}; ret = Inference(inputs, outputs); if (ret != APP_ERR_OK) { LogError << "Inference failed, ret=" << ret << "."; return ret; } std::vector> BatchClsInfos = {}; ret = PostProcess(outputs, BatchClsInfos); if (ret != APP_ERR_OK) { LogError << "PostProcess failed, ret=" << ret << "."; return ret; } ret = ShowResult(imgPath, BatchClsInfos); if (ret != APP_ERR_OK) { LogError << "Show result failed, ret=" << ret << "."; return ret; } return APP_ERR_OK;}Init函数中,注释掉生成txt文本的代码全部完成后,就可以进行下一步了!6.2.5 项目编译业务代码写好之后,我们需要编译整个文件点击编译后,等待下方提示编译成功后,就可以运行代码了!编译好的文件在out目录下6.2.6 代码运行由于Resnet18用的预处理方法是PIL,C++中没有相应的图片处理方法,为了精度更高一些,我们需要稍微麻烦一下,使用python编写一个预处理方法prepreocess.py,将处理后的图片再传给C++代码运行preprocess.py文件可以在下载好的代码中 ./infer/util中找到,根据实际需求稍作修改就可以使用。因此我们先准备一张测试图片,比如下面这张,命名为test.jpg①:先通过preprocess.py预处理生成test.bin②:运行项目先配置运行命令点击运行7 可参考的代码我已经将自己写好的项目上传到了GitHub上,有需要可以参考Python版SDK应用开发:cid:link_12C++版SDK应用开发:cid:link_118 FAQ模型运行报错?在模型转换的时候,是否注意了选择FP32? 默认状态下是FP16的方式进行转换。或者也可以直接将下载到的模型中的om模型文件直接拿来用如果想换个数据集怎么办?可以参考modelzoo中,下载ResNet18模型的地方的说明。可以通过ModelArts训练快速进行迁移学习。Python找不到模型路径?注意在pipeline流程编排中,模型路径若使用的是相对路径,则是相对main.py文件的位置的相对路径,而不是相对于pipeline文件的相对路径。因此注意根据自己的main.py文件位置修改模型的路径C++找不到模型路径?检查自己此时代码中的模型路径是否和已经编译好的代码路径一致,C++已经编译完成后再修改代码,则需要重新编译才能运行修改后结果。No Python interpreter configured for the module?SDK版本获取失败?注意这两个地方要选子路径,选择父路径会找不到版本号9 结语MindStudio官方文档非常详细,不一而足。所以在一开始查看的时候难免会有种觉得东西太多,不知道从哪里下手的感觉。但随着开发过程的推进,逐渐发现官方文档才是开发者最应该参考的内容。此外,遇到问题时,也可以在MindStudio 昇腾社区论坛中得到许多启发,相信大家在自己动手的过程中也能体会到这一点。Now, it's time to get your hands dirty!
-
1.注册成为华为云账户(如果您已经是华为云用户可跳过此步骤)2.登陆华为云并下载CodeArts3.安装CodeArts开始安装CodeArts可能会被操作系统拦截,遇到如下提示:点击更多信息,然后点击'运行'按钮即可继续安装。4. 登录激活首次打开CodeArts会提示登陆激活,使用华为云账号即可登陆激活。注1:CodeArts暂不支持开放下载试用,我们会根据已试用用户的反馈情况来择机给申请的候选用户提供试用机会。注2:如果不登录激活CodeArts客户端,相关源代码管理、华为云API功能将不能使用。前往>>>开始使用CodeartsHuaweiCloud开发工具 发表于2022-08-19 10:14:41 2022-08-19 10:14:41 最后回复 HuaweiCloud开发工具 2022-08-19 10:14:41172 0
上滑加载中
推荐直播
-
DTT年度收官盛典:华为开发者空间大咖汇,共探云端开发创新
2025/01/08 周三 16:30-18:00
Yawei 华为云开发工具和效率首席专家 Edwin 华为开发者空间产品总监
数字化转型进程持续加速,驱动着技术革新发展,华为开发者空间如何巧妙整合鸿蒙、昇腾、鲲鹏等核心资源,打破平台间的壁垒,实现跨平台协同?在科技迅猛发展的今天,开发者们如何迅速把握机遇,实现高效、创新的技术突破?DTT 年度收官盛典,将与大家共同探索华为开发者空间的创新奥秘。
回顾中 -
GaussDB应用实战:手把手带你写SQL
2025/01/09 周四 16:00-18:00
Steven 华为云学堂技术讲师
本期直播将围绕数据库中常用的数据类型、数据库对象、系统函数及操作符等内容展开介绍,帮助初学者掌握SQL入门级的基础语法。同时在线手把手教你写好SQL。
去报名 -
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
2025/01/10 周五 15:30-17:30
MindStudio布道师
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
即将直播
热门标签