diff --git a/docs/mindspore/source_en/orange_pi/dev_start.md b/docs/mindspore/source_en/orange_pi/dev_start.md index 96da8d1eee874f5a74aac7be1665d36c4dc472ec..b9e8762f502f2e8a0b74dba152c6eb9c04e0db94 100644 --- a/docs/mindspore/source_en/orange_pi/dev_start.md +++ b/docs/mindspore/source_en/orange_pi/dev_start.md @@ -12,8 +12,6 @@ from mindspore.dataset import MnistDataset ## Setting Running Environment -> Since Mindspore 2.3 and earlier versions do not support dynamic memory request on demand, and CANN lacks corresponding dynamic operators, we need to set the environment via set_context before executing the cases. The above problems will be solved in the future with the continuous updating of the version, so that the cases can be executed directly without the need to configure the environment. - max_size="2GB" : Set the maximum memory available to the device to 2GB. mode=mindspore.GRAPH_MODE : Indicates running in GRAPH_MODE mode. @@ -26,10 +24,7 @@ from mindspore.dataset import MnistDataset ```python import mindspore -mindspore.set_context(mode=mindspore.GRAPH_MODE, jit_config={"jit_level":"O2"}) -mindspore.set_device("Ascend") -mindspore.runtime.set_memory(max_size="2GB") -mindspore.device_context.ascend.op_precision.precision_mode("allow_mix_precision") +mindspore.set_context(max_device_memory="2GB", mode=mindspore.GRAPH_MODE, device_target="Ascend", jit_config={"jit_level":"O2"}, ascend_config={"precision_mode":"allow_mix_precision"}) ``` ## Processing Dataset diff --git a/docs/mindspore/source_en/orange_pi/environment_setup.md b/docs/mindspore/source_en/orange_pi/environment_setup.md index f04743c0d5327d1ccaeca1fbfc82b72d989b7168..efb55616c1a26409306151722491375f6881d469 100644 --- a/docs/mindspore/source_en/orange_pi/environment_setup.md +++ b/docs/mindspore/source_en/orange_pi/environment_setup.md @@ -108,9 +108,58 @@ Here we introduce balenaEtcher, Rufus to burn the image, you can burn according ![environment-setup-1-13](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-13.png) -## 2. CANN Upgrading -### 2.1 Toolkit Upgrading +## 2. Development board Startup and Network Connection + +### 2.1 Development board Startup + +Insert the TF card with the burned image into the corresponding slot on the development board. Click [here](http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html) to jump to the official website, and refer to the "User Manual" in section 2.8 for specific steps to start the development board. + +![environment-setup-1-20](../../source_zh_cn/orange_pi/images/environment_setup_1-20.png) + +### 2.2 Development board Network Connection + +For the convenience of downloading software packages and running code for subsequent environment upgrades, the development board needs to be connected to a network. Please refer to "3.5 Network Connection Test" in the User Manual for details. + +![environment-setup-1-21](../../source_zh_cn/orange_pi/images/environment_setup_1-21.png) + +### 2.3 Development board SSH Remote Login (Optional) + +If you need to log in to the development board remotely through SSH, please refer to "3.6 SSH Remote Login to Development Board" in the User Manual for details. + +![environment-setup-1-22](../../source_zh_cn/orange_pi/images/environment_setup_1-22.png) + +### 2.4 Set Swap Memory (Optional) + +Although the development board has 8GB or 16GB of large memory, some applications require more than 8GB or 16GB of memory. In this case, we can use Swap memory to expand the maximum memory capacity that the system can use. For specific instructions, please refer to the "3.20 Method for Setting Swap Memory" in the user manual. + +![environment-setup-1-23](../../source_zh_cn/orange_pi/images/environment_setup_1-23.png) + +## 3. CANN Upgrading + +### 3.1 Query CANN Version + +Step 1 Use `CTRL+ALT+T` or click on the icon with `$_` at the bottom of the page to open the terminal and keep the HwHiAiUser user logged in. + +![environment-setup-1-14](../../source_zh_cn/orange_pi/images/environment_setup_1-14.png) + +Step 2 Enter the software package installation information file directory. + +```bash +(base) HwHiAiUser@orangepiaipro:~$ cd /usr/local/Ascend/ascend-toolkit/latest/aarch-linux +``` + +Step 3 Execute the following command to obtain version information. + +```bash +(base) HwHiAiUser@orangepiaipro:~$ cat ascend_toolkit_install.info +``` + +### 3.2 CANN Upgrading + +If the current CANN version does not meet the development requirements, the CANN version can be upgraded according to the following steps. + +#### 3.2.1 Toolkit Upgrading Step 1 Open a terminal and switch the root user. @@ -139,9 +188,9 @@ Step 2 Remove installed CANN packages from the image to free up disk space and p ``` -Step 3 Open the official website of Ascend CANN to access the community version of the resource [download address](https://www.hiascend.com/developer/download/community/result?module=cann), download the required version of the toolkit package. Taking 8.0.RC2.alpha003 version as an example, as shown below: +Step 3 Open the official website of Ascend CANN to access the community version of the resource [download address](https://www.hiascend.com/developer/download/community/result?module=cann), download the required version of the toolkit package. Taking 8.0.RC3.alpha002 version as an example, as shown below: -![environment-setup-1-15](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-15.png) +![environment-setup-1-15](../../source_zh_cn/orange_pi/images/environment_setup_1-15.png) > Execute the following commands to select the aarch64 or x86_64 package according to the actual output of the environment. @@ -160,13 +209,13 @@ Step 4 Go to the Toolkit package download directory. Step 5 Add execution permissions to the CANN package. ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads# chmod +x ./Ascend-cann-toolkit_8.0.RC2.alpha003_linux-aarch64.run +(base) root@orangepiaipro: /home/HwHiAiUser/Downloads# chmod +x ./Ascend-cann-toolkit_8.0.RC3.alpha002_linux-aarch64.run ``` Step 6 Execute the following command to upgrade the software. ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads#./Ascend-cann-toolkit_8.0.RC2.alpha003_linux-aarch64.run --install +(base) root@orangepiaipro: /home/HwHiAiUser/Downloads#./Ascend-cann-toolkit_8.0.RC3.alpha002_linux-aarch64.run --install ``` Type Y when this prompt pops up during installation, then press Enter to continue the installation. @@ -184,16 +233,17 @@ xxx install success - Path after installing the upgrade (default installation path for root user as an example): “/usr/local/Ascend/ ascend-toolkit/ +> If the output is incorrect, you need to follow the above steps to upgrade Toolkit again. + Step 7 Configure and load environment variables. ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads # echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc (base) root@orangepiaipro: /home/HwHiAiUser/Downloads # source ~/.bashrc ``` -### 2.2 Kernels Upgrading +#### 3.2.2 Kernels Upgrading > The binary arithmetic package Kernels relies on the CANN package Toolkit. To perform the upgrade, the current environment needs to have the matching version of Toolkit installed and installed by the same user. @@ -219,7 +269,7 @@ npu-smi info Step 3 Open the official website of Ascend CANN to access the community edition resources [download address](https://www.hiascend.com/developer/download/community/result?module=cann), and download the kernel package that is consistent with the CANN package version and matches the NPU model. As shown in the figure below: -![environment-setup-1-18](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-18.png) +![environment-setup-1-18](../../source_zh_cn/orange_pi/images/environment_setup_1-18.png) Step 4 Go to the Kernels package download directory. @@ -227,18 +277,18 @@ Step 4 Go to the Kernels package download directory. (base) root@orangepiaipro: /usr/local/Ascend/ascend-toolkit# cd /home/HwHiAiUser/Downloads ``` -> Default download directory of Orange Pi AI Pro browser file: /home/HwHiAiUser/Downloads +> Default download directory of OrangePi AIpro browser file: /home/HwHiAiUser/Downloads Step 5 Add execution permissions to the kernels package. ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads# chmod +x ./Ascend-cann-kernels-310b_8.0.RC2.alpha003_linux.run +(base) root@orangepiaipro: /home/HwHiAiUser/Downloads# chmod +x ./Ascend-cann-kernels-310b_8.0.RC3.alpha002_linux.run ``` Step 6 Execute the following command to upgrade the software. ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads#./Ascend-cann-kernels-310b_8.0.RC2.alpha003_linux.run --install +(base) root@orangepiaipro: /home/HwHiAiUser/Downloads#./Ascend-cann-kernels-310b_8.0.RC3.alpha002_linux.run --install ``` After the upgrade is completed, if the following message is displayed, the software upgrade is successful: @@ -251,9 +301,11 @@ xxx install success - Path after installing the upgrade (default installation path for root user as an example): "/usr/local/Ascend/ ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/kernel". -## 3. MindSpore Upgrading +> If the output is incorrect, you need to follow the above steps to upgrade Kernels again. + +## 4. MindSpore Upgrading -### 3.1 Installing the Official Version of the Website (Taking MindSpore 2.4.10 as an example) +### 4.1 Installing the Official Version of the Website (Taking MindSpore 2.4.10 as an example) Please note that both installation methods for MindSpore need to be performed under the HwHiAiUser user. Choose either method for installation. @@ -265,17 +317,15 @@ Method 1: Open the terminal as HwHiAiUser user and run the pip install command d (base) HwHiAiUser@orangepiaipro:~$ pip install mindspore==2.4.10 ``` -Method 2: Use the CTRL+ALT+T shortcut key or click on the icon with $_ at the bottom of the page to open the terminal. Refer to [MindSpore official website installation tutorial](https://www.mindspore.cn/install/en) to install. +Method 2: Use the CTRL+ALT+T shortcut key or click on the icon with $_ at the bottom of the page to open the terminal, refer to [MindSpore official website installation tutorial](https://www.mindspore.cn/install/en) to install. ```bash (base) HwHiAiUser@orangepiaipro:~$ pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/2.4.10/MindSpore/unified/aarch64/mindspore-2.4.10-cp39-cp39-linux_aarch64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple -# Confirm the operating system and programming language, and the default environment of the Orange Pi development board is linux-aarch64 and python3.9 +# Confirm the operating system and programming language, and the default environment of the OrangePi AIpro development board is linux-aarch64 and python3.9 ``` -### 3.2 Installation Verification - -Execute the following command: +### 4.2 Installation Verification ```bash (base) HwHiAiUser@orangepiaipro:~$ python -c "import mindspore;mindspore.set_context(device_target='Ascend');mindspore.run_check()" @@ -287,3 +337,9 @@ If the output is as follows, it indicates that MindSpore has been successfully i MindSpore version: 2.4.10 The result of multiplication calculation is correct, MindSpore has been installed on platform [Ascend] successfully! ``` +## Next Step + +At this point, the OrangePi AIpro development board environment has been set up, and you can experience online model inference based on MindSpore development on the development board. + +- [Model Online Inference](./model_infer.md) + diff --git a/docs/mindspore/source_en/orange_pi/index.rst b/docs/mindspore/source_en/orange_pi/index.rst index f9032f0dfabf0fbd406c35ec521a429a32120487..3a920839608e048a107adb3315662bbc352e447c 100644 --- a/docs/mindspore/source_en/orange_pi/index.rst +++ b/docs/mindspore/source_en/orange_pi/index.rst @@ -1,6 +1,15 @@ Orange Pi Development =============================== +.. note:: + + The development of OrangePi AIpro requires knowledge of the following: + + - `MindSpore `_ + - `OrangePi AIpro `_ + - `Linux `_ + - `Jupyter Notebook `_ + `OrangePi AIpro `_ adopts the route of Ascend AI technology, specifically 4-core 64-bit processor and AI processor, integrated graph processor. At present, the system image of OrangePi AIpro development board has been realized with the Ascend MindSpore AI framework pre-installed, and continues to evolve in subsequent version iterations, and currently supports all network models covered by the tutorials on the MindSpore official website. The OrangePi AIpro development board provides developers with the openEuler version and the ubuntu version, both of which are preconfigured with Ascend MindSpore, allowing users to experience the efficient development experience brought by the synergistic optimization of hardware and software. Meanwhile, developers are welcome to customize MindSpore and CANN running environment. diff --git a/docs/mindspore/source_en/orange_pi/model_infer.md b/docs/mindspore/source_en/orange_pi/model_infer.md index 7a7a9b42b59fed6583879e58d273cd122fd603c2..446d12d6f9f8f757bae870c99b11ee93e3090ac3 100644 --- a/docs/mindspore/source_en/orange_pi/model_infer.md +++ b/docs/mindspore/source_en/orange_pi/model_infer.md @@ -4,25 +4,27 @@ This section describes how to download the Ascend MindSpore online inference case on the OrangePi AIpro (hereafter: OrangePi development board) and launch the Jupyter Lab interface to perform inference. +> All the following operations are performed under the HwHiAiUser user. + ## 1. Downloading Case Step1 Download case code. ```bash # Open a terminal on the development board and run the following command -cd samples/notebooks/ -git clone https://github.com/mindspore-courses/orange-pi-mindspore.git +(base) HwHiAiUser@orangepiaipro:~$ cd samples/notebooks/ +(base) HwHiAiUser@orangepiaipro:~$ git clone https://github.com/mindspore-courses/orange-pi-mindspore.git ``` Step2 Enter the case catalog. -The downloaded code package is in the following directory of the OrangePi development board: /home/HwHiAiUser/samples/notebooks. +The downloaded code package is in the following directory of the OrangePi AIpro development board: /home/HwHiAiUser/samples/notebooks. The project catalog is listed below: ```bash -/home/HwHiAiUser/samples/notebooks/orange-pi-mindspore/tutorial/ -01-dev_start +/home/HwHiAiUser/samples/notebooks/orange-pi-mindspore/Online/ +01-quick_start 02-ResNet50 03-ViT 04-FCN @@ -42,8 +44,8 @@ The project catalog is listed below: Step 1 Launch the Jupyter Lab interface. ```bash -cd /home/HwHiAiUser/samples/notebooks/ -./start_notebook.sh +(base) HwHiAiUser@orangepiaipro:~$ cd /home/HwHiAiUser/samples/notebooks/ +(base) HwHiAiUser@orangepiaipro:~$ ./start_notebook.sh ``` After executing the script, the following printout will appear in the terminal, in which there will be a link to the URL for logging into Jupyter Lab. @@ -68,4 +70,17 @@ Step 3 In this directory there are all the resources to run the sample, where mi Step 4 Click the ⏩ button to run the sample. In the pop-up dialog box, click the "Restart" button, then the sample begins to run. -![model-infer6](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/mindspore/source_zh_cn/orange_pi/images/model_infer6.png) \ No newline at end of file +![model-infer6](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/mindspore/source_zh_cn/orange_pi/images/model_infer6.png) + +## 3. Environment Cleaning + +After the inference execution is completed, it is necessary to navigate to `KERNELS > Shut Down All` in the Jupyter Lab interface and manually close the already running kernel to prevent running other cases from reporting an error of insufficient memory, which may cause other cases to fail to execute properly. + +![model-infer7](../../source_zh_cn/orange_pi/images/model_infer7.png) + + +## Next Step + +For specific case development based on MindSpore, please refer to: + +- [Quick Start](./dev_start.ipynb) diff --git a/docs/mindspore/source_zh_cn/orange_pi/dev_start.ipynb b/docs/mindspore/source_zh_cn/orange_pi/dev_start.ipynb index 6487528194f5f03ac1bef68b29e74d914a1f2467..c22c2750d46446c8167e5a801c028be1e4ca2dd4 100644 --- a/docs/mindspore/source_zh_cn/orange_pi/dev_start.ipynb +++ b/docs/mindspore/source_zh_cn/orange_pi/dev_start.ipynb @@ -11,11 +11,52 @@ "因开发者可能会在OrangePi AIpro(下称:香橙派开发板)进行自定义模型和案例开发,本章节通过基于MindSpore的手写数字识别案例,说明香橙派开发板中的开发注意事项。" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 环境准备\n", + "\n", + "开发者拿到香橙派开发板后,首先需要进行硬件资源确认,镜像烧录及CANN和MindSpore版本的升级,才可运行该案例,具体如下:\n", + "\n", + "- 硬件: 香橙派AIpro 16G 8-12T开发板\n", + "- 镜像: 香橙派官网ubuntu镜像\n", + "- CANN:8.0.RC3.alpha002\n", + "- MindSpore: 2.4.10\n", + "\n", + "### 镜像烧录\n", + "\n", + "运行该案例需要烧录香橙派官网ubuntu镜像,烧录流程参考[昇思MindSpore官网--香橙派开发专区--环境搭建指南--镜像烧录](https://www.mindspore.cn/docs/zh-CN/r2.4.10/orange_pi/environment_setup.html#1-%E9%95%9C%E5%83%8F%E7%83%A7%E5%BD%95%E4%BB%A5windows%E7%B3%BB%E7%BB%9F%E4%B8%BA%E4%BE%8B)章节。\n", + "\n", + "### CANN升级\n", + "\n", + "CANN升级参考[昇思MindSpore官网--香橙派开发专区--环境搭建指南--CANN升级](https://www.mindspore.cn/docs/zh-CN/r2.4.10/orange_pi/environment_setup.html#3-cann%E5%8D%87%E7%BA%A7)章节。\n", + "\n", + "### MindSpore升级\n", + "\n", + "MindSpore升级参考[昇思MindSpore官网--香橙派开发专区--环境搭建指南--MindSpore升级](https://www.mindspore.cn/docs/zh-CN/r2.4.10/orange_pi/environment_setup.html#4-mindspore%E5%8D%87%E7%BA%A7)章节。" + ] + }, { "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for type is zero.\n", + " setattr(self, word, getattr(machar, word).flat[0])\n", + "/home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for type is zero.\n", + " return self._float_to_str(self.smallest_subnormal)\n", + "/home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for type is zero.\n", + " setattr(self, word, getattr(machar, word).flat[0])\n", + "/home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for type is zero.\n", + " return self._float_to_str(self.smallest_subnormal)\n" + ] + } + ], "source": [ "from mindspore import nn\n", "from mindspore.dataset import vision, transforms\n", @@ -28,9 +69,9 @@ "source": [ "## 设置运行环境\n", "\n", - "> 由于Mindspore2.3及之前的版本暂未支持内存动态按需申请,以及CANN缺少对应的动态算子,所以执行案例之前需要通过set_context设置运行环境。后续会随着版本不断更新解决以上问题,从而在不需要进行环境配置的前提下可直接执行案例。\n", + "由于资源限制,需开启性能优化模式,具体设置如下参数:\n", "\n", - " max_size=\"2GB\" : 设置设备可用的最大内存为2GB。\n", + " max_device_memory=\"2GB\" : 设置设备可用的最大内存为2GB。\n", "\n", " mode=mindspore.GRAPH_MODE : 表示在GRAPH_MODE模式中运行。\n", "\n", @@ -43,24 +84,50 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import mindspore\n", - "mindspore.set_context(mode=mindspore.GRAPH_MODE, jit_config={\"jit_level\":\"O2\"})\n", - "mindspore.set_device(\"Ascend\")\n", - "mindspore.runtime.set_memory(max_size=\"2GB\")\n", - "mindspore.device_context.ascend.op_precision.precision_mode(\"allow_mix_precision\")" + "mindspore.set_context(max_device_memory=\"2GB\", mode=mindspore.GRAPH_MODE, device_target=\"Ascend\", jit_config={\"jit_level\":\"O2\"}, ascend_config={\"precision_mode\":\"allow_mix_precision\"})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## 处理数据集\n", + "## 数据集准备与加载\n", + "\n", + "MindSpore提供基于Pipeline的[数据引擎](https://www.mindspore.cn/docs/zh-CN/r2.3.0/design/data_engine.html),通过[数据集(Dataset)](https://www.mindspore.cn/tutorials/zh-CN/r2.3.0/beginner/dataset.html)和[数据变换(Transforms)](https://www.mindspore.cn/tutorials/zh-CN/r2.3.0/beginner/transforms.html)实现高效的数据预处理。在本案例中,我们使用Mnist数据集,自动下载完成后,使用`mindspore.dataset`提供的数据变换进行预处理。\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://repo.huaweicloud.com/repository/pypi/simple/\n", + "Requirement already satisfied: download in /home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages (0.3.5)\n", + "Requirement already satisfied: tqdm in /home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages (from download) (4.66.5)\n", + "Requirement already satisfied: six in /home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages (from download) (1.16.0)\n", + "Requirement already satisfied: requests in /home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages (from download) (2.32.3)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages (from requests->download) (3.4.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages (from requests->download) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages (from requests->download) (2.2.3)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /home/mindspore/miniconda/envs/jupyter/lib/python3.9/site-packages (from requests->download) (2024.8.30)\n" + ] + } + ], + "source": [ + "#install download\n", "\n", - "MindSpore提供基于Pipeline的[数据引擎](https://www.mindspore.cn/docs/zh-CN/master/design/data_engine.html),通过[数据加载与处理](https://www.mindspore.cn/tutorials/zh-CN/master/beginner/dataset.html)实现高效的数据预处理。在本案例中,我们使用Mnist数据集,自动下载完成后,使用`mindspore.dataset`提供的数据变换进行预处理。\n" + "!pip install download" ] }, { @@ -74,7 +141,7 @@ "text": [ "Downloading data from https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/MNIST_Data.zip (10.3 MB)\n", "\n", - "file_sizes: 100%|██████████████████████████| 10.8M/10.8M [00:01<00:00, 7.63MB/s]\n", + "file_sizes: 100%|███████████████████████████| 10.8M/10.8M [00:00<00:00, 101MB/s]\n", "Extracting zip file...\n", "Successfully downloaded / unzipped to ./\n" ] @@ -185,7 +252,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "可使用[create_tuple_iterator](https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/iterator/mindspore.dataset.Dataset.create_tuple_iterator.html) 或[create_dict_iterator](https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/iterator/mindspore.dataset.Dataset.create_dict_iterator.html)对数据集进行迭代访问,查看数据和标签的shape和datatype。" + "可使用[create_tuple_iterator](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/dataset/dataset_method/iterator/mindspore.dataset.Dataset.create_tuple_iterator.html) 或[create_dict_iterator](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/dataset/dataset_method/iterator/mindspore.dataset.Dataset.create_dict_iterator.html)对数据集进行迭代访问,查看数据和标签的shape和datatype。" ] }, { @@ -230,6 +297,13 @@ " break" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 模型构建" + ] + }, { "cell_type": "code", "execution_count": 11, @@ -300,8 +374,8 @@ "MindSpore使用函数式自动微分机制,因此针对上述步骤需要实现:\n", "\n", "1. 定义正向计算函数。\n", - "2. 使用[value_and_grad](https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore/mindspore.value_and_grad.html)通过函数变换获得梯度计算函数。\n", - "3. 定义训练函数,使用[set_train](https://www.mindspore.cn/docs/zh-CN/master/api_python/nn/mindspore.nn.Cell.html#mindspore.nn.Cell.set_train)设置为训练模式,执行正向计算、反向传播和参数优化。" + "2. 使用[value_and_grad](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/mindspore/mindspore.value_and_grad.html)通过函数变换获得梯度计算函数。\n", + "3. 定义训练函数,使用[set_train](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/nn/mindspore.nn.Cell.html#mindspore.nn.Cell.set_train)设置为训练模式,执行正向计算、反向传播和参数优化。" ] }, { @@ -384,49 +458,93 @@ "output_type": "stream", "text": [ "Epoch 1\n", - "-------------------------------\n", - "loss: 2.302898 [ 0/938]\n", - "loss: 1.729961 [100/938]\n", - "loss: 0.865714 [200/938]\n", - "loss: 0.782822 [300/938]\n", - "loss: 0.389282 [400/938]\n", - "loss: 0.293149 [500/938]\n", - "loss: 0.474819 [600/938]\n", - "loss: 0.242542 [700/938]\n", - "loss: 0.542277 [800/938]\n", - "loss: 0.342929 [900/938]\n", + "-------------------------------\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.908.660 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.908.729 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n", + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.908.793 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.908.814 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n", + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.908.858 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.908.877 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n", + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.908.921 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.908.940 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n", + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.909.100 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:09.909.120 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loss: 2.307922 [ 0/938]\n", + "loss: 1.746887 [100/938]\n", + "loss: 0.848251 [200/938]\n", + "loss: 0.607513 [300/938]\n", + "loss: 0.369690 [400/938]\n", + "loss: 0.382843 [500/938]\n", + "loss: 0.293686 [600/938]\n", + "loss: 0.391556 [700/938]\n", + "loss: 0.227386 [800/938]\n", + "loss: 0.189972 [900/938]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.025 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.070 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n", + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.133 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.154 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n", + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.198 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.217 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n", + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.260 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.279 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n", + "[ERROR] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.438 [mindspore/core/utils/file_utils.cc:253] GetRealPath] Get realpath failed, path[/tmp/ipykernel_9212/2515200870.py]\n", + "[WARNING] CORE(9212,ffffa3169b80,python):2025-02-22-07:30:28.177.458 [mindspore/core/utils/info.cc:120] ToString] The file '/tmp/ipykernel_9212/2515200870.py' may not exists.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Test: \n", - " Accuracy: 90.7%, Avg loss: 0.321954 \n", + " Accuracy: 91.1%, Avg loss: 0.314895 \n", "\n", "Epoch 2\n", "-------------------------------\n", - "loss: 0.249492 [ 0/938]\n", - "loss: 0.347967 [100/938]\n", - "loss: 0.220382 [200/938]\n", - "loss: 0.308149 [300/938]\n", - "loss: 0.353044 [400/938]\n", - "loss: 0.392116 [500/938]\n", - "loss: 0.396438 [600/938]\n", - "loss: 0.231412 [700/938]\n", - "loss: 0.194819 [800/938]\n", - "loss: 0.228290 [900/938]\n", + "loss: 0.346725 [ 0/938]\n", + "loss: 0.268921 [100/938]\n", + "loss: 0.247742 [200/938]\n", + "loss: 0.196686 [300/938]\n", + "loss: 0.264954 [400/938]\n", + "loss: 0.320938 [500/938]\n", + "loss: 0.368820 [600/938]\n", + "loss: 0.274811 [700/938]\n", + "loss: 0.373581 [800/938]\n", + "loss: 0.441010 [900/938]\n", "Test: \n", - " Accuracy: 93.0%, Avg loss: 0.249993 \n", + " Accuracy: 92.8%, Avg loss: 0.247373 \n", "\n", "Epoch 3\n", "-------------------------------\n", - "loss: 0.343888 [ 0/938]\n", - "loss: 0.307786 [100/938]\n", - "loss: 0.153425 [200/938]\n", - "loss: 0.254917 [300/938]\n", - "loss: 0.198072 [400/938]\n", - "loss: 0.108963 [500/938]\n", - "loss: 0.202033 [600/938]\n", - "loss: 0.340418 [700/938]\n", - "loss: 0.144911 [800/938]\n", - "loss: 0.175447 [900/938]\n", + "loss: 0.168976 [ 0/938]\n", + "loss: 0.313812 [100/938]\n", + "loss: 0.195068 [200/938]\n", + "loss: 0.329803 [300/938]\n", + "loss: 0.464447 [400/938]\n", + "loss: 0.170197 [500/938]\n", + "loss: 0.280670 [600/938]\n", + "loss: 0.324707 [700/938]\n", + "loss: 0.134583 [800/938]\n", + "loss: 0.191467 [900/938]\n", "Test: \n", - " Accuracy: 93.7%, Avg loss: 0.212180 \n", + " Accuracy: 93.9%, Avg loss: 0.207696 \n", "\n", "Done!\n" ] @@ -473,7 +591,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 加载模型" + "## 权重加载" ] }, { @@ -519,6 +637,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "## 模型推理\n", "加载后的模型可以直接用于预测推理。" ] }, @@ -531,16 +650,40 @@ "name": "stdout", "output_type": "stream", "text": [ - "Predicted: \"[1 2 0 4 6 4 9 0 2 2]\", Actual: \"[1 2 0 4 6 9 9 0 2 2]\"\n" + "Predicted: \"[2 1 0 4 1 7]\", Actual: \"[2 1 0 4 1 7]\"\n" ] + }, + { + "data": { + "image/png": "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5lskm4xYQAgAAEpFMwAAgHI0AwAAKEczAACAcjQDAAAo594bFOVu8eLF3tx3NUHHjh2dLJWvJkBqGzlypDevX7++k504ccLJfLfnTsYrB5A63n33XSe78847nWzhwoXe/Rs3buxkDRs2dLJly5Y52VVXXeVkqXKFQUnMDAAAoBzNAAAAytEMAACgHM0AAADKcTviJPL11187WV5enpN17tw5AdWUD27pmjqaNGniZO+//753W98irHXr1jnZH/7wh9gLCwljNzrnnXeek/kW8fnGjohIgwYNAp1n5cqVTta1a1cna9eunXf/JUuWBK6ppE2bNjlZmzZtAu2bSNyOGAAAlIpmAAAA5WgGAABQjmYAAADluANhkvPdgRBIhJycHCcLurBKROTVV1+NZzlIYr7FgkuXLg20XaKsX7/em994441OFvQur+eff76TTZ061bvt3/72t0DHDAszAwAAKEczAACAcjQDAAAoRzMAAIBy3IEwifi+FVOmTHGye++9NxHllAvu4pacrrjiCidbtWqVk1Wq5P/9oaCgwMnq1KnjZD///HP0xSUJxm5kvre2nj17dkLOffToUSfz3YFw7dq13v1r1KjhZNOmTXOyMWPGBKrn0KFD3jwzMzPQ/uWBOxACAIBS0QwAAKAczQAAAMrRDAAAoBzNAAAAynE74hC0atXKm4exWhn6VKni/rP33So10pUDPv369XOyVL5yANHxXU0Q1N69e735J5984mSXXXaZk/muWrn99tudbPDgwd7zHDt2zMnGjRvnZC1atHCyXr16OVnVqlW952natKmT5eXlebcNAzMDAAAoRzMAAIByNAMAAChHMwAAgHJqFxCmp6c72R//+EfvthdccIGT+W4T6lsAuHPnTicbMGBAkBJFROTgwYOBtwWC8C3C6t69e6B916xZ483feuutmGpCaoi0CO/8888v8zGff/55b37PPfc42Zw5c5zMt4gv0qLEoI4fP+5kkW4zXJJvQaOIf5HtjBkzoiusHDEzAACAcjQDAAAoRzMAAIByNAMAACinYgGh745/Tz/9tJNFWkDoWxgYdAFh0O1E/O/LvW7dOu+2QBD169d3shdeeMHJfOPUt2Bq8uTJ3vP47uKGimf8+PHe3HdXS59nn33WyaZOnRr4/L47HZ577rlO9tVXXwU+JixmBgAAUI5mAAAA5WgGAABQ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ + "import matplotlib.pyplot as plt\n", + "\n", "model.set_train(False)\n", "for data, label in test_dataset:\n", " pred = model(data)\n", " predicted = pred.argmax(1)\n", - " print(f'Predicted: \"{predicted[:10]}\", Actual: \"{label[:10]}\"')\n", + " print(f'Predicted: \"{predicted[:6]}\", Actual: \"{label[:6]}\"')\n", + "\n", + " # 显示数字及数字的预测值\n", + " plt.figure()\n", + " for i in range(6):\n", + " plt.subplot(2, 3, i + 1)\n", + " # 若预测正确,显示为蓝色;若预测错误,显示为红色\n", + " color = 'blue' if predicted[i] == label[i] else 'red'\n", + " plt.title('Predicted:{}'.format(predicted[i]), color=color)\n", + " plt.imshow(data.asnumpy()[i][0], interpolation=\"None\", cmap=\"gray\")\n", + " plt.axis('off')\n", + "\n", + " plt.show() \n", " break" ] }, @@ -548,15 +691,29 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 更多基于昇思MindSpore的香橙派开发板案例详见:[GitHub链接](https://github.com/mindspore-courses/orange-pi-mindspore)\n" + "从上面的打印结果可以看出,预测值与目标值完全一致。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "本案例已同步上线[GitHub仓](https://github.com/mindspore-courses/orange-pi-mindspore/tree/master/Online/01-quick%20start),更多案例开发亦可参考该仓库\n", + "\n", + "本案例运行所需环境:\n", + "\n", + "- 硬件: 香橙派AIpro 16G 8-12T开发板\n", + "- 镜像: 香橙派官网ubuntu镜像\n", + "- CANN:8.0.RC3.alpha002\n", + "- MindSpore: 2.4.10" ] } ], "metadata": { "kernelspec": { - "display_name": "MindSpore", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "mindspore" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -568,7 +725,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.18" + "version": "3.7.9" }, "vscode": { "interpreter": { diff --git a/docs/mindspore/source_zh_cn/orange_pi/environment_setup.md b/docs/mindspore/source_zh_cn/orange_pi/environment_setup.md index a935d50de3ac39173ee4c5c7a2a59344ea2deca2..c8cb128db5d2d6e6b3d0dc8682b67045312460ef 100644 --- a/docs/mindspore/source_zh_cn/orange_pi/environment_setup.md +++ b/docs/mindspore/source_zh_cn/orange_pi/environment_setup.md @@ -108,13 +108,61 @@ ![environment-setup-1-13](./images/environment_setup_1-13.png) -## 2. CANN升级 -### 2.1 Toolkit升级 +## 2. 开发板启动和网络连接 -步骤1 打开终端,切换root用户。 +### 2.1 开发板启动 -使用`CTRL+ALT+T`快捷键或点击页面下方带有`$_`的图标打开终端。 +将烧录好镜像的 TF卡插入开发板对应的插槽中,参考【香橙派官方资料】(http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html)中的《用户手册》,具体可参考“2.8 启动开发板的步骤”。 + +![environment-setup-1-20](./images/environment_setup_1-20.png) + +### 2.2 开发板网络连接 + +为方便后续环境升级下载软件包以及运行代码方便,开发板需要进行网络连接。具体可参考《用户手册》“3.5 网络连接测试”。 + +![environment-setup-1-21](./images/environment_setup_1-21.png) + +### 2.3 开发板SSH远程登录(可选) + +如果需要通过SSH远程方式登录开发板的话,具体可参考《用户手册》“3.6 SSH远程登录开发板”。 + +![environment-setup-1-22](./images/environment_setup_1-22.png) + +### 2.4 设置Swap内存(可选) + +虽然开发板有 8GB 或 16GB 的大内存,但有些应用需要的内存大于 8GB 或 16GB,此时我们可以通过 Swap 内存来扩展系统能使用的最大内存容量。具体可参考《用户手册》“3.20 设置Swap内存的方法”。 + +![environment-setup-1-23](./images/environment_setup_1-23.png) + + +## 3. CANN升级 + +### 3.1 CANN版本查询 + +步骤1 使用`CTRL+ALT+T`快捷键或点击页面下方带有`$_`的图标打开终端,保持HwHiAiUser用户登录状态。 + +![environment-setup-1-14](./images/environment_setup_1-14.png) + +步骤2 进入软件包安装信息文件目录。 + +```bash +(base) HwHiAiUser@orangepiaipro:~$ cd /usr/local/Ascend/ascend-toolkit/latest/aarch-linux +``` + +步骤3 执行以下命令获取版本信息。 + +```bash +(base) HwHiAiUser@orangepiaipro:~$ cat ascend_toolkit_install.info +``` + +### 3.2 CANN升级 + +若当前CANN版本不满足开发需求,可按照如下内容对CANN版本进行升级。 + +#### 3.2.1 Toolkit升级 + +步骤1 使用`CTRL+ALT+T`快捷键或点击页面下方带有`$_`的图标打开终端,并切换root用户。 ![environment-setup-1-14](./images/environment_setup_1-14.png) @@ -130,7 +178,7 @@ ``` -步骤2 删除镜像中已安装CANN包释放磁盘空间,防止安装新的CANN包时报错磁盘空间不足。 +步骤2 删除已安装CANN包释放磁盘空间,防止安装新的CANN包时报错磁盘空间不足。 ```bash @@ -139,7 +187,7 @@ ``` -步骤3 打开昇腾CANN官网访问社区版资源[下载地址](https://www.hiascend.com/developer/download/community/result?module=cann),下载所需版本的toolkit包,该处以8.0.RC2.alpha003版本为例,如下图: +步骤3 打开昇腾CANN官网访问社区版资源[下载地址](https://www.hiascend.com/developer/download/community/result?module=cann),下载所需版本的toolkit包,该处以8.0.RC3.alpha002版本为例,如下图: ![environment-setup-1-15](./images/environment_setup_1-15.png) @@ -155,21 +203,21 @@ (base) root@orangepiaipro: /usr/local/Ascend/ascend-toolkit# cd /home/HwHiAiUser/Downloads ``` -> Orange Pi AI Pro浏览器文件默认下载目录:/home/HwHiAiUser/Downloads,用户在更换保存路径时请同步修改上述命令中的路径。 +> OrangePi AIpro浏览器文件默认下载目录:/home/HwHiAiUser/Downloads,用户在更换保存路径时请同步修改上述命令中的路径。 步骤5 给CANN包添加执行权限。 ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads# chmod +x ./Ascend-cann-toolkit_8.0.RC2.alpha003_linux-aarch64.run +(base) root@orangepiaipro: /home/HwHiAiUser/Downloads# chmod +x ./Ascend-cann-toolkit_8.0.RC3.alpha002_linux-aarch64.run ``` 步骤6 执行以下命令升级软件。 ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads#./Ascend-cann-toolkit_8.0.RC2.alpha003_linux-aarch64.run --install +(base) root@orangepiaipro: /home/HwHiAiUser/Downloads#./Ascend-cann-toolkit_8.0.RC3.alpha002_linux-aarch64.run --install ``` -安装时弹出此提示后输入Y,然后按回车键继续安装。 +安装时弹出此提示后输入Y,然后按回车键继续安装,该过程约需要10-15分钟,请耐心等待。 ![environment-setup-1-16](./images/environment_setup_1-16.png) @@ -182,20 +230,21 @@ xxx install success - xxx表示升级的实际软件包名。 -- 安装升级后的路径(以root用户默认安装升级路径为例):“/usr/local/Ascend/ ascend-toolkit/ +- 安装升级后的路径(以root用户默认安装升级路径为例):/usr/local/Ascend/ascend-toolkit/ + +> 如果输出不正确,需要按照以上步骤重新升级Toolkit。 -步骤7 配置并加载环境变量。 +步骤7 加载环境变量。 ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads # echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc (base) root@orangepiaipro: /home/HwHiAiUser/Downloads # source ~/.bashrc ``` -### 2.2 Kernels升级 +#### 3.2.2 Kernels升级 -> 二进制算子包Kernels依赖CANN软件包Toolkit,执行升级时,当前环境需已安装配套版本的Toolkit,并使用同一用户安装。 +> 二进制算子包Kernels依赖CANN软件包Toolkit,执行升级时,当前环境需已安装配套版本的Toolkit,并使用同一root用户安装。 步骤1 打开终端,并切换root用户。 @@ -227,18 +276,18 @@ npu-smi info (base) root@orangepiaipro: /usr/local/Ascend/ascend-toolkit# cd /home/HwHiAiUser/Downloads ``` -> Orange Pi AI Pro浏览器文件默认下载目录:/home/HwHiAiUser/Downloads +> OrangePi AIpro浏览器文件默认下载目录:/home/HwHiAiUser/Downloads 步骤5 给kernels包添加执行权限。 ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads# chmod +x ./Ascend-cann-kernels-310b_8.0.RC2.alpha003_linux.run +(base) root@orangepiaipro: /home/HwHiAiUser/Downloads# chmod +x ./Ascend-cann-kernels-310b_8.0.RC3.alpha002_linux.run ``` 步骤6 执行以下命令升级软件。 ```bash -(base) root@orangepiaipro: /home/HwHiAiUser/Downloads#./Ascend-cann-kernels-310b_8.0.RC2.alpha003_linux.run --install +(base) root@orangepiaipro: /home/HwHiAiUser/Downloads#./Ascend-cann-kernels-310b_8.0.RC3.alpha002_linux.run --install ``` 升级完成后,若显示如下信息,则说明软件升级成功: @@ -249,21 +298,39 @@ xxx install success - xxx表示升级的实际软件包名。 -- 安装升级后的路径(以root用户默认安装升级路径为例):“/usr/local/Ascend/ ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/kernel”。 +- 安装升级后的路径(以root用户默认安装升级路径为例):/usr/local/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/kernel。 + +> 如果输出不正确,需要按照以上步骤重新升级Kernels。 -## 3. MindSpore升级 +## 4. MindSpore升级 -### 3.1 安装官网正式版(以MindSpore2.4.10为例) +### 4.1 MindSpore版本查询 + +步骤1 使用CTRL+ALT+T快捷键或点击页面下方带有$_的图标打开终端,保持HwHiAiUser用户登录状态。 + +![environment-setup-1-14](./images/environment_setup_1-14.png) + +步骤2 执行如下命令,查询当前MindSpore版本。 + +```bash +(base) HwHiAiUser@orangepiaipro:~$ pip show mindspore +``` + +若当前MindSpore版本不满足开发需求,可按照如下内容对MindSpore版本进行升级。 + +### 4.2 升级MindSpore(以MindSpore2.4.10为例) + +#### 4.2.1 升级MindSpore 请注意,以下两种MindSpore的安装方式均需在HwHiAiUser用户下执行安装,任意选择其中一种方式安装即可。 -方式一:使用CTRL+ALT+T快捷键或点击页面下方带有$_的图标打开终端,在终端直接运行pip install命令。 +方式一:使用CTRL+ALT+T快捷键或点击页面下方带有$_的图标打开终端,保持HwHiAiUser用户登录状态,在终端直接运行pip install命令。 ```bash (base) HwHiAiUser@orangepiaipro:~$ pip install mindspore==2.4.10 ``` -方式二:使用CTRL+ALT+T快捷键或点击页面下方带有$_的图标打开终端,参考[昇思MindSpore官网安装教程](https://www.mindspore.cn/install),在终端执行以下命令进行安装。 +方式二:使用CTRL+ALT+T快捷键或点击页面下方带有$_的图标打开终端,保持HwHiAiUser用户登录状态,参考[昇思MindSpore官网安装教程](https://www.mindspore.cn/install),在终端执行以下命令进行安装。 ```bash (base) HwHiAiUser@orangepiaipro:~$ pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/2.4.10/MindSpore/unified/aarch64/mindspore-2.4.10-cp39-cp39-linux_aarch64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple @@ -271,7 +338,7 @@ xxx install success # 注意确认操作系统和编程语言,香橙派开发板默认环境下是linux-aarch64和python3.9 ``` -### 3.2 验证是否成功安装 +#### 4.2.2 验证是否成功安装 执行以下命令: @@ -286,6 +353,12 @@ MindSpore version: 2.4.10 The result of multiplication calculation is correct, MindSpore has been installed on platform [Ascend] successfully! ``` +> 如果输出不正确,需要按照4.2.1 MindSpore升级方式重新升级。 + +## 下一步 + +此时香橙派开发板环境搭建已经完成,可以在开发板上体验基于昇思MindSpore开发的模型在线推理。 +- [模型在线推理](./model_infer.md) diff --git a/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-15.png b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-15.png index 56df76ca6d0dfa17ce239c2868674697c0c1db34..854e902585010622a6c1fe5ff1d7417aaf9c8841 100644 Binary files a/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-15.png and b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-15.png differ diff --git a/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-18.png b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-18.png index eab172f197ab3e8955ec29d12226463a8cbeedb9..24ffe33d6c1cfd10a247be1a53a2b8018cbe0955 100644 Binary files a/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-18.png and b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-18.png differ diff --git a/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-20.png b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-20.png new file mode 100644 index 0000000000000000000000000000000000000000..661562a27d032a879c3b24150eb71d519cc9e166 Binary files /dev/null and b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-20.png differ diff --git a/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-21.png b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-21.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8a6b4ae83e26d365546884ecf35b9b77eb1ba3 Binary files /dev/null and b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-21.png differ diff --git a/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-22.png b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-22.png new file mode 100644 index 0000000000000000000000000000000000000000..33d731b96ef075c2ec76136654764e21f54e10c9 Binary files /dev/null and b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-22.png differ diff --git a/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-23.png b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-23.png new file mode 100644 index 0000000000000000000000000000000000000000..37125f99eadf271d546f0c5ed84c8b41b27c1982 Binary files /dev/null and b/docs/mindspore/source_zh_cn/orange_pi/images/environment_setup_1-23.png differ diff --git a/docs/mindspore/source_zh_cn/orange_pi/images/model_infer7.png b/docs/mindspore/source_zh_cn/orange_pi/images/model_infer7.png new file mode 100644 index 0000000000000000000000000000000000000000..c6dd621e5d9056015431802f0a1c814879e8e4e2 Binary files /dev/null and b/docs/mindspore/source_zh_cn/orange_pi/images/model_infer7.png differ diff --git a/docs/mindspore/source_zh_cn/orange_pi/index.rst b/docs/mindspore/source_zh_cn/orange_pi/index.rst index 857eb51593f2f100722bf0e929807f9ec26e117c..8fae9bf353a60f17c2913b01c7e3845e18dde43a 100644 --- a/docs/mindspore/source_zh_cn/orange_pi/index.rst +++ b/docs/mindspore/source_zh_cn/orange_pi/index.rst @@ -1,9 +1,16 @@ 香橙派开发 =============== + 香橙派开发需要了解以下内容: + + - `昇思MindSpore `_ + - `OrangePi AIpro(香橙派 AIpro) `_ + - `Linux `_ + - `Jupyter Notebook `_ + `OrangePi AIpro(香橙派 AIpro) `_ 采用昇腾AI技术路线,具体为4核64位处理器和AI处理器,集成图形处理器。 -目前已实现OrangePi AIpro开发板的系统镜像预置昇思MindSpore AI框架,并在后续版本迭代中持续演进,当前已支持昇思MindSpore官网教程涵盖的全部网络模型。OrangePi AIpro开发板向开发者提供的官方系统镜像有openEuler版本预ubuntu版本,两个镜像版本均已预置昇思MindSpore,便于用户体验软硬协同优化后带来的高效开发体验。同时,欢迎开发者自定义配置昇思MindSpore和CANN运行环境。 +目前已实现OrangePi AIpro开发板的系统镜像预装昇思MindSpore AI框架,并在后续版本迭代中持续演进,当前已完整支持昇思MindSpore官网教程中的所有网络模型。OrangePi AIpro开发板向开发者提供的官方系统镜像有openEuler版本和Ubuntu版本,两个镜像版本均已预置昇思MindSpore,便于用户体验软硬协同优化后带来的高效开发体验。同时,欢迎开发者自定义配置昇思MindSpore和CANN运行环境。 接下来的教程将演示如何基于OrangePi AIpro进行自定义环境搭建,如何在OrangePi AIpro启动Jupyter Lab,并以手写数字识别为例,介绍OrangePi AIpro上基于昇思MindSpore进行在线推理需要完成的操作。 diff --git a/docs/mindspore/source_zh_cn/orange_pi/model_infer.md b/docs/mindspore/source_zh_cn/orange_pi/model_infer.md index 54e29ddc01e6400d7fb35b04f1b99a2862526b16..4a6122732bd4dc595c705a343564d407821c2507 100644 --- a/docs/mindspore/source_zh_cn/orange_pi/model_infer.md +++ b/docs/mindspore/source_zh_cn/orange_pi/model_infer.md @@ -4,14 +4,16 @@ 本章节将介绍如何在OrangePi AIpro(下称:香橙派开发板)下载昇思MindSpore在线推理案例,并启动Jupyter Lab界面执行推理。 +> 以下所有操作都是在HwHiAiUser用户下执行。 + ## 1. 下载案例 -步骤1 下载案例代码。 +步骤1 使用CTRL+ALT+T快捷键或点击页面下方带有$_的图标打开终端,下载案例代码。 ```bash # 打开开发板的一个终端,运行如下命令 -cd samples/notebooks/ -git clone https://github.com/mindspore-courses/orange-pi-mindspore.git +(base) HwHiAiUser@orangepiaipro:~$ cd samples/notebooks/ +(base) HwHiAiUser@orangepiaipro:~$ git clone https://github.com/mindspore-courses/orange-pi-mindspore.git ``` 步骤2 进入案例目录。 @@ -21,8 +23,8 @@ git clone https://github.com/mindspore-courses/orange-pi-mindspore.git 项目目录如下: ```bash -/home/HwHiAiUser/samples/notebooks/orange-pi-mindspore/tutorial/ -01-dev_start +/home/HwHiAiUser/samples/notebooks/orange-pi-mindspore/Online/ +01-quick_start 02-ResNet50 03-ViT 04-FCN @@ -35,6 +37,10 @@ git clone https://github.com/mindspore-courses/orange-pi-mindspore.git 11-Pix2Pix 12-Diffusion 13-ResNet50_transfer +14-qwen1.5-0.5b +15-tinyllama +16-DctNet +17-DeepSeek-R1-Distill-Qwen-1.5B ``` ## 2. 推理执行 @@ -42,8 +48,8 @@ git clone https://github.com/mindspore-courses/orange-pi-mindspore.git 步骤1 启动Jupyter Lab界面。 ```bash -cd /home/HwHiAiUser/samples/notebooks/ -./start_notebook.sh +(base) HwHiAiUser@orangepiaipro:~$ cd /home/HwHiAiUser/samples/notebooks/ +(base) HwHiAiUser@orangepiaipro:~$ ./start_notebook.sh ``` 在执行该脚本后,终端会出现如下打印信息,在打印信息中会有登录Jupyter Lab的网址链接。 @@ -58,7 +64,7 @@ cd /home/HwHiAiUser/samples/notebooks/ ![model-infer3](./images/model_infer3.png) -步骤2 在Jupyter Lab界面双击下图所示的案例目录,此处以“04-FCN”为例,即可进入到该案例的目录中。 +步骤2 在Jupyter Lab界面双击下图所示的案例目录,此处以“04-FCN”为例,即可进入到该案例的目录中。其他案例的操作流程类似,仅需选择对应的案例目录和 .ipynb 文件即可。 ![model-infer4](./images/model_infer4.png) @@ -69,3 +75,17 @@ cd /home/HwHiAiUser/samples/notebooks/ 步骤4 单击⏩按钮运行样例,在弹出的对话框中单击“Restart”按钮,此时该样例开始运行。 ![model-infer6](./images/model_infer6.png) + +## 3. 环境清理 + +推理执行完成后,需要在 Jupyter Lab 界面中,导航至 KERNELS > Shut Down All,手动关闭已经在运行的kernel,以防止运行其他案例时报错内存不足,导致其他案例无法正常执行。 + +![model-infer7](./images/model_infer7.png) + + +## 下一步 + +具体基于昇思MindSpore的案例开发详见: + +- [开发入门](./dev_start.ipynb) +