From 3cde821fdec76c8ff91e69bf494923529bfbb348 Mon Sep 17 00:00:00 2001 From: wangyuansheng8 Date: Tue, 24 Jun 2025 21:11:21 +0800 Subject: [PATCH 1/9] update readme --- README.zh.md | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/README.zh.md b/README.zh.md index f16a5bd..7b060c0 100644 --- a/README.zh.md +++ b/README.zh.md @@ -57,15 +57,28 @@ Apex及Apex-patch的卸载只需执行命令: ## 自动混合精度(AMP) 使用apex.amp进行混合精度训练: -``` -model = torch.nn.Linear(D_in, D_out).npu() -optimzier = torch.optim.SGD(model.parameters(), lr=1e-3) - -model, optimizer = amp.initialize(model, optimizer, opt_level='O1') -... -with amp.scale_loss(loss, optimizer) as scaled_loss: -  scaled_loss.backward() -... +```diff + import torch + from apex import amp + + + epoch = 10 + loss_function = torch.nn.MSELoss() + input_data = [torch.rand(16, device='npu') for i in range(10)] + dataset = [(data, 0.5 * torch.sum(data)) for data in input_data] + model = torch.nn.Linear(in_features=16, out_features=1, device='npu') + optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) ++ # 使用amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练 ++ model, optimizer = amp.initialize(models=model, optimizers=optimizer, opt_level='O1') + for i in range(epoch): + for x, target in dataset: + optimizer.zero_grad() + output = model(x) + loss = loss_function(output, target) ++ # 使用amp.scale_loss方法包装损失值和优化器进行动态损失缩放 ++ with amp.scale_loss(loss, optimizer) as scaled_loss: + scaled_loss.backward() + optimizer.step() ``` 详细使用方式请请参考[Apex官方文档](https://nvidia.github.io/apex/amp.html)。 -- Gitee From dc9250da7dcea150a3b6e5c1650b2260f70a369e Mon Sep 17 00:00:00 2001 From: wangyuansheng8 Date: Tue, 24 Jun 2025 21:20:04 +0800 Subject: [PATCH 2/9] update readme --- README.zh.md | 76 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 24 deletions(-) diff --git a/README.zh.md b/README.zh.md index 7b060c0..5eccc84 100644 --- a/README.zh.md +++ b/README.zh.md @@ -59,7 +59,7 @@ Apex及Apex-patch的卸载只需执行命令: 使用apex.amp进行混合精度训练: ```diff import torch - from apex import amp + import apex epoch = 10 @@ -68,15 +68,15 @@ Apex及Apex-patch的卸载只需执行命令: dataset = [(data, 0.5 * torch.sum(data)) for data in input_data] model = torch.nn.Linear(in_features=16, out_features=1, device='npu') optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) -+ # 使用amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练 -+ model, optimizer = amp.initialize(models=model, optimizers=optimizer, opt_level='O1') ++ # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练 ++ model, optimizer = apex.amp.initialize(models=model, optimizers=optimizer, opt_level='O1') for i in range(epoch): for x, target in dataset: optimizer.zero_grad() output = model(x) loss = loss_function(output, target) -+ # 使用amp.scale_loss方法包装损失值和优化器进行动态损失缩放 -+ with amp.scale_loss(loss, optimizer) as scaled_loss: ++ # 使用apex.amp.scale_loss方法包装损失值和优化器进行动态损失缩放 ++ with apex.amp.scale_loss(loss, optimizer) as scaled_loss: scaled_loss.backward() optimizer.step() ``` @@ -85,30 +85,58 @@ Apex及Apex-patch的卸载只需执行命令: ## 使用融合梯度进行scale/unscale优化加速 -在amp.initialize()中将参数combine_grad设置为True,如: -``` -model = torch.nn.Linear(D_in, D_out).npu() -optimzier = torch.optim.SGD(model.parameters(), lr=1e-3) - -model, optimizer = amp.initialize(model, optimizer, opt_level='O1', combine_grad=True)  # 增加combine_grad参数 -... -with amp.scale_loss(loss, optimizer) as scaled_loss: -  scaled_loss.backward() -... +在apex.amp.initialize()中将参数combine_grad设置为True,如: +```diff + import torch + import apex + + + epoch = 10 + loss_function = torch.nn.MSELoss() + input_data = [torch.rand(16, device='npu') for i in range(10)] + dataset = [(data, 0.5 * torch.sum(data)) for data in input_data] + model = torch.nn.Linear(in_features=16, out_features=1, device='npu') + optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) ++ # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 ++ model, optimizer = apex.amp.initialize(models=model, optimizers=optimizer, opt_level='O1', combine_grad=True) + for i in range(epoch): + for x, target in dataset: + optimizer.zero_grad() + output = model(x) + loss = loss_function(output, target) ++ # 使用apex.amp.scale_loss方法包装损失值和优化器进行动态损失缩放 ++ with apex.amp.scale_loss(loss, optimizer) as scaled_loss: + scaled_loss.backward() + optimizer.step() ``` ## 使用融合优化器优化加速 将torch原生优化器torch.optim.xxx替换为apex.optimizers.xxx, 其中xxx为融合优化器名称,apex-patch支持的优化器见*特性介绍*。 -``` -model = torch.nn.Linear(D_in, D_out).npu() -optimzier = apex.optimizers.NpuFusedSGD(model.parameters(), lr=1e-3) # 使用apex.optimizers.NpuFusedSGD - -model, optimizer = amp.initialize(model, optimizer, opt_level='O1', combine_grad=True) -... -with amp.scale_loss(loss, optimizer) as scaled_loss: -  scaled_loss.backward() -... +```diff + import torch + import apex + + + epoch = 10 + loss_function = torch.nn.MSELoss() + input_data = [torch.rand(16, device='npu') for i in range(10)] + dataset = [(data, 0.5 * torch.sum(data)) for data in input_data] + model = torch.nn.Linear(in_features=16, out_features=1, device='npu') +- optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) ++ # 使用apex.optimizers.NpuFusedSGD替换torch.optim.SGD ++ optimzier = apex.optimizers.NpuFusedSGD(model.parameters(), lr=1e-3) ++ # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 ++ model, optimizer = apex.amp.initialize(models=model, optimizers=optimizer, opt_level='O1', combine_grad=True) + for i in range(epoch): + for x, target in dataset: + optimizer.zero_grad() + output = model(x) + loss = loss_function(output, target) ++ # 使用apex.amp.scale_loss方法包装损失值和优化器进行动态损失缩放 ++ with apex.amp.scale_loss(loss, optimizer) as scaled_loss: + scaled_loss.backward() + optimizer.step() ``` # 特性介绍 -- Gitee From f5e70038758613d72019ad03cab5b753287529b9 Mon Sep 17 00:00:00 2001 From: wangyuansheng8 Date: Wed, 25 Jun 2025 12:28:07 +0800 Subject: [PATCH 3/9] update readme --- README.zh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.zh.md b/README.zh.md index 5eccc84..9811d72 100644 --- a/README.zh.md +++ b/README.zh.md @@ -125,7 +125,7 @@ Apex及Apex-patch的卸载只需执行命令: model = torch.nn.Linear(in_features=16, out_features=1, device='npu') - optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) + # 使用apex.optimizers.NpuFusedSGD替换torch.optim.SGD -+ optimzier = apex.optimizers.NpuFusedSGD(model.parameters(), lr=1e-3) ++ optimizer = apex.optimizers.NpuFusedSGD(model.parameters(), lr=1e-3) + # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 + model, optimizer = apex.amp.initialize(models=model, optimizers=optimizer, opt_level='O1', combine_grad=True) for i in range(epoch): -- Gitee From 9bb6f57685ac199f1d49efe12d81c54a4ab80ba3 Mon Sep 17 00:00:00 2001 From: wangyuansheng8 Date: Wed, 25 Jun 2025 12:46:25 +0800 Subject: [PATCH 4/9] update readme --- README.zh.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.zh.md b/README.zh.md index 9811d72..445a4b7 100644 --- a/README.zh.md +++ b/README.zh.md @@ -65,7 +65,7 @@ Apex及Apex-patch的卸载只需执行命令: epoch = 10 loss_function = torch.nn.MSELoss() input_data = [torch.rand(16, device='npu') for i in range(10)] - dataset = [(data, 0.5 * torch.sum(data)) for data in input_data] + dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] model = torch.nn.Linear(in_features=16, out_features=1, device='npu') optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) + # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练 @@ -75,9 +75,10 @@ Apex及Apex-patch的卸载只需执行命令: optimizer.zero_grad() output = model(x) loss = loss_function(output, target) +- loss.backward() + # 使用apex.amp.scale_loss方法包装损失值和优化器进行动态损失缩放 + with apex.amp.scale_loss(loss, optimizer) as scaled_loss: - scaled_loss.backward() ++ scaled_loss.backward() optimizer.step() ``` @@ -94,7 +95,7 @@ Apex及Apex-patch的卸载只需执行命令: epoch = 10 loss_function = torch.nn.MSELoss() input_data = [torch.rand(16, device='npu') for i in range(10)] - dataset = [(data, 0.5 * torch.sum(data)) for data in input_data] + dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] model = torch.nn.Linear(in_features=16, out_features=1, device='npu') optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) + # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 @@ -104,9 +105,10 @@ Apex及Apex-patch的卸载只需执行命令: optimizer.zero_grad() output = model(x) loss = loss_function(output, target) +- loss.backward() + # 使用apex.amp.scale_loss方法包装损失值和优化器进行动态损失缩放 + with apex.amp.scale_loss(loss, optimizer) as scaled_loss: - scaled_loss.backward() ++ scaled_loss.backward() optimizer.step() ``` @@ -121,7 +123,7 @@ Apex及Apex-patch的卸载只需执行命令: epoch = 10 loss_function = torch.nn.MSELoss() input_data = [torch.rand(16, device='npu') for i in range(10)] - dataset = [(data, 0.5 * torch.sum(data)) for data in input_data] + dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] model = torch.nn.Linear(in_features=16, out_features=1, device='npu') - optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) + # 使用apex.optimizers.NpuFusedSGD替换torch.optim.SGD @@ -133,9 +135,10 @@ Apex及Apex-patch的卸载只需执行命令: optimizer.zero_grad() output = model(x) loss = loss_function(output, target) +- loss.backward() + # 使用apex.amp.scale_loss方法包装损失值和优化器进行动态损失缩放 + with apex.amp.scale_loss(loss, optimizer) as scaled_loss: - scaled_loss.backward() ++ scaled_loss.backward() optimizer.step() ``` -- Gitee From 5e2f933ec3d708633ed511b285a9c0d72ee319b9 Mon Sep 17 00:00:00 2001 From: wangyuansheng8 Date: Wed, 25 Jun 2025 13:04:07 +0800 Subject: [PATCH 5/9] update readme --- README.zh.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.zh.md b/README.zh.md index 445a4b7..3109173 100644 --- a/README.zh.md +++ b/README.zh.md @@ -98,7 +98,7 @@ Apex及Apex-patch的卸载只需执行命令: dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] model = torch.nn.Linear(in_features=16, out_features=1, device='npu') optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) -+ # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 ++ # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 + model, optimizer = apex.amp.initialize(models=model, optimizers=optimizer, opt_level='O1', combine_grad=True) for i in range(epoch): for x, target in dataset: @@ -128,7 +128,7 @@ Apex及Apex-patch的卸载只需执行命令: - optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) + # 使用apex.optimizers.NpuFusedSGD替换torch.optim.SGD + optimizer = apex.optimizers.NpuFusedSGD(model.parameters(), lr=1e-3) -+ # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 ++ # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 + model, optimizer = apex.amp.initialize(models=model, optimizers=optimizer, opt_level='O1', combine_grad=True) for i in range(epoch): for x, target in dataset: -- Gitee From e9cf8bcb31928aca626b983611fd0ddffc9bf5e2 Mon Sep 17 00:00:00 2001 From: wangyuansheng8 Date: Wed, 25 Jun 2025 13:22:44 +0800 Subject: [PATCH 6/9] update readme --- README.zh.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.zh.md b/README.zh.md index 3109173..0ecae8f 100644 --- a/README.zh.md +++ b/README.zh.md @@ -56,7 +56,7 @@ Apex及Apex-patch的卸载只需执行命令: ## 自动混合精度(AMP) -使用apex.amp进行混合精度训练: +使用apex.amp.initialize方法包装模型和优化器并指定opt_level为'O1'或'O2',并使用apex.amp.scale_loss方法包装损失值和优化器对损失进行动态缩放,实现混合精度训练: ```diff import torch import apex @@ -86,18 +86,18 @@ Apex及Apex-patch的卸载只需执行命令: ## 使用融合梯度进行scale/unscale优化加速 -在apex.amp.initialize()中将参数combine_grad设置为True,如: +使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,如: ```diff import torch import apex - epoch = 10 - loss_function = torch.nn.MSELoss() - input_data = [torch.rand(16, device='npu') for i in range(10)] - dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] - model = torch.nn.Linear(in_features=16, out_features=1, device='npu') - optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) + epoch = 10 # 训练轮次 + loss_function = torch.nn.MSELoss() # 损失函数 + input_data = [torch.rand(16, device='npu') for i in range(10)] # 构造简易模型输入 + dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] # 构造简易数据集 + model = torch.nn.Linear(in_features=16, out_features=1, device='npu') # 构造简易模型 + optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) # 创建优化器 + # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 + model, optimizer = apex.amp.initialize(models=model, optimizers=optimizer, opt_level='O1', combine_grad=True) for i in range(epoch): @@ -114,7 +114,7 @@ Apex及Apex-patch的卸载只需执行命令: ## 使用融合优化器优化加速 -将torch原生优化器torch.optim.xxx替换为apex.optimizers.xxx, 其中xxx为融合优化器名称,apex-patch支持的优化器见*特性介绍*。 +使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,并将torch原生优化器torch.optim.xxx替换为apex.optimizers.xxx, 其中xxx为融合优化器名称,apex-patch支持的优化器见*特性介绍*。 ```diff import torch import apex -- Gitee From 53ea195bf5ebe26a34dc1d627741f071f6db4a89 Mon Sep 17 00:00:00 2001 From: wangyuansheng8 Date: Wed, 25 Jun 2025 14:27:49 +0800 Subject: [PATCH 7/9] update readme --- README.zh.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.zh.md b/README.zh.md index 0ecae8f..55fd413 100644 --- a/README.zh.md +++ b/README.zh.md @@ -56,19 +56,19 @@ Apex及Apex-patch的卸载只需执行命令: ## 自动混合精度(AMP) -使用apex.amp.initialize方法包装模型和优化器并指定opt_level为'O1'或'O2',并使用apex.amp.scale_loss方法包装损失值和优化器对损失进行动态缩放,实现混合精度训练: +使用apex.amp.initialize方法包装模型和优化器并指定opt_level为'O1',并使用apex.amp.scale_loss方法包装损失值和优化器对损失进行动态缩放,实现混合精度训练: ```diff import torch import apex - epoch = 10 - loss_function = torch.nn.MSELoss() - input_data = [torch.rand(16, device='npu') for i in range(10)] - dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] - model = torch.nn.Linear(in_features=16, out_features=1, device='npu') - optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) -+ # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练 + epoch = 10 # 训练轮次 + loss_function = torch.nn.MSELoss() # 损失函数 + input_data = [torch.rand(16, device='npu') for i in range(10)] # 构造简易模型输入 + dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] # 构造简易数据集 + model = torch.nn.Linear(in_features=16, out_features=1, device='npu') # 构造简易模型 + optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) # 创建优化器 ++ # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level取'O0'时,表示使用FP32训练,opt_level取'O1'或'O2'时,表示使用混合精度训练 + model, optimizer = apex.amp.initialize(models=model, optimizers=optimizer, opt_level='O1') for i in range(epoch): for x, target in dataset: @@ -86,7 +86,7 @@ Apex及Apex-patch的卸载只需执行命令: ## 使用融合梯度进行scale/unscale优化加速 -使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,如: +使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,示例如下: ```diff import torch import apex @@ -114,18 +114,18 @@ Apex及Apex-patch的卸载只需执行命令: ## 使用融合优化器优化加速 -使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,并将torch原生优化器torch.optim.xxx替换为apex.optimizers.xxx, 其中xxx为融合优化器名称,apex-patch支持的优化器见*特性介绍*。 +使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,并将torch原生优化器torch.optim.xxx替换为apex.optimizers.xxx, 其中xxx为融合优化器名称,示例如下所示,apex-patch支持的优化器见*特性介绍*。 ```diff import torch import apex - epoch = 10 - loss_function = torch.nn.MSELoss() - input_data = [torch.rand(16, device='npu') for i in range(10)] - dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] - model = torch.nn.Linear(in_features=16, out_features=1, device='npu') -- optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) + epoch = 10 # 训练轮次 + loss_function = torch.nn.MSELoss() # 损失函数 + input_data = [torch.rand(16, device='npu') for i in range(10)] # 构造简易模型输入 + dataset = [(data, 0.5 * torch.sum(data).unsqueeze(0)) for data in input_data] # 构造简易数据集 + model = torch.nn.Linear(in_features=16, out_features=1, device='npu') # 构造简易模型 +- optimizer = torch.optim.SGD(params=model.parameters(), lr=1e-3) # 创建优化器 + # 使用apex.optimizers.NpuFusedSGD替换torch.optim.SGD + optimizer = apex.optimizers.NpuFusedSGD(model.parameters(), lr=1e-3) + # 使用apex.amp.initialize方法包装模型和优化器进行混合精度训练,opt_level='O1'表示使用混合精度训练,combine_grad=True表示开启融合梯度 -- Gitee From e0e92602bedd433b1a8ff8a2b67df573f84bde93 Mon Sep 17 00:00:00 2001 From: wangyuansheng8 Date: Wed, 25 Jun 2025 14:29:24 +0800 Subject: [PATCH 8/9] update readme --- README.zh.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.zh.md b/README.zh.md index 55fd413..229f4de 100644 --- a/README.zh.md +++ b/README.zh.md @@ -59,7 +59,7 @@ Apex及Apex-patch的卸载只需执行命令: 使用apex.amp.initialize方法包装模型和优化器并指定opt_level为'O1',并使用apex.amp.scale_loss方法包装损失值和优化器对损失进行动态缩放,实现混合精度训练: ```diff import torch - import apex ++ import apex # 导入apex包 epoch = 10 # 训练轮次 @@ -89,7 +89,7 @@ Apex及Apex-patch的卸载只需执行命令: 使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,示例如下: ```diff import torch - import apex ++ import apex # 导入apex包 epoch = 10 # 训练轮次 @@ -117,7 +117,7 @@ Apex及Apex-patch的卸载只需执行命令: 使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,并将torch原生优化器torch.optim.xxx替换为apex.optimizers.xxx, 其中xxx为融合优化器名称,示例如下所示,apex-patch支持的优化器见*特性介绍*。 ```diff import torch - import apex ++ import apex # 导入apex包 epoch = 10 # 训练轮次 -- Gitee From 443d43b87efcc244bd9cbcd6c1abe1f3d124f2f1 Mon Sep 17 00:00:00 2001 From: wangyuansheng8 Date: Wed, 25 Jun 2025 14:29:56 +0800 Subject: [PATCH 9/9] update readme --- README.zh.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.zh.md b/README.zh.md index 229f4de..04af0c2 100644 --- a/README.zh.md +++ b/README.zh.md @@ -56,7 +56,7 @@ Apex及Apex-patch的卸载只需执行命令: ## 自动混合精度(AMP) -使用apex.amp.initialize方法包装模型和优化器并指定opt_level为'O1',并使用apex.amp.scale_loss方法包装损失值和优化器对损失进行动态缩放,实现混合精度训练: +导入apex包,使用apex.amp.initialize方法包装模型和优化器并指定opt_level为'O1',并使用apex.amp.scale_loss方法包装损失值和优化器对损失进行动态缩放,实现混合精度训练: ```diff import torch + import apex # 导入apex包 @@ -86,7 +86,7 @@ Apex及Apex-patch的卸载只需执行命令: ## 使用融合梯度进行scale/unscale优化加速 -使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,示例如下: +导入apex包,使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,示例如下: ```diff import torch + import apex # 导入apex包 @@ -114,7 +114,7 @@ Apex及Apex-patch的卸载只需执行命令: ## 使用融合优化器优化加速 -使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,并将torch原生优化器torch.optim.xxx替换为apex.optimizers.xxx, 其中xxx为融合优化器名称,示例如下所示,apex-patch支持的优化器见*特性介绍*。 +导入apex包,使用apex.amp.initialize方法包装模型和优化器并将参数combine_grad设置为True,并将torch原生优化器torch.optim.xxx替换为apex.optimizers.xxx, 其中xxx为融合优化器名称,示例如下所示,apex-patch支持的优化器见*特性介绍*。 ```diff import torch + import apex # 导入apex包 -- Gitee