From 1420b27cfb4f7519b09bbb304e9481ba992c58b9 Mon Sep 17 00:00:00 2001 From: Xv-M-S <1205507925@qq.com> Date: Wed, 4 Sep 2024 17:24:33 +0800 Subject: [PATCH] =?UTF-8?q?MindSpore2.3.1=E7=89=88=E6=9C=AC=E5=9C=A8?= =?UTF-8?q?=E5=90=AF=E6=99=BA=E7=A4=BE=E5=8C=BA=E6=98=87=E8=85=BE=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E7=9A=84=E9=80=82=E9=85=8D,=E5=88=9D=E5=AD=A6?= =?UTF-8?q?=E6=95=99=E7=A8=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../beginner/accelerate_with_static_graph.md | 30 +++++++++++-------- tutorials/source_en/beginner/autograd.md | 8 ++--- tutorials/source_en/beginner/model.md | 7 +++-- tutorials/source_en/beginner/quick_start.md | 5 +++- tutorials/source_en/beginner/train.md | 4 ++- .../accelerate_with_static_graph.ipynb | 30 +++++++++++-------- .../source_zh_cn/beginner/autograd.ipynb | 8 ++--- tutorials/source_zh_cn/beginner/model.ipynb | 7 +++-- .../source_zh_cn/beginner/quick_start.ipynb | 5 +++- tutorials/source_zh_cn/beginner/train.ipynb | 8 +++-- 10 files changed, 70 insertions(+), 42 deletions(-) diff --git a/tutorials/source_en/beginner/accelerate_with_static_graph.md b/tutorials/source_en/beginner/accelerate_with_static_graph.md index 7d20ca3aa1..551cb10073 100644 --- a/tutorials/source_en/beginner/accelerate_with_static_graph.md +++ b/tutorials/source_en/beginner/accelerate_with_static_graph.md @@ -39,7 +39,8 @@ class Network(nn.Cell): return logits model = Network() -input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) +model.to_float(ms.float16) +input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16)) output = model(input) print(output) ``` @@ -98,7 +99,8 @@ class Network(nn.Cell): return logits model = Network() -input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) +model.to_float(ms.float16) +input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16)) output = model(input) print(output) ``` @@ -161,14 +163,15 @@ class Network(nn.Cell): logits = self.dense_relu_sequential(x) return logits -input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) +input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16)) @ms.jit # Use the ms.jit decorator to make the decorated function run in static graph mode -def run(x): - model = Network() +def run(model, x): return model(x) -output = run(input) +model = Network() +model.to_float(ms.float16) +output = run(model, input) print(output) ``` @@ -216,14 +219,15 @@ class Network(nn.Cell): logits = self.dense_relu_sequential(x) return logits -input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) +input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16)) -def run(x): - model = Network() +def run(model, x): return model(x) +model = Network() +model.to_float(ms.float16) run_with_jit = ms.jit(run) # Transforming a function to execute as a static graph by calling jit -output = run_with_jit(input) +output = run_with_jit(model, input) print(output) ``` @@ -272,8 +276,9 @@ class Network(nn.Cell): logits = self.dense_relu_sequential(x) return logits -input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) +input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16)) model = Network() +model.to_float(ms.float16) output = model(input) print(output) ``` @@ -326,7 +331,8 @@ class Network(nn.Cell): return logits model = Network() -input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32)) +model.to_float(ms.float16) +input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16)) output = model(input) print(output) ``` diff --git a/tutorials/source_en/beginner/autograd.md b/tutorials/source_en/beginner/autograd.md index fa142dde22..01b7b9b66c 100644 --- a/tutorials/source_en/beginner/autograd.md +++ b/tutorials/source_en/beginner/autograd.md @@ -25,10 +25,10 @@ Computing graphs are a way to represent mathematical functions in a graph-theore In this model, $x$ is the input, $y$ is the correct value, and $w$ and $b$ are the parameters we need to optimize. ```python -x = ops.ones(5, mindspore.float32) # input tensor -y = ops.zeros(3, mindspore.float32) # expected output -w = Parameter(Tensor(np.random.randn(5, 3), mindspore.float32), name='w') # weight -b = Parameter(Tensor(np.random.randn(3,), mindspore.float32), name='b') # bias +x = ops.ones(5, mindspore.float16) # input tensor +y = ops.zeros(3, mindspore.float16) # expected output +w = Parameter(Tensor(np.random.randn(5, 3), mindspore.float16), name='w') # weight +b = Parameter(Tensor(np.random.randn(3,), mindspore.float16), name='b') # bias ``` We construct the computing function based on the computing process described by the computing graphs. diff --git a/tutorials/source_en/beginner/model.md b/tutorials/source_en/beginner/model.md index db1aa65ace..78d5758136 100644 --- a/tutorials/source_en/beginner/model.md +++ b/tutorials/source_en/beginner/model.md @@ -42,6 +42,7 @@ After completing construction, instantiate the `Network` object and look at its ```python model = Network() +model.to_float(mindspore.float16) print(model) ``` @@ -63,7 +64,7 @@ We construct an input data and call the model directly to obtain a two-dimension > The `model.construct()` method cannot be called directly. ```python -X = ops.ones((1, 28, 28), mindspore.float32) +X = ops.ones((1, 28, 28), mindspore.float16) logits = model(X) # print logits logits @@ -91,7 +92,7 @@ Predicted class: [4] In this section, we decompose each layer of the neural network model constructed in the previous section. First we construct a random data (3 images of 28x28) with shape (3, 28, 28) and pass through each neural network layer in turn to observe its effect. ```python -input_image = ops.ones((3, 28, 28), mindspore.float32) +input_image = ops.ones((3, 28, 28), mindspore.float16) print(input_image.shape) ``` @@ -119,6 +120,7 @@ print(flat_image.shape) ```python layer1 = nn.Dense(in_channels=28*28, out_channels=20) +layer1.to_float(mindspore.float16) hidden1 = layer1(flat_image) print(hidden1.shape) ``` @@ -178,6 +180,7 @@ seq_modules = nn.SequentialCell( nn.Dense(20, 10) ) +seq_modules.to_float(mindspore.float16) logits = seq_modules(input_image) print(logits.shape) ``` diff --git a/tutorials/source_en/beginner/quick_start.md b/tutorials/source_en/beginner/quick_start.md index 26ea0701f1..2db0e6c494 100644 --- a/tutorials/source_en/beginner/quick_start.md +++ b/tutorials/source_en/beginner/quick_start.md @@ -72,7 +72,8 @@ def datapipe(dataset, batch_size): image_transforms = [ vision.Rescale(1.0 / 255.0, 0), vision.Normalize(mean=(0.1307,), std=(0.3081,)), - vision.HWC2CHW() + vision.HWC2CHW(), + transforms.TypeCast(mindspore.float16) ] label_transform = transforms.TypeCast(mindspore.int32) @@ -140,6 +141,7 @@ class Network(nn.Cell): return logits model = Network() +model.to_float(mindspore.float16) print(model) ``` @@ -306,6 +308,7 @@ There are two steps to load the saved weights: ```python # Instantiate a random initialized model model = Network() +model.to_float(mindspore.float16) # Load checkpoint and load parameter to model param_dict = mindspore.load_checkpoint("model.ckpt") param_not_load, _ = mindspore.load_param_into_net(model, param_dict) diff --git a/tutorials/source_en/beginner/train.md b/tutorials/source_en/beginner/train.md index 98bda268d7..ca0e2b1849 100644 --- a/tutorials/source_en/beginner/train.md +++ b/tutorials/source_en/beginner/train.md @@ -35,7 +35,8 @@ def datapipe(path, batch_size): image_transforms = [ vision.Rescale(1.0 / 255.0, 0), vision.Normalize(mean=(0.1307,), std=(0.3081,)), - vision.HWC2CHW() + vision.HWC2CHW(), + transforms.TypeCast(mindspore.float16) ] label_transform = transforms.TypeCast(mindspore.int32) @@ -80,6 +81,7 @@ class Network(nn.Cell): return logits model = Network() +model.to_float(mindspore.float16) ``` ## Defining the Hyperparameter, Loss Function and Optimizer diff --git a/tutorials/source_zh_cn/beginner/accelerate_with_static_graph.ipynb b/tutorials/source_zh_cn/beginner/accelerate_with_static_graph.ipynb index 0c1018e20c..9c74996e3e 100644 --- a/tutorials/source_zh_cn/beginner/accelerate_with_static_graph.ipynb +++ b/tutorials/source_zh_cn/beginner/accelerate_with_static_graph.ipynb @@ -79,7 +79,8 @@ " return logits\n", "\n", "model = Network()\n", - "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))\n", + "model.to_float(ms.float16)\n", + "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16))\n", "output = model(input)\n", "print(output)" ] @@ -152,7 +153,8 @@ " return logits\n", "\n", "model = Network()\n", - "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))\n", + "model.to_float(ms.float16)\n", + "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16))\n", "output = model(input)\n", "print(output)" ] @@ -231,14 +233,15 @@ " logits = self.dense_relu_sequential(x)\n", " return logits\n", "\n", - "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))\n", + "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16))\n", "\n", "@ms.jit # 使用ms.jit装饰器,使被装饰的函数以静态图模式运行\n", - "def run(x):\n", - " model = Network()\n", + "def run(model, x):\n", " return model(x)\n", "\n", - "output = run(input)\n", + "model = Network()\n", + "model.to_float(ms.float16)\n", + "output = run(model, input)\n", "print(output)" ] }, @@ -302,14 +305,15 @@ " logits = self.dense_relu_sequential(x)\n", " return logits\n", "\n", - "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))\n", + "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16))\n", "\n", - "def run(x):\n", - " model = Network()\n", + "def run(model, x):\n", " return model(x)\n", "\n", + "model = Network()\n", + "model.to_float(ms.float16)\n", "run_with_jit = ms.jit(run) # 通过调用jit将函数转换为以静态图方式执行\n", - "output = run_with_jit(input)\n", + "output = run_with_jit(model, input)\n", "print(output)" ] }, @@ -374,8 +378,9 @@ " logits = self.dense_relu_sequential(x)\n", " return logits\n", "\n", - "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))\n", + "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16))\n", "model = Network()\n", + "model.to_float(ms.float16)\n", "output = model(input)\n", "print(output)" ] @@ -444,7 +449,8 @@ " return logits\n", "\n", "model = Network()\n", - "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))\n", + "model.to_float(ms.float16)\n", + "input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float16))\n", "output = model(input)\n", "print(output)" ] diff --git a/tutorials/source_zh_cn/beginner/autograd.ipynb b/tutorials/source_zh_cn/beginner/autograd.ipynb index 8bacbd7fdb..07217a6d61 100644 --- a/tutorials/source_zh_cn/beginner/autograd.ipynb +++ b/tutorials/source_zh_cn/beginner/autograd.ipynb @@ -57,10 +57,10 @@ "metadata": {}, "outputs": [], "source": [ - "x = ops.ones(5, mindspore.float32) # input tensor\n", - "y = ops.zeros(3, mindspore.float32) # expected output\n", - "w = Parameter(Tensor(np.random.randn(5, 3), mindspore.float32), name='w') # weight\n", - "b = Parameter(Tensor(np.random.randn(3,), mindspore.float32), name='b') # bias" + "x = ops.ones(5, mindspore.float16) # input tensor\n", + "y = ops.zeros(3, mindspore.float16) # expected output\n", + "w = Parameter(Tensor(np.random.randn(5, 3), mindspore.float16), name='w') # weight\n", + "b = Parameter(Tensor(np.random.randn(3,), mindspore.float16), name='b') # bias" ] }, { diff --git a/tutorials/source_zh_cn/beginner/model.ipynb b/tutorials/source_zh_cn/beginner/model.ipynb index 2db7b97b0f..313bf74044 100644 --- a/tutorials/source_zh_cn/beginner/model.ipynb +++ b/tutorials/source_zh_cn/beginner/model.ipynb @@ -121,6 +121,7 @@ ], "source": [ "model = Network()\n", + "model.to_float(mindspore.float16)\n", "print(model)" ] }, @@ -151,7 +152,7 @@ } ], "source": [ - "X = ops.ones((1, 28, 28), mindspore.float32)\n", + "X = ops.ones((1, 28, 28), mindspore.float16)\n", "logits = model(X)\n", "# print logits\n", "logits" @@ -213,7 +214,7 @@ } ], "source": [ - "input_image = ops.ones((3, 28, 28), mindspore.float32)\n", + "input_image = ops.ones((3, 28, 28), mindspore.float16)\n", "print(input_image.shape)" ] }, @@ -285,6 +286,7 @@ ], "source": [ "layer1 = nn.Dense(in_channels=28*28, out_channels=20)\n", + "layer1.to_float(mindspore.float16)\n", "hidden1 = layer1(flat_image)\n", "print(hidden1.shape)" ] @@ -391,6 +393,7 @@ " nn.Dense(20, 10)\n", ")\n", "\n", + "seq_modules.to_float(mindspore.float16)\n", "logits = seq_modules(input_image)\n", "print(logits.shape)" ] diff --git a/tutorials/source_zh_cn/beginner/quick_start.ipynb b/tutorials/source_zh_cn/beginner/quick_start.ipynb index a07153387a..eb52799dec 100644 --- a/tutorials/source_zh_cn/beginner/quick_start.ipynb +++ b/tutorials/source_zh_cn/beginner/quick_start.ipynb @@ -138,7 +138,8 @@ " image_transforms = [\n", " vision.Rescale(1.0 / 255.0, 0),\n", " vision.Normalize(mean=(0.1307,), std=(0.3081,)),\n", - " vision.HWC2CHW()\n", + " vision.HWC2CHW(),\n", + " transforms.TypeCast(mindspore.float16) \n", " ]\n", " label_transform = transforms.TypeCast(mindspore.int32)\n", "\n", @@ -266,6 +267,7 @@ " return logits\n", "\n", "model = Network()\n", + "model.to_float(mindspore.float16)\n", "print(model)" ] }, @@ -510,6 +512,7 @@ "source": [ "# Instantiate a random initialized model\n", "model = Network()\n", + "model.to_float(mindspore.float16)\n", "# Load checkpoint and load parameter to model\n", "param_dict = mindspore.load_checkpoint(\"model.ckpt\")\n", "param_not_load, _ = mindspore.load_param_into_net(model, param_dict)\n", diff --git a/tutorials/source_zh_cn/beginner/train.ipynb b/tutorials/source_zh_cn/beginner/train.ipynb index b11e86e108..3b8bbaeb60 100644 --- a/tutorials/source_zh_cn/beginner/train.ipynb +++ b/tutorials/source_zh_cn/beginner/train.ipynb @@ -85,7 +85,8 @@ " image_transforms = [\n", " vision.Rescale(1.0 / 255.0, 0),\n", " vision.Normalize(mean=(0.1307,), std=(0.3081,)),\n", - " vision.HWC2CHW()\n", + " vision.HWC2CHW(),\n", + " transforms.TypeCast(mindspore.float16)\n", " ]\n", " label_transform = transforms.TypeCast(mindspore.int32)\n", "\n", @@ -139,7 +140,8 @@ " logits = self.dense_relu_sequential(x)\n", " return logits\n", "\n", - "model = Network()" + "model = Network()\n", + "model.to_float(mindspore.float16)" ] }, { @@ -464,4 +466,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} -- Gitee