From 952ed02be3f337d31db18acc481c00d66150cd68 Mon Sep 17 00:00:00 2001 From: Y-yyyyq <648203301@qq.com> Date: Sat, 6 Dec 2025 21:53:09 +0800 Subject: [PATCH 1/7] =?UTF-8?q?ops=E5=8F=98=E6=9B=B4=E4=B8=BAmint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0_alexnet.ipynb | 962 +++++++++++++++++- 1 file changed, 944 insertions(+), 18 deletions(-) diff --git a/chapter_07_convolutional-modern/0_alexnet.ipynb b/chapter_07_convolutional-modern/0_alexnet.ipynb index 8fcbb37..5343160 100644 --- a/chapter_07_convolutional-modern/0_alexnet.ipynb +++ b/chapter_07_convolutional-modern/0_alexnet.ipynb @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "origin_pos": 2, "tab": [ @@ -34,7 +34,8 @@ "outputs": [], "source": [ "from d2l import mindspore as d2l\n", - "from mindspore import nn, Tensor, ops\n", + "import mindspore as ms\n", + "from mindspore import nn, mint\n", "\n", "net = nn.SequentialCell([\n", " # 这里使用一个11*11的更大窗口来捕捉对象。\n", @@ -76,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": { "origin_pos": 6, "tab": [ @@ -113,10 +114,11 @@ } ], "source": [ - "X = ops.randn(1, 1, 224, 224)\n", + "X = mint.randn(1, 1, 224, 224)\n", + "\n", "for layer in net:\n", " X = layer(X)\n", - " print(layer.__class__.__name__,'output shape:\\t',X.shape)" + " print(layer.__class__.__name__, 'output shape:\\t', X.shape)" ] }, { @@ -134,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": { "origin_pos": 9, "tab": [ @@ -160,7 +162,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "origin_pos": 11, "tab": [ @@ -172,20 +174,944 @@ "name": "stdout", "output_type": "stream", "text": [ - "loss 0.352, train acc 0.932, test acc 0.875\n", - "3439.4 examples/sec\n" + "loss 0.329, train acc 0.879, test acc 0.882\n", + "2164.7 examples/sec\n" ] }, { "data": { - "image/svg+xml": "\n\n\n \n \n \n \n 2021-11-10T00:51:30.453931\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2025-12-05T21:03:42.623627\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.10.7, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -198,9 +1124,9 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python [conda env:mindspore] *", + "display_name": "Python 3.10", "language": "python", - "name": "conda-env-mindspore-py" + "name": "py310" }, "language_info": { "codemirror_mode": { @@ -212,7 +1138,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.10.14" }, "rise": { "autolaunch": true, From 80aa8587a55391ec909ac309a18983835cc9b8e3 Mon Sep 17 00:00:00 2001 From: Y-yyyyq <648203301@qq.com> Date: Sat, 6 Dec 2025 21:54:21 +0800 Subject: [PATCH 2/7] =?UTF-8?q?ops=E5=8F=98=E6=9B=B4=E4=B8=BAmint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_07_convolutional-modern/1_vgg.ipynb | 951 +++++++++++++++++++- 1 file changed, 938 insertions(+), 13 deletions(-) diff --git a/chapter_07_convolutional-modern/1_vgg.ipynb b/chapter_07_convolutional-modern/1_vgg.ipynb index f050e3a..7f776be 100644 --- a/chapter_07_convolutional-modern/1_vgg.ipynb +++ b/chapter_07_convolutional-modern/1_vgg.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "origin_pos": 4, "tab": [ @@ -35,7 +35,8 @@ "outputs": [], "source": [ "from d2l import mindspore as d2l\n", - "from mindspore import nn, ops\n", + "import mindspore as ms\n", + "from mindspore import nn, mint\n", "\n", "def vgg_block(num_convs, in_channels, out_channels):\n", " layers = []\n", @@ -130,7 +131,7 @@ } ], "source": [ - "X = ops.randn(1, 1, 224, 224)\n", + "X = mint.randn(1, 1, 224, 224)\n", "for blk in net:\n", " X = blk(X)\n", " print(blk.__class__.__name__,'output shape:\\t',X.shape)" @@ -188,20 +189,944 @@ "name": "stdout", "output_type": "stream", "text": [ - "loss 0.166, train acc 0.972, test acc 0.918\n", - "2377.6 examples/sec\n" + "loss 0.174, train acc 0.935, test acc 0.920\n", + "1533.7 examples/sec\n" ] }, { "data": { - "image/svg+xml": "\n\n\n \n \n \n \n 2021-11-10T08:18:58.999423\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2025-12-05T21:17:42.227788\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.10.7, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -215,9 +1140,9 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "base", + "display_name": "Python 3.10", "language": "python", - "name": "python3" + "name": "py310" }, "language_info": { "codemirror_mode": { @@ -229,7 +1154,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12 (main, Apr 4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]" + "version": "3.10.14" }, "rise": { "autolaunch": true, From b73234a7a46adb85076f0641c43d70c6f953db01 Mon Sep 17 00:00:00 2001 From: Y-yyyyq <648203301@qq.com> Date: Sat, 6 Dec 2025 21:55:05 +0800 Subject: [PATCH 3/7] =?UTF-8?q?ops=E5=8F=98=E6=9B=B4=E4=B8=BAmint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_07_convolutional-modern/2_nin.ipynb | 981 +++++++++++++++++++- 1 file changed, 962 insertions(+), 19 deletions(-) diff --git a/chapter_07_convolutional-modern/2_nin.ipynb b/chapter_07_convolutional-modern/2_nin.ipynb index edd585c..9f629e4 100644 --- a/chapter_07_convolutional-modern/2_nin.ipynb +++ b/chapter_07_convolutional-modern/2_nin.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "origin_pos": 2, "tab": [ @@ -35,14 +35,17 @@ "outputs": [], "source": [ "from d2l import mindspore as d2l\n", - "from mindspore import nn, ops\n", + "import mindspore as ms\n", + "from mindspore import nn, mint\n", "\n", "def nin_block(in_channels, out_channels, kernel_size, strides, padding):\n", " return nn.SequentialCell([\n", " nn.Conv2d(in_channels, out_channels, kernel_size, strides, 'pad', padding, has_bias=True),\n", " nn.ReLU(),\n", + " # 1x1 卷积层 (第一个 MLP 层)\n", " nn.Conv2d(out_channels, out_channels, kernel_size=1, has_bias=True),\n", " nn.ReLU(),\n", + " # 1x1 卷积层 (第二个 MLP 层)\n", " nn.Conv2d(out_channels, out_channels, kernel_size=1, has_bias=True),\n", " nn.ReLU()])" ] @@ -67,15 +70,7 @@ "pytorch" ] }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:root:This parameter `keep_prob` will be deprecated, please use `p` instead.\n" - ] - } - ], + "outputs": [], "source": [ "net = nn.SequentialCell([\n", " nin_block(1, 96, kernel_size=11, strides=4, padding=0),\n", @@ -123,13 +118,13 @@ "MaxPool2d output shape:\t (1, 384, 5, 5)\n", "Dropout output shape:\t (1, 384, 5, 5)\n", "SequentialCell output shape:\t (1, 10, 5, 5)\n", - "AvgPool2d output shape:\t (1, 10, 1, 1)\n", + "AdaptiveAvgPool2d output shape:\t (1, 10, 1, 1)\n", "Flatten output shape:\t (1, 10)\n" ] } ], "source": [ - "X = ops.randn(1, 1, 224, 224)\n", + "X = mint.randn(1, 1, 224, 224)\n", "for blk in net:\n", " X = blk(X)\n", " print(blk.__class__.__name__,'output shape:\\t',X.shape)" @@ -160,13 +155,961 @@ "name": "stdout", "output_type": "stream", "text": [ - "loss 0.097, train acc 0.974, test acc 0.981\n", - "1615.5 examples/sec\n" + "loss 0.407, train acc 0.849, test acc 0.854\n", + "1712.9 examples/sec\n" ] }, { "data": { - "image/svg+xml": "\n\n\n \n \n \n \n 2023-03-07T11:22:09.776060\n image/svg+xml\n \n \n Matplotlib v3.5.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2025-12-05T21:29:43.789309\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.10.7, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], "text/plain": [ "
" ] @@ -185,9 +1128,9 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3.10", "language": "python", - "name": "python3" + "name": "py310" }, "language_info": { "codemirror_mode": { @@ -199,7 +1142,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.12" + "version": "3.10.14" }, "rise": { "autolaunch": true, From 1040891c7f387d2e56a3583251412eaad2c0b8a2 Mon Sep 17 00:00:00 2001 From: Y-yyyyq <648203301@qq.com> Date: Sat, 6 Dec 2025 21:55:38 +0800 Subject: [PATCH 4/7] =?UTF-8?q?ops=E5=8F=98=E6=9B=B4=E4=B8=BAmint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../3_googlenet.ipynb | 992 +++++++++++++++++- 1 file changed, 968 insertions(+), 24 deletions(-) diff --git a/chapter_07_convolutional-modern/3_googlenet.ipynb b/chapter_07_convolutional-modern/3_googlenet.ipynb index f620d58..2ab8655 100644 --- a/chapter_07_convolutional-modern/3_googlenet.ipynb +++ b/chapter_07_convolutional-modern/3_googlenet.ipynb @@ -25,17 +25,18 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from d2l import mindspore as d2l\n", - "from mindspore import nn, ops" + "import mindspore as ms\n", + "from mindspore import nn, mint" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "origin_pos": 2, "tab": [ @@ -55,19 +56,18 @@ " self.p4_1 = nn.MaxPool2d(kernel_size=3, stride=1, pad_mode='same')\n", " self.p4_2 = nn.Conv2d(in_channels, c4, kernel_size=1, has_bias=True)\n", " self.relu = nn.ReLU()\n", - " self.concat = ops.Concat(axis=1)\n", "\n", " def construct(self, x):\n", " p1 = self.relu(self.p1_1(x))\n", " p2 = self.relu(self.p2_2(self.relu(self.p2_1(x))))\n", " p3 = self.relu(self.p3_2(self.relu(self.p3_1(x))))\n", " p4 = self.relu(self.p4_2(self.p4_1(x)))\n", - " return self.concat((p1, p2, p3, p4))" + " return mint.cat((p1, p2, p3, p4), dim=1)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -76,7 +76,7 @@ "((0, 0), (0, 0), (1, 1), (1, 1))" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -100,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": { "origin_pos": 22, "tab": [ @@ -145,9 +145,7 @@ }, { "cell_type": "markdown", - "metadata": { - "collapsed": false - }, + "metadata": {}, "source": [] }, { @@ -163,7 +161,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": { "origin_pos": 26, "tab": [ @@ -185,7 +183,7 @@ } ], "source": [ - "X = ops.randn(1, 1, 96, 96)\n", + "X = mint.randn(1, 1, 96, 96)\n", "for blk in net:\n", " X = blk(X)\n", " print(blk.__class__.__name__,'output shape:\\t',X.shape)" @@ -204,7 +202,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": { "origin_pos": 29, "tab": [ @@ -216,20 +214,966 @@ "name": "stdout", "output_type": "stream", "text": [ - "loss 0.355, train acc 0.919, test acc 0.883\n", - "2369.9 examples/sec\n" + "loss 0.231, train acc 0.912, test acc 0.892\n", + "273.0 examples/sec\n" ] }, { "data": { - "image/svg+xml": "\n\n\n \n \n \n \n 2021-11-10T12:39:20.801417\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2025-12-05T22:50:57.839739\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.10.7, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -243,9 +1187,9 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python [conda env:mindspore] *", + "display_name": "Python 3.10", "language": "python", - "name": "conda-env-mindspore-py" + "name": "py310" }, "language_info": { "codemirror_mode": { @@ -257,7 +1201,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.10.14" }, "rise": { "autolaunch": true, From 3f1f2ad071b62efb4f0c8c1310c4eebb0491f0a0 Mon Sep 17 00:00:00 2001 From: Y-yyyyq <648203301@qq.com> Date: Sat, 6 Dec 2025 21:57:07 +0800 Subject: [PATCH 5/7] =?UTF-8?q?ops=E5=8F=98=E6=9B=B4=E4=B8=BAmint=EF=BC=8C?= =?UTF-8?q?=E4=BF=9D=E7=95=99ops.Assign()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../4_batch-norm.ipynb | 1845 ++++++++++++++++- 1 file changed, 1814 insertions(+), 31 deletions(-) diff --git a/chapter_07_convolutional-modern/4_batch-norm.ipynb b/chapter_07_convolutional-modern/4_batch-norm.ipynb index b32ab2a..8f5d839 100644 --- a/chapter_07_convolutional-modern/4_batch-norm.ipynb +++ b/chapter_07_convolutional-modern/4_batch-norm.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "origin_pos": 2, "tab": [ @@ -35,21 +35,26 @@ "outputs": [], "source": [ "from d2l import mindspore as d2l\n", - "from mindspore import nn, ops, Parameter\n", + "import mindspore as ms\n", + "from mindspore import nn, mint, Parameter\n", + "import mindspore.ops as ops \n", "\n", "def batch_norm(X, gamma, beta, moving_mean, moving_var, eps, momentum, training):\n", " if not training:\n", - " X_hat = (X - moving_mean) / ops.sqrt(moving_var + eps)\n", + " X_hat = (X - moving_mean) / mint.sqrt(moving_var + eps)\n", " else:\n", " if len(X.shape) == 2:\n", - " mean = X.mean(axis=0)\n", - " var = ((X - mean) ** 2).mean(axis=0)\n", + " mean = mint.mean(X, dim=0)\n", + " var = mint.mean(((X - mean) ** 2), dim=0)\n", " else:\n", - " mean = X.mean(axis=(0, 2, 3), keep_dims=True)\n", - " var = ((X - mean) ** 2).mean(axis=(0, 2, 3), keep_dims=True)\n", - " X_hat = (X - mean) / ops.sqrt(var + eps)\n", + " mean = mint.mean(X, dim=(0, 2, 3), keepdim=True)\n", + " var = mint.mean(((X - mean) ** 2), dim=(0, 2, 3), keepdim=True)\n", + " \n", + " X_hat = (X - mean) / mint.sqrt(var + eps) \n", + " \n", " moving_mean = momentum * moving_mean + (1.0 - momentum) * mean\n", " moving_var = momentum * moving_var + (1.0 - momentum) * var\n", + " \n", " Y = gamma * X_hat + beta\n", " return Y, moving_mean, moving_var" ] @@ -83,10 +88,10 @@ " shape = (1, num_features)\n", " else:\n", " shape = (1, num_features, 1, 1)\n", - " self.gamma = Parameter(ops.ones(shape))\n", - " self.beta = Parameter(ops.zeros(shape))\n", - " self.moving_mean = Parameter(ops.zeros(shape), requires_grad=False)\n", - " self.moving_var = Parameter(ops.ones(shape), requires_grad=False)\n", + " self.gamma = Parameter(mint.ones(shape))\n", + " self.beta = Parameter(mint.zeros(shape))\n", + " self.moving_mean = Parameter(mint.zeros(shape), requires_grad=False)\n", + " self.moving_var = Parameter(mint.ones(shape), requires_grad=False)\n", " self.assign = ops.Assign()\n", " \n", " def construct(self, X):\n", @@ -155,20 +160,899 @@ "name": "stdout", "output_type": "stream", "text": [ - "loss 0.310, train acc 0.917, test acc 0.871\n", - "21207.8 examples/sec\n" + "loss 0.254, train acc 0.907, test acc 0.869\n", + "3564.4 examples/sec\n" ] }, { "data": { - "image/svg+xml": "\n\n\n \n \n \n \n 2021-11-10T13:18:50.194829\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2025-12-06T15:16:01.572531\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.8.4, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -202,8 +1086,8 @@ { "data": { "text/plain": [ - "(Tensor(shape=[6], dtype=Float32, value= [ 9.24828827e-01, 3.10568929e+00, 7.13598311e-01, 3.69630909e+00, 2.95036316e+00, 4.04445601e+00]),\n", - " Tensor(shape=[6], dtype=Float32, value= [-1.06089866e+00, 2.34471893e+00, -1.04674685e+00, -1.77911389e+00, -8.11961770e-01, -1.47539651e+00]))" + "(Tensor(shape=[6], dtype=Float32, value= [ 2.80600786e+00, 4.62932682e+00, 1.79432869e+00, 2.79423308e+00, 2.50639129e+00, 2.26208186e+00]),\n", + " Tensor(shape=[6], dtype=Float32, value= [ 2.92221975e+00, -2.31010771e+00, -1.24783182e+00, -1.68998408e+00, 2.63152337e+00, -1.67827952e+00]))" ] }, "execution_count": 6, @@ -272,20 +1156,919 @@ "name": "stdout", "output_type": "stream", "text": [ - "loss 0.310, train acc 0.919, test acc 0.825\n", - "45831.4 examples/sec\n" + "loss 0.256, train acc 0.906, test acc 0.872\n", + "12960.0 examples/sec\n" ] }, { "data": { - "image/svg+xml": "\n\n\n \n \n \n \n 2021-11-10T13:19:24.476850\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2025-12-06T15:17:32.772783\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.8.4, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -297,9 +2080,9 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python [conda env:mindspore] *", + "display_name": "Python 3.10", "language": "python", - "name": "conda-env-mindspore-py" + "name": "py310" }, "language_info": { "codemirror_mode": { @@ -311,7 +2094,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.10.14" }, "rise": { "autolaunch": true, From dff82449e11ce87f6dd4cc9810c3ef167c6ff955 Mon Sep 17 00:00:00 2001 From: Y-yyyyq <648203301@qq.com> Date: Sat, 6 Dec 2025 21:58:03 +0800 Subject: [PATCH 6/7] =?UTF-8?q?ops=E5=8F=98=E6=9B=B4=E4=B8=BAmint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../5_resnet.ipynb | 959 +++++++++++++++++- 1 file changed, 943 insertions(+), 16 deletions(-) diff --git a/chapter_07_convolutional-modern/5_resnet.ipynb b/chapter_07_convolutional-modern/5_resnet.ipynb index a1754df..7068a52 100644 --- a/chapter_07_convolutional-modern/5_resnet.ipynb +++ b/chapter_07_convolutional-modern/5_resnet.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "origin_pos": 2, "tab": [ @@ -35,7 +35,8 @@ "outputs": [], "source": [ "from d2l import mindspore as d2l\n", - "from mindspore import nn, ops\n", + "import mindspore as ms\n", + "from mindspore import nn, mint\n", "\n", "class Residual(nn.Cell): \n", " def __init__(self, input_channels, num_channels,\n", @@ -97,7 +98,7 @@ ], "source": [ "blk = Residual(3, 3)\n", - "X = ops.rand(4, 3, 6, 6)\n", + "X = mint.rand(4, 3, 6, 6)\n", "Y = blk(X)\n", "Y.shape" ] @@ -123,6 +124,13 @@ ] }, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, { "data": { "text/plain": [ @@ -211,7 +219,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "SequentialCell output shape:\t (1, 64, 56, 56)\n", + ".SequentialCell output shape:\t (1, 64, 56, 56)\n", "SequentialCell output shape:\t (1, 64, 56, 56)\n", "SequentialCell output shape:\t (1, 128, 28, 28)\n", "SequentialCell output shape:\t (1, 256, 14, 14)\n", @@ -223,7 +231,7 @@ } ], "source": [ - "X = ops.randn(1, 1, 224, 224)\n", + "X = mint.randn(1, 1, 224, 224)\n", "for layer in net:\n", " X = layer(X)\n", " print(layer.__class__.__name__,'output shape:\\t',X.shape)" @@ -242,7 +250,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": { "origin_pos": 33, "tab": [ @@ -254,20 +262,939 @@ "name": "stdout", "output_type": "stream", "text": [ - "loss 0.046, train acc 0.998, test acc 0.913\n", - "4380.1 examples/sec\n" + "loss 0.028, train acc 0.991, test acc 0.909\n", + "525.8 examples/sec\n" ] }, { "data": { - "image/svg+xml": "\n\n\n \n \n \n \n 2021-11-10T13:29:17.287687\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2025-12-06T15:41:52.113606\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.8.4, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -281,9 +1208,9 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python [conda env:mindspore] *", + "display_name": "Python 3.10", "language": "python", - "name": "conda-env-mindspore-py" + "name": "py310" }, "language_info": { "codemirror_mode": { @@ -295,7 +1222,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.10.14" }, "rise": { "autolaunch": true, From 646cf43b076a389f496e1339930e1a03ed3da43b Mon Sep 17 00:00:00 2001 From: Y-yyyyq <648203301@qq.com> Date: Sat, 6 Dec 2025 21:58:53 +0800 Subject: [PATCH 7/7] =?UTF-8?q?ops=E5=8F=98=E6=9B=B4=E4=B8=BAmint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../6_densenet.ipynb | 916 +++++++++++++++++- 1 file changed, 897 insertions(+), 19 deletions(-) diff --git a/chapter_07_convolutional-modern/6_densenet.ipynb b/chapter_07_convolutional-modern/6_densenet.ipynb index 918f4a1..9e3f86a 100644 --- a/chapter_07_convolutional-modern/6_densenet.ipynb +++ b/chapter_07_convolutional-modern/6_densenet.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "origin_pos": 6, "tab": [ @@ -35,7 +35,8 @@ "outputs": [], "source": [ "from d2l import mindspore as d2l\n", - "from mindspore import nn, ops\n", + "import mindspore as ms\n", + "from mindspore import nn, mint\n", "\n", "def conv_block(input_channels, num_channels):\n", " return nn.SequentialCell([\n", @@ -50,13 +51,11 @@ " layer.append(conv_block(\n", " num_channels * i + input_channels, num_channels))\n", " self.net = nn.CellList(layer)\n", - " self.concat = ops.Concat(axis=1)\n", " \n", " def construct(self, X):\n", " for blk in self.net:\n", " Y = blk(X)\n", - " # 连接通道维度上每个块的输入和输出\n", - " X = self.concat((X, Y))\n", + " X = mint.cat((X, Y), dim=1)\n", " return X" ] }, @@ -95,7 +94,7 @@ ], "source": [ "blk = DenseBlock(2, 3, 10)\n", - "X = ops.randn(4, 3, 8, 8)\n", + "X = mint.randn(4, 3, 8, 8)\n", "Y = blk(X)\n", "Y.shape" ] @@ -143,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "origin_pos": 18, "tab": [ @@ -157,7 +156,7 @@ "(4, 10, 4, 4)" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -180,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "origin_pos": 30, "tab": [ @@ -239,20 +238,899 @@ "name": "stdout", "output_type": "stream", "text": [ - "loss 0.159, train acc 0.981, test acc 0.880\n", - "4650.9 examples/sec\n" + "loss 0.121, train acc 0.957, test acc 0.866\n", + "811.2 examples/sec\n" ] }, { "data": { - "image/svg+xml": "\n\n\n \n \n \n \n 2021-11-10T13:45:41.858420\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2025-12-06T15:59:49.248880\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.8.4, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -266,9 +1144,9 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python [conda env:mindspore] *", + "display_name": "Python 3.10", "language": "python", - "name": "conda-env-mindspore-py" + "name": "py310" }, "language_info": { "codemirror_mode": { @@ -280,7 +1158,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.10.14" }, "rise": { "autolaunch": true,