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",
+ "image/svg+xml": [
+ "\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",
+ "image/svg+xml": [
+ "\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",
+ "image/svg+xml": [
+ "\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",
+ "image/svg+xml": [
+ "\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",
+ "image/svg+xml": [
+ "\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",
+ "image/svg+xml": [
+ "\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",
+ "image/svg+xml": [
+ "\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",
+ "image/svg+xml": [
+ "\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,