• [行业资讯] IntelliJ IDEA 2021.3.1 发布,改进远程开发
    据Jetbrains官博显示显示,IntelliJ IDEA发布了2021.3.1版本,为减轻和降低未知的不可信来源对打开项目的相关风险,在IntelliJ IDEA 2020.3.3版本中引入了可信项目概念。在最新的v2021.3.1中,官方更改了Trusted Project对话框的行为和实现。该版本带来了一些重要修复,例如修复了对话框在macOS Big Sur错误窗口中的问题。
  • [其他] 配置本地IDE(VSCode ToolKit连接)
    ModelArts提供了一个VSCode插件工具,协助用户完成SSH远程连接Notebook。前提条件VSCode的下载地址: https://code.visualstudio.com/updates/v1_57VSCode版本要求:当前VSCode最新的版本1.58.2和VSCode最新的remote-ssh插件匹配有问题,建议用户使用VSCode 1.57.1。后续建议用户使用VSCode最新版本。用户本地PC或服务器的操作系统中建议先安装Python环境,创建一个Notebook实例,并开启远程SSH开发,配置远程访问IP白名单.Notebook实例状态处于“运行中”或“停止”状态都可以,如果Notebook实例是停止状态,VSCode插件会先启动实例再去连接。准备好密钥对。密钥对在用户第一次创建时,自动下载,之后使用相同的密钥时不会再有下载界面(用户一定要保存好),或者每次都使用新的密钥对。Step1 下载VSCode插件VSCode的插件工具包VSCode-ToolKit集成在ModelArts管理控制台中,请先下载并安装VSCode插件工具包,下载链接。Step2 安装VSCode插件在本地的VSCode开发环境中,如图所示,选择本地的VSCode插件并单击“安装”。图1 安装VSCode插件安装过程预计1~2分钟,如图2所示,请耐心等待。图2 安装过程安装完成后,系统右下角提示安装完成,导航左侧出现ModelArts图标和SSH远程连接图标,表示VSCode插件安装完成。图3 安装完成提示图4 安装完成Step3 登录VSCode插件在本地的VSCode开发环境中,单击ModelArts图标,单击“User Settings”,配置用户登录信息。图5 登录插件输入如下用户登录信息,单击“登录”。Name:自定义用户名,仅用于VSCode页面展示,不与任何华为云用户关联。AK:在华为云“帐号中心 > 我的凭证 > 访问密钥”中创建访问密钥,获取AK。SK:在华为云“帐号中心 > 我的凭证 > 访问密钥”中创建访问密钥,获取SK。选择站点:例如:北京四。此处的站点必须和远程连接的Notebook在同一个站点,否则会导致连接失败。也可以切换登录方式,采用如图所示方式输入用户信息后,Ctrl+S保存。图6 配置用户登录信息登录成功后显示Notebook实例列表。图7 登录成功Step4 连接Notebook实例在本地的VSCode开发环境中,右键单击实例名称,单击“Connect to Instance”,启动并连接Notebook实例。或者单击实例名称,在VSCode开发环境中显示Notebook实例详情页,单击“连接”,系统自动启动该Notebook实例并进行远程连接。图8 查看Notebook实例详情页第一次连接Notebook时,系统右下角会提示需要先配置密钥文件。根据系统提示单击“确定”。图9 配置密钥文件选择本地密钥pem文件(建议放在用户家目录下),单击“确定”后,插件自动连接远端Notebook实例。首次连接大约耗时1~2分钟,取决于本地的网络情况。VSCode环境左下角显示类似下图即为连接成功。图10 连接成功Step5 上传本地代码到云端开发环境在VSCode界面,单击“File > OpenFolder”打开云端路径。图11 Open Floder选择要打开的路径,单击“OK”。图12 选择文件路径此时,会在IDE左侧出现该开发环境下的目录结构,把想要上传的代码及其他文件直接拖拽至对应得文件夹内即完成本地代码上传至云端。Step6 远程调试代码在VSCode中打开要执行的代码文件,在执行代码之前需要选择合适的Python版本路径,单击下方默认的Python版本路径,此时在上方会出现该远程环境上所有的python版本,选择自己需要的版本即可。图13 选择Python版本对于打开的代码文件,单击run按钮,即可执行,可以在下方的Terminal中看到代码输出信息。如果要对代码进行debug调试,需要单击左侧“Run > Run and Debug”。选择当前打开的默认的python代码文件进行调试。对当前代码进行打断点,即在代码左侧进行单击,就会出现小红点。此时,即可按照正常的代码调试步骤对代码调试,在界面左边会显示debug信息,代码上方有相应的调试步骤。相关操作卸载VSCode插件操作如图所示。图14 卸载VSCode插件
  • [其他] ModelArts本地IDE
    ModelArts支持通过本地IDE环境远程连接到Notebook中,开发基于Pytorch、Tensorflow和MindSpore引擎的AI模型。创建Notebook实例在ModelArts控制台中创建一个Notebook开发环境实例,选择要使用的AI框架,并开启SSH远程开发功能。配置本地IDE远程连接Notebook在用户的PC端配置本地IDE环境,远程连接到ModelArts的开发环境中。支持通过PyCharm和VSCode 2类本地IDE连接云上Notebook。PyCharm和VSCode可以使用插件自动化配置,也可以手工配置。上传数据和代码至开发环境中,进行代码调试。代码直接拷贝至本地IDE中即可,本地IDE中会自动同步至云上开发环境。小于500MB数据量直接拷贝至本地IDE中即可。大于500MB数据量请先上传到OBS中,从OBS上传到默认存储EFS或云硬盘EVS。在本地IDE中编码和调试在本地IDE中编写代码,并调试运行。将调试好的训练脚本和用于训练的数据集上传至OBS目录。提交训练作业。提交训练作业有如下2种方式:在本地IDE中提交训练作业(当前仅支持提交到旧版训练作业)可以基于PyCharm ToolKit直接提交训练作业,具体参考使用PyCharm ToolKit提交训练作业。也可以通过调用ModelArts提供的SDK,创建训练作业,上云训练,调用SDK创建训练作业的操作请参见调用SDK创建训练作业。在ModelArts的Console控制台页面中提交训练作业,具体参考创建训练作业。
  • [问题求助] altas 200dk支不支持AScend -DMI,Benmark
    【功能模块】altas200dk 【操作步骤&问题 1我尝试在altas 200dk使用Ascend-dmi,好的首先我先尝试  固件版本:c75-驱动:1.0.8-candnn 10.1,根据文档Atlas 200 DKV100R020C10环境部署指南,只让我安装了pyacl,然后要用到AScend-dmi,他跟我说这是toolbox自带的,然后跳转到这个地址https://support.huaweicloud.com/instg-cli-cann/atlascli_03_0023.html。 然后我是rc模式嘛,肯定就是运行环境(推理),好的,我按照运行环境推理安装了toolbox和nnrt(几经波折:我普通用户HwHiAiUser安装toolbox会漏了aicpu,后面得root补充安装,好嘛报错了见日志1,怎么改也改不过来,后来放弃了直接全部root用户了),然后安装结束倒是没啥问题,但我现在ascend-dmi试一下看能用不,报错了(ascend-dmi: symbol lookup error: /home/HwHiAiUser/Ascend/nnrt/latest/acllib/lib64/libruntime.so: undefined symbol: _ZN6Msprof6Engine4InitERKSsPKNS0_10EngineIntfE。)然后我ldd -r了一下,具体信息见日志2,查看了了一下以来的库都在,然后我就去看了一下,ASend-dmi环境适配信息,好像没有alats200dk,然后我问头头,是不是搞错了啊,altas200dkrc不能用ascend-dmi和benmark啊,他说这altas 200dk,核心是ascend 310,型号是 3000,跟500只能小站一个核心,咋不能用,别糊涂了,然后我就开始了第二轮安装 2、这次我索性直接安装最新的cadnn 5.0.2alpha5,对应,固件c78,驱动1.0.11,然后下载的时候我发现咋没有toolbox,看了一下这个[altas 200dk -1.0.11](https://support.huaweicloud.com/environment-deployment-Atlas200DK1011/atlased_04_0016.html) 哦哦,原来集成了toolbox,不过功能简介怎么没包含nnrt,不管了继续安装,按照什么的指导我bash *.sh提示我很多文件夹不存在,也创建不了,安安静静的结束之后我的Ascend文件夹没有任何变化,我在root下执行了几次还是一样,后来想了想之前都是./*.run --install ,不如试试呗,万一有用呢,还真有点用至少创建了aclib和pyacl这些,我想了下再执行了一下bash update_200dk.sh,可以了,至少没报什么错了,具体见日志3,只是这中间创建的nnrt文件夹怎么被删除了,Ascend-dmi我记得之前就放在这路径下面,我find了以下,还是没找到,执行asend-dmi没有这个命令,我也不知道路径在哪里,看了一下各个驱动版本下的altas200dk安装都没有涉及到asend-dmi,开始怀疑是不是有asend-dmi,希望大伙能给个确切答案。 【日志信息1】 >HwHiAiUser@davinci-mini:~/Ascend/AICPU/Tuscany/common$ sudo ./Ascend310-aicpu_kernels-1.75.0.1.220.run --full [sudo] password for HwHiAiUser: Verifying archive integrity... 100% SHA256 checksums are OK. All good. Uncompressing ASCEND310 AICPU_KERNELS RUN PACKAGE 100% WARNING: base version was destroyed or not exist. Start time: 2021-10-29 06:09:21 LogFile: /var/log/ascend_seclog/ascend_install.log OperationLogFile: /var/log/ascend_seclog/operation.log /var/davinci/driver/version.info version meet requirement Old run package will be removed, and new run package will be installed The old install path of aicpu_kernels: /var/davinci/opp error:not find upgrade-tool. Run package install failed, please retry after check your device and reboot! 【日志信息2】 >HwHiAiUser@davinci-mini:~/Ascend$ ldd -r /home/HwHiAiUser/Ascend/nnrt/latest/acllib/lib64/libruntime.so linux-vdso.so.1 (0x0000fffeffffc000) libc_sec.so => /usr/lib64/libc_sec.so (0x0000fffeffe82000) libascend_hal.so => /usr/lib64/libascend_hal.so (0x0000fffeff80b000) libslog.so => /usr/lib64/libslog.so (0x0000fffeff7e7000) libmsprof.so => /usr/lib64/libmsprof.so (0x0000fffeff395000) libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000fffeff369000) libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000fffeff354000) libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000fffeff1c0000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000fffeff107000) libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000fffeff0e3000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000fffefef89000) /lib/ld-linux-aarch64.so.1 (0x0000fffefffd1000) libmmpa.so => /usr/lib64/libmmpa.so (0x0000fffefef6d000) libdevmmap.so => /usr/lib64/libdevmmap.so (0x0000fffefef52000) librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000fffefef3b000) undefined symbol: _ZN6Msprof6Engine4InitERKSsPKNS0_10EngineIntfE (/home/HwHiAiUser/Ascend/nnrt/latest/acllib/lib64/libruntime.so) undefined symbol: _ZN6Msprof6Engine6UnInitERKSs (/home/HwHiAiUser/Ascend/nnrt/latest/acllib/lib64/libruntime.so) 【日志信息3】 >root@davinci-mini:/home/HwHiAiUser/Ascend# ./update_200dk.sh start update Creating directory /home/HwHiAiUser/Ascend/nnrt Verifying archive integrity... 100% SHA256 checksums are OK. All good. Uncompressing ASCEND_RUN_PACKAGE 100% AICPU_FLAG is 0 /home/HwHiAiUser/Ascend/nnrt/run_package/Ascend310-aicpu_kernels_minirc-1.78.t30.0.b300.run [INFO] start upgrade Acllib Verifying archive integrity... 100% All good. Uncompressing ASCEND acllib RUN PACKAGE 100% [Acllib] [2021-11-02 09:28:12] [INFO]: Start time:2021-11-02 09:28:12 [Acllib] [2021-11-02 09:28:12] [INFO]: LogFile:/home/HwHiAiUser/var/log/ascend_seclog/ascend_install.log [Acllib] [2021-11-02 09:28:12] [INFO]: InputParams:--upgrade [Acllib] [2021-11-02 09:28:12] [INFO]: OperationLogFile:/home/HwHiAiUser/var/log/ascend_seclog/operation.log [Acllib] [2021-11-02 09:28:12] [INFO]: Check version matched! [Acllib] [2021-11-02 09:28:12] [INFO]: base version is 1.78.T30.0.B300. [Acllib] [2021-11-02 09:28:12] [INFO]: uninstall /home/HwHiAiUser/Ascend run [Acllib] [2021-11-02 09:28:19] [INFO]: step into run_acllib_uninstall.sh ...... [Acllib] [2021-11-02 09:28:19] [INFO]: uninstall targetdir /home/HwHiAiUser/Ascend, type run. [Acllib] [2021-11-02 09:28:19] [INFO]: Acllib package uninstall success! Uninstallation takes effect immediately. [Acllib] [2021-11-02 09:28:19] [INFO]: upgrade /home/HwHiAiUser/Ascend run [Acllib] [2021-11-02 09:28:19] [INFO]: step into run_acllib_upgrade.sh ...... [Acllib] [2021-11-02 09:28:19] [INFO]: upgrade targetdir /home/HwHiAiUser/Ascend, type run. [Acllib] [2021-11-02 09:28:19] [INFO]: acllib upgrade upgradePercentage:10% [Acllib] [2021-11-02 09:28:43] [INFO]: acllib upgrade upgradePercentage:100% [Acllib] [2021-11-02 09:28:43] [INFO]: Upgrade base version success. [Acllib] [2021-11-02 09:28:43] [INFO]: Acllib package upgrade success! The new version takes effect immediately. Please make sure that - LD_LIBRARY_PATH includes /home/HwHiAiUser/Ascend/acllib/lib64 [Acllib] [2021-11-02 09:28:43] [INFO]: End time:2021-11-02 09:28:43 [INFO] start upgrade pyacl Verifying archive integrity... 100% SHA256 checksums are OK. All good. Uncompressing pyACL 100% [pyACL] [2021-11-02 09:28:44] [INFO] upgrade start [pyACL] [2021-11-02 09:28:44] [WARNING] this package version installed now, it will be reinstalled [pyACL] [2021-11-02 09:28:44] [INFO] Ascend-pyACL-20.2.rc1 upgrade success cat: /var/davinci/aicpu_kernels/version.info: No such file or directory [INFO] Aicpu is not installed, start the installation Verifying archive integrity... 100% All good. Uncompressing ASCEND aicpu_kernels RUN PACKAGE 100% [Aicpu] [2021-11-02 09:28:51] [INFO]: Start time: 2021-11-02 09:28:51 [Aicpu] [2021-11-02 09:29:09] [INFO]: LogFile: /home/HwHiAiUser/var/log/ascend_seclog/ascend_install.log [Aicpu] [2021-11-02 09:29:09] [INFO]: OperationLogFile: /home/HwHiAiUser/var/log/ascend_seclog/operation.log [Aicpu] [2021-11-02 09:29:10] [INFO]: version meet requirement [Aicpu] [2021-11-02 09:29:10] [INFO]: Aicpu_kernels package has been installed on the path /home/HwHiAiUser/Ascend, the version is 1.78.T30.0.B300, and the version of this package is 1.78.T30.0.B300, do you want to continue? [y/n] [Aicpu] [2021-11-02 09:29:10] [WARNING]: Old run package will be removed, and new run package will be installed [Aicpu] [2021-11-02 09:29:10] [INFO]: The old install path of aicpu_kernels: /home/HwHiAiUser/Ascend [Aicpu] [2021-11-02 09:29:10] [INFO]: upgradePercentage: 20% [Aicpu] [2021-11-02 09:29:11] [INFO]: upgradePercentage: 50% [Aicpu] [2021-11-02 09:29:11] [INFO]: upgradePercentage: 100% [Aicpu] [2021-11-02 09:29:11] [INFO]: Aicpu_kernels package install success! The new version takes effect immediately. [Aicpu] [2021-11-02 09:29:11] [INFO]: Using requirements: when aicpu module install finished or before you run the aicpu module, execute the command [ export ASCEND_AICPU_PATH=/home/HwHiAiUser/Ascend ] to set the environment path. [Aicpu] [2021-11-02 09:29:11] [INFO]: End time: 2021-11-02 09:29:11 If the upgrade is successful, switch to the running user and run the source ~/.bashrc command to make the environment variables take effect.
  • [问题求助] IntelliJ IDEA Ultimate软件支持鲲鹏环境吗
    IntelliJ IDEA Ultimate软件支持鲲鹏环境吗
  • [技术干货] 智能OCR图像文字识别
    体验通过DevStar服务的“智能OCR图像文字识别”模板一站式生成应用代码并部署到函数工作流FunctionGraph,实现识别指定图片中的文字信息并显示在页面上。您将学到什么您将学会如何通过DevStar实现一站式快速开发基于Serverless的智能识别图片文字信息应用,并在此基础上基于华为云EI产品开放能力进行对应用的自定义扩展,体验云上开发的乐趣您需要什么硬件要求PC电脑软件要求Chrome浏览器需要的知识点熟悉常规电脑操作常识具备基本的软件开发能力环境准备注册华为云账号、实名认证如果您已拥有华为账号且已通过实名认证,可直接体验。若您还没有通过实名认证的账号,请注册华为账号,然后完成实名认证(推荐使用“扫码认证”方式,即时完成)。参考如何实名认证和如何扫码认证。应用开发及部署使用Chrome浏览器,登录DevStar,在搜索栏输入“智能OCR图像文字识别”关键字进行搜索,在卡片上点击“开发应用”首次使用可以开通服务“同意授权”并继续创建应用在应用创建页面根据页面提示完成项目、应用名信息输入注:如果没有任何DevCloud项目,可点击“创建项目”新建一个项目注:在创建项目过程中如提示“该企业租户服务处于关闭状态 ”,请点击“立即开通”。然后在DevCloud服务购买页面,选择基础版进行购买操作(基础版5人及以下免费)。开通后,继续完成项目创建注:创建完项目后,点击所属项目选项列表旁的“刷新”图标,可显示新创建的项目,选中并完成页面其它信息输入,点击“立即创建”按钮,进入应用详情界面等待应用使用的代码仓等资源创建完成(约20s),点击左侧的“应用部署”菜单,查看依赖云服务的状态。若有云服务未开通,则点击“去开通”按钮完成服务开通。查看文字识别服务增值税发票识别的开通状态,如果未开通,点击“开通服务”。注意:增值税发票识别API按需付费模式每月0~1千次(含)调用免费,如果超出则会产生费用,计费详情可点击“参考价格”查看。函数工作流FunctionGraph若实际使用量每月调用不超过100万次且计量时间不超过400,000 GB-秒免费,如果超过则会产生费用,计费详情可点击“参考价格”查看。完成服务开通后,点击对应服务的刷新按钮,查看服务开通状态。依赖的云服务全部完成开通后,点击“部署”按钮,进行应用部署。待部署完成后,点击“看看”链接访问部署到函数工作流的云函数。在智能OCR识别页面,点击“选择文件”上传发票图片,体验使用OCR精准识别发票图片上的文字。注:上传的发票图片为JPG/JPEG/BMP/PNG格式,建议大小不超过5M(超出有可能会失败),推荐1M。进阶体验-使用Huawei Cloud Toolkit在本地进行快速开发Huawei Cloud Toolkit是华为云提供的IDE插件工具,支持VSCode平台和Intellij平台。支持查看华为云开放API的文档、SDK、错误码、示例代码、代码模板;基于代码模板快速创建本地工程;智能代码自动补全等场景,能极大提高开发者在本地开发基于华为云API的应用的开发效率。这里我们使用Huawei Cloud Toolkit辅助,给原来的代码快速扩展一个新的“通用文本识别”功能。在应用详情页面的代码仓库栏,点击右边的“克隆/下载”,复制弹出框中的https链接,然后在本地命令行中输入:git clone <仓库链接>,既可把代码仓克隆到本地。(克隆的时候会提示输入用户名和密码,用户名为<华为云账号名>/<华为云账号名形式>,具体可以在codehub的配置页面查找到https://devcloud.cn-north-4.huaweicloud.com/codehub/https)使用本地IDE(使用Intellij或者VSCode)打开刚克隆的代码,这里以Intellij为例。安装 Huawei Cloud Toolkit插件,Intellij点击 File -> Settings -> Plugins,在 Marketplace中搜索“HuaweiCloud Toolkit”,点击“install”进行安装。注:如果您使用VSCode,也可以在VSCode插件市场中搜索“HuaweiCloud”,选择安装“HuaweiCloud Extension Pack”这个插件。打开链接https://console.huaweicloud.com/iam/?region=#/mine/accessKey,点击“新增访问秘钥”添加一个您租户账号的AK/SK。在Intellij中,点击左侧的“Huawei Cloud Toolkit”标签,点击登录图标。将刚才生成的AK/SK(注意excel中的AK/SK后面有一个空格,需要去掉)填入配置中,点击“apply”和“ok”按钮,插件即可登录成功。登录成功后我们在右侧搜索栏搜索“OCR”。选择“云服务”标签下的“文字识别 OCR”,可以看到OCR服务出了支持身份证识别外,还支持很多的其他的文字识别功能。这里我们选择下方的“通用文字识别”,点击“查看文档”。接口文档包含的接口的说明,请求参数,返回参数的详细信息,这里看到这个接口的请求参数只需要一个图片的base64字符串即可。在对要实现的接口有了了解后,我们来改造一下原理的代码。在Intellij中打开代码中的“java”文件。为了方便扩展功能,我们已经在代码中预留好扩展的位置。找到代码的第50行,按注释提示添加一个识别类型:修改后:接着我们来实现调用接口的逻辑,找到代码中第101行的函数“recognizeGeneralText”:把注释删掉,输入我们刚才搜到的api名称“recognizeGeneral”,这是我们看到会有自动提示弹出,选择第一个提示选择后可以看到API调用的基础代码已经被插入:然后我们只需要简单的添加一下输出和输入即可实现API调用的功能,添加下图红框里面的两行代码:到这里我们的代码已经完成,为了使用“通用文本识别”功能,我们需要到OCR服务开通该服务,打开OCR页面:https://console.huaweicloud.com/ocr/#/ocr/overview,找到“通用文本识别”点击开通服务。(按需计费模式下,每个月的前1000次调用免费)将代码push到远端的git仓库,回到我们的应用部署页面,重新部署应用(请参考本文“应用开发及部署小节步骤6、7”),现在可以上传一张带有文字内容的图片,体验添加的通用文本识别功能,识别图片中的文本。到这里我们已经实现了一个新的识别功能的添加,您可以继续查看OCR服务的文档,添加更多的文本识别功能到项目中。恭喜您已完成体验,您还可以了解和体验DevStar AI识图作诗应用开发模板。
  • [交流分享] Java入门
    过去学习编程语言的方法、经验和教训过去学习了C/C++和Python,以下是我的一些经验与教训:学习的时候看教材,但不局限于教材,要与相关参考书籍相结合,教材的版本可能比较老旧,要注意知识的更新,多看一些讲得更加具体、全面的书,例如在学习C++的过程中,《C++ Primer Plus》就给了我很大的帮助。切勿只看书不实践,要将理论与实际相结合,勤写代码才是快速提升对语言掌握能力的最佳方法。纸上谈兵并不可取,实践出真知。可以找相关的视频、博客进行观看学习,别人的讲解有时候可以让你豁然开朗,可以减少许多不必要的时间浪费。遇到不会的问题,要积极查阅各种资料,利用能利用的资源,现在各种资源鱼龙混杂,要有一定的鉴别能力,不要别人说啥就是啥,要有质疑的能力。高级语言的编译型和解释型语言的编译执行过程的区别编译型语言编译型语言是一次性把源文件编译成机器语言,生成可执行文件,运行时不需要重新编译,一次编译永久执行。执行效率高,但跨平台性差。编译型语言编译器处理流程:源代码→ 预处理器→ 编译器→ 目标代码→ 链接器→ 可执行程序→执行。解释型语言解释性语言源代码不需要预先编译,在运行时,边解释边运行。执行效率低,但跨平台性好。解释型语言解释器处理流程:源代码→解释器中间代码(字节码)和机器指令→执行。Java语言的特点,与C/C++, Python的异同与C/C++的区别Java语言是C++语言的一个“简化”版本。有垃圾自动回收机制,没有头文件、指针运算、虚基类等。Java的面向对象比C++更彻底,一切皆对象,Java与C++的主要不同点在于多继承,在Java中,取而代之的是接口概念。Java适用于网络/分布式环境。从一开始,Java程序能够防范各种攻击,其中包括:运行时堆栈溢出。破坏自己进程空间之外的内存。未经授权读写文件。可移植性更强,Java编译器通过生成与特定计算机体系结构无关的字节码指令,不仅可以在任何机器上解释执行,而且可以动态地翻译成本地机器代码,跨平台能力强,一次编译处处运行,只要装有不同平台对应的JVM,便可在不同操作系统上解释执行。Java与C/C++相比更具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量。与Python的区别Java和Python之间最大的区别之一就是两种语言处理变量的方式。Java强迫你在第一次声明变量时就定义其类型并且不允许你在后面的程序中更改它的类型,是静态类型。而Python不许声明时定义变量类型,可以改变一个变量的类型,是动态类型。Java的可移植性更强与上文同理。Python有非常丰富的库,程序的开发效率高。JDK、JRE、JVM是什么,它们之间的联系和区别JDKJDK,全称Java Development Kit,是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的Java应用程序。JDK是整个Java开发的核心。JREJRE,全称Java Runtime Environment,是指Java的运行环境,是可以在其上运行、测试和传输应用程序的Java平台。JVMJVM,全称Java Virtual Machine(Java虚拟机),是一种用于计算设备的规范,它是一个虚构出来的计算机,引入JVM后,Java语言在不同平台上运行时不需要重新编译。JVM是Java跨平台的核心。关系JDK包含了Java的运行环境(即JRE)和Java工具。JRE包含了一个Java虚拟机(JVM)以及一些标准的类别函数库。总的来说,JDK、JRE、JVM三者都处在一个包含关系内,JDK包含JRE,而JRE又包含JVM。
  • [其他] 使用PyCharm ToolKit工具快速实现模型训练和部署
    这里简单提供了使用MXNet实现手写数字图像识别应用的示例,帮助您使用ModelArts提供的PyCharm ToolKit工具,在本地快速完成模型的训练和部署。MNIST是一个手写体数字识别数据集,常被用作深度学习的入门样例。本示例将针对MNIST数据集,使用MXNet原生接口编写的模型训练脚本(ModelArts默认提供),在ModelArts PyCharm ToolKit中完成模型训练,并将此模型部署为在线服务。部署完成后,用户可通过在线服务识别输入图片中的数字。开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。本示例模型构建的步骤如下所示:准备工作本地已安装PyCharm 2019.2或以上版本,推荐Windows版本,Community或Professional均可,请单击PyCharm工具下载地址获取工具并在本地完成安装。已注册华为云帐号,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻结状态。在ModelArts管理控制台中,当前帐号已完成访问授权的配置。如果已完成,此操作可跳过。如未完成,请参考使用委托授权。针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。已在OBS服务中创建桶和文件夹,用于存放样例数据集以及模型。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表1所示的文件夹。创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。确保您使用的OBS目录与ModelArts在同一区域。表1 文件夹列表步骤1:安装PyCharm ToolKit,并添加访问密钥获取PyCharm ToolKit工具安装包,单击ToolKit工具的下载地址,获得工具包。打开本地PyCharm工具。在PyCharm工具中,选择菜单栏的“File > Settings”,弹出“Settings”对话框。在“Settings”对话框中,首先单击左侧导航栏中的“Plugins”,然后单击右侧的设置图标,选择“Install Plugin from Disk”,弹出文件选择对话框。图1 选择从本地安装插件在弹出的对话框中,从本地目录选择ToolKit的工具包,然后单击“OK”。图2 选择插件文件单击“Restart IDE”重启PyCharm。在弹出的确认对话框中,单击“Restart”开始重启。图3 重启PyCharm重启成功后,当PyCharm工具栏出现“ModelArts”页签,表示ToolKit工具已安装完成。图4 安装成功获取访问密钥,并在PyCharm中添加密钥。获取此帐号的访问密钥(“AK/SK”),详细操作请参见获取访问密钥。PyCharm ToolKit安装后,在ToolKit工具中添加访问密钥,详细操作请参见使用访问秘钥登录。图5 填写区域和访问密钥查看认证结果。在Event Log区域中,当提示如下类似信息时,表示访问密钥添加成功。16:01Validate 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”,代表常用框架。“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:测试服务在线服务部署成功后,您可以进入在线服务,发起预测请求进行测试。部署成功后,单击提供的链接进入在线服务。在线服务详情页面中,单击“预测”页签,进入预测页面。在“选择预测图片文件”右侧,单击“上传”按钮,上传一张黑底白字的图片,然后单击“预测”。预测完成后,预测结果显示区域将展示预测结果,根据预测结果内容,可识别出此图片的数字是“8”的概率为“1”。说明:由于推理代码和配置文件中已指定图片要求,用于预测的图片,大小必须为“28px*28px”,且图片必须是黑底白字。建议不要使用数据中自带的图片,可以使用Windows自带的画图工具绘制一张。图15 预测结果步骤8:清除相应资源,避免产生费用为避免产生不必要的费用,在完成试用后,建议您删除相关资源,如在线服务、训练作业及其OBS目录。进入ModelArts管理控制台,删除在线服务:在“在线服务”页面,单击操作列的“更多>删除”。进入ModelArts管理控制台,删除训练作业:在“训练作业”页面,单击操作列的“删除”。进入OBS管理控制台,删除数据准备阶段创建的OBS桶。先逐个删除桶内文件夹和文件,再执行删除桶的操作。
  • [技术干货] IDEA数据库工具--database
    我们开发中经常用到一些第三方连接数据库的工具 ( navicat/SQLyog/sqldeveloper等 ) 进行调试, 这样回来切换工具很不方便。其实IDEA集成了一个数据库管理工具,可以可视化管理很多种类的数据库。配置IDEA版本:2020.3Windows 101、打开IDEA工具,选择view---Tool Windows---Database鼠标点击+----Data Source,会出现很多种数据库类型,点击自己对应的就行。2、 本人以oracle为例,进行连接先点击switch,配置对应的oracle驱动信息其次按要求填写对应的连接信息填写完成后,点击Test Connection按钮,查看是否可以正常连接。连接成功,会提示下方的语句。3、访问数据库简单的查询到此结束。还可以创建表等一些信息,后续再详细写!
  • [产品体验官] 【中级体验任务】Huawei Cloud Toolkit Intellij插件体验测评
    体验形式:本次体验采用有奖征集体验评测报告+群内交流反馈的形式。我们将在体验官群内(点击链接申请成为体验官)筛选体验官若干位,然后按照体验官任务卡的要求操作和体验产品,最后输出体验报告(完成PPT任务卡填写即可),并按照华为云账号名+微信昵称+体验报告附件的格式回复至本帖。我们会从中筛选出高质量体验报告,给予礼品奖励和积分奖励。  产品简介:Huawei Cloud Toolkit Intellij插件,提供在Intellij中的以下功能:1、自动补全华为云sdk代码。2、查找和浏览华为云api。3、查找和浏览DevStar代码模板和Codelabs代码示例。4、根据DevStar代码模板创建工程。  体验流程:1、体验场景描述您是一位使用华为云的Java软件开发工程师,最喜爱的IDE是Intellij,这天你正准备使用华为云的AI能力开发一个项目,为了更高效地使用华为云的能力,您在Intellij上面安装了Huawei Cloud Toolkit插件。2、体验流程在Intellij上安装Huawei Cloud Toolkit插件 -> 配置华为云AK/SK -> 使用DevStar代码模板创建Spring项目 -> 使用 API 搜索功能查找相关的人脸识别API -> 使用代码自动补全功能和SDK自动引入功能编写代码 -> 实现人脸检测和人脸对比3、体验完成条件使用华为云API实现人脸检测和人脸对比4、体验报告模板详见附件  活动流程:1.如您已经成为产品体验官,小助手会在群内发布招募公告,直接报名即可。2.如您还未申请成为体验官,请点击链接先申请成为体验官,再参与活动哦~申请链接:https://developer.huaweicloud.com/activity/experience-officer.html  ☆奖品设置如下☆参与奖:若干名活动要求:按照要求完成任务卡奖品:公牛插排1个+3体验官积分    优秀奖:若干名活动要求:被专家评为优秀报告奖品:颈枕1个+5体验官积分    体验评测报告交稿时间:- 招募期:2021.8.30-2021.9.12- 测试期:2021.9.13-2021.9.26
  • [技术干货] idea神器推荐
    RESTKit工具介绍 一套 RESTful 服务开发辅助工具集。 1.根据 URL 直接跳转到对应的方法定义 ( Ctrl \ or Ctrl Alt N ); 2.提供了一个 Services tree 的显示窗口; 3.一个好用的类似Postman的 http 请求工具; 4.其他功能: java 类上添加 Convert to JSON 功能。 支持 Spring 体系 (Spring MVC / Spring Boot) 支持 JAX-RS 支持 Java 和 Kotlin 语言。 安装 小编使用的idea工具版本为2020.3 ctrl +alt +s  →settings plugins →Marketplace 搜索框输入:RESTKit→Install 具体操作见下图: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/24/171539zgwzdubbw1fq6o0t.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/24/171546vmfdzrosv7kesyak.png) 安装后,重启IDEA,插件才能生效,此时,右侧工具栏出现RESTKit ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/24/171554tetkuli5osekcua0.png) 配置基本信息 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/24/1716026i0fumla5eoepgux.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/24/171608vg4oye9bf4bibxk0.png) 测试 可以在Params配置参数信息 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/24/171621jvgoqnofyvtm1hlo.png) 配置完成后,点击send,就会出现返回值信息。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/24/171632o3tbllwdpc9iii3y.png) 如果没有返回值,可能是参数配置不正确,插件会给出提示信息,注意查看! 工具唯一不足的地方就是每次都需要填写参数信息,没有请求记录。
  • [毕昇JDK] 【技术剖析】6. JNI 中错误的信号处理导致 JVM 崩溃问题分析
    作者:宋尧飞编者按:JNI 是 Java 和 C 语言交互的主要手段,要想做好 JNI 的编程并不容易,需要了解 JVM 内部机理才能避免一些错误。本文分析 Cassandra 使用 JNI 本地库导致 JVM 崩溃的一个案例,最后定位问题根源是信号的错误处理(一些 C 编程人员经常会截获信号,做一些额外的处理),该案例提示 JNI 编程时不要随意截获信号处理。现象在使用 Cassandra 时遇到运行时多个位置都有发生 crash 现象,并且没有 hs_err 文件生成,这里列举了其中一个 crash 位置:分析首先直接基于上面这个 crash 的 core 文件展开分析,下面分别是对应源码上下文和指令上下文:使用 GDB 调试对应的 core 文件,如下图所示:在 GDB 中进行单步调试(GDB 调试可以参考官方文档),配合源代码发现 crash 的原因是传入的 name 为 null,导致调用 name.split("\_") 时触发了 SIGSEGV 信号,直接 crash。暂时抛开这个方法传入 name 为 null 是否有问题不论,从 JVM 运行的机制来说,这里有个疑问,遇到一个 Null Pointer 为什么不是抛出 Null Pointer Exception(简称 NPE)而是直接 crash 了呢?这里有一个知识需要普及一下:Java 层面的 NPE 主要分为两类,一类是代码中主动抛出 NPE 异常,并被 JVM 捕获 (这里的代码既可以是 Java 代码,也可以是 JVM 内部代码);另一类隐式 NPE(其原理是 JVM 内部遇到空指针访问,会产生 SIGSEGV 信号, 在 JVM 内部还会检查运行时是否存在 SIGSEGV 信号)。带着上面的疑问,又看了几处其他位置的 crash,发现都是因为对象为 null 导致的 SIGSEGV,却都没有抛出 NPE,而是直接 crash 了,再结合都没有 hs_err 文件生成的现象, hs_err 文件生成功能位于 JVM 的 SIGSEGV 信号处理函数中,代码如下:由于 hs_err 文件没有产生,一个很自然的推断:Cassandra 运行中可能篡改了或者捕获了 SIGSEGV 信号,并且可能做了处理,以至于 JVM 无法正常处理 SIGSEGV 信号。然后排查业务方是否在 Cassandra 中用到了自定义的第三方 native 库,果然笔者所猜测的,有两个 native 库里都对 SIGSEGV 信号做了捕获,注释掉这些代码后重新跑对方的业务,crash 现象不再发生,问题(由于 Cassandra 中对 NPE 有异常处理导致 JVM 崩溃)解决。总结C/C++ 的组件在配合 Java 一起使用时,需要注意的一点就是不要随意去捕获系统信号,特别是 SIGSEGV、SIGILL、SIGBUS 等,因为会覆盖掉 JVM 中的信号捕获逻辑。附录 这里贴一个 demo 可以用来复现 SIGSEGV 信号覆盖造成的后果,有兴趣的可以跑一下:// JNITest.java import java.util.UUID; public class JNITest { public static void main(String[] args) throws Exception { System.loadLibrary("JNITest"); UUID.fromString(null); } }// JNITest.c #include <signal.h> #include <jni.h> JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) { signal(SIGSEGV, SIG_DFL);//如果注释这条语句,在运行时会出现NullPointerExcetpion异常 return JNI_VERSION_1_8; }通过 GCC 编译并执行就可以触发相同的问题,编译执行命令如下:$ gcc -Wall -shared -fPIC JNITest.c -o libJNITest.so -I$JAVA_HOME/include -I$JAVA_HOME/include/linux $ javac JNITest.java $ java -Xcomp -Djava.library.path=./ JNITest后记如果遇到相关技术问题(包括不限于毕昇 JDK),可以进入毕昇 JDK 社区查找相关资源,包括二进制下载、代码仓库、使用教学、安装、学习资料等。毕昇 JDK 社区每双周周二举行技术例会,同时有一个技术交流群讨论 GCC、LLVM、JDK 和 V8 等相关编译技术,感兴趣的同学可以添加如下微信小助手,回复 Compiler 入群。原文转载自 openEuler-JNI 中错误的信号处理导致 JVM 崩溃问题分析
  • [技术干货] IDEA+git+华为云配置
    将IDEA中的项目提交到git远程仓库版本管理,git远程仓库使用华为云进行代码托管。市面上常见的git托管平台有github、华为云、码云、开源中国、Gitlab等。0、下载和安装git:https://git-scm.com/download/一、创建华为云账号:1、从U+实训课程页面,进入到华为华为云首页,U+已与华为云账号打通,华为云和U+共用相同的账号和密码。2、首次进入华为云需要进行实名认证,请自行实名认证二、在IDEA中创建本地仓库1.将idea项目交给版本控制工具,VCS  ——>  Enable Version Control Integration...  2.选择交给git进行管理,点击ok之后,该项目就会交给git进行管理,且在项目所在目录创建本地代码仓库,可以到项目所在目录看到有一个.git的隐藏文件,该目录就是git本地仓库。3.将代码提交到本地仓库(commit)代码提交到本地仓库了。4、为了验证有没有提交成功,可以查看代码的提交历史    右击项目  ——>  Git  ——>  Show History双击某一次提交记录,可以查看该提交的详细内容。三、创建远程仓库以上步骤我们只是将代码提交到了本地仓库,如果实现共享和版本控制,我们要创建远程仓库,远程仓库使用华为云的代码托管。1、华为云首页选择 服务--->代码托管普通新建 输入仓库名,然后确定此处就该仓库的https地址,将项目提交到远程仓库时,根据该地址提交。 mark1三、将本地仓库中的代码提交到远程仓库1、git---》push,提交时push,下载是pull2. 第一次提交需要设置远程仓库地址,其中url是远程仓库的地址(mark1处)3、点击ok  ----》push后需要输入华为云的仓库的账号和密码,仓库账号和密码在如下位置进行查看和修改,默认就是华为云的登陆密码4、 异常处理,第一次提交因为本地项目和远程项目没有关联,所以会提交失败解决办法参考:在项目所在目录下执行git bash,执行命令:(参考:https://www.jianshu.com/p/f8c9fb05681b)git push -u origin master -f或者在idea中使用快捷键  alt+f12  打开命令行Terminal窗口,执行git push -u origin master -f命令,如下图:本地项目和远程仓库进行关联成功,然后在选择idea中vcs--->git---->push   将本地仓库中的代码提交到远程仓库。提交成功后,在网页上可以看到,本地的代码已经提交提交到远程仓库,在网站端可以查看、修改提交的内容。5、(1)如果其他开发人员更新了远程仓库,可以选择通过pull进行下载下来。(2)如果想下载在远程仓库的项目,可以在开发工具中选择check out from version Control,然后输入仓库url(3)总结:每次先本地提交commit,在push
  • [问题求助] 鲲鹏代码迁移工具在idea上无法登录
    下载idae组件porting Advisor在idea上进行登录,输入用户名密码后,跳转Disclaimer,点击同意后,又跳转到登陆界面
  • [其他] ModelArts本地IDE操作流程
    ModelArts支持通过本地IDE环境远程连接到Notebook中,开发基于Pytorch、Tensorflow和MindSpore引擎的AI模型。具体操作流程如下图所示。 **图1** 使用本地IDE开发流程 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/31/2346239gigkz0j8hq3x67y.png) 1. 创建Notebook实例 在ModelArts控制台中创建一个Notebook开发环境实例,选择要使用的AI框架,并开启SSH远程开发功能。 2. 配置本地IDE远程连接Notebook 在用户的PC端配置本地IDE环境,远程连接到ModelArts的开发环境中。 支持通过PyCharm和VSCode 2类本地IDE连接云上Notebook。PyCharm可以使用插件自动化配置,也可以手工配置。 3. 上传数据和代码至开发环境中,进行代码调试。 - 代码直接拷贝至本地IDE中即可,本地IDE中会自动同步至云上开发环境。 - 小于500MB数据量直接拷贝至本地IDE中即可。 - 大于500MB数据量请先上传到OBS中,从OBS上传到默认存储EFS或云硬盘EVS。 4. 在本地IDE中编码和调试 在本地IDE中编写代码,并调试运行。 5. 将调试好的训练脚本和用于训练的数据集上传至OBS目录。 6. 提交训练作业。提交训练作业有如下2种方式: - (推荐)在ModelArts的Console控制台页面中提交新版训练作业,具体参考[创建训练作业](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0286.html)。 - 在本地IDE中提交训练作业(当前仅支持提交到旧版训练作业) - 可以基于PyCharm ToolKit直接提交训练作业,具体参考[使用PyCharm ToolKit提交训练作业](https://support.huaweicloud.com/tg-modelarts/modelarts_15_0007.html)。 - 也可以通过调用ModelArts提供的SDK,创建训练作业,上云训练,调用SDK创建训练作业的操作请参见[调用SDK创建训练作业](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0131.html)。
总条数:136 到第
上滑加载中