remove raise error when batch rank is zero and lr shape is one

This commit is contained in:
buxue 2022-08-12 17:32:46 +08:00
parent 9c307650c5
commit cfc64f92f9
5 changed files with 9 additions and 6 deletions

View File

@ -4,7 +4,7 @@ mindspore.set_auto_parallel_context
.. py:function:: mindspore.set_auto_parallel_context(**kwargs)
配置自动并行,仅在Ascend和GPU上有效
配置自动并行,当前CPU仅支持数据并行
应在mindspore.communication.init之前配置自动并行。

View File

@ -66,6 +66,8 @@ mindspore.set_context
| | compile_cache_path | CPU/GPU/Ascend |
| +------------------------------+----------------------------+
| | disable_format_transform | GPU |
| +------------------------------+----------------------------+
| | support_binary | CPU/GPU/Ascend |
+-------------------------+------------------------------+----------------------------+
参数:
@ -129,8 +131,9 @@ mindspore.set_context
- **grad_for_scalar** (bool) - 表示是否获取标量梯度。默认值False。当 `grad_for_scalar` 设置为True时则可以导出函数的标量输入。由于后端目前不支持伸缩操作所以该接口只支持在前端可推演的简单操作。
- **enable_compile_cache** (bool) - 表示是否加载或者保存前端编译的图。当 `enable_compile_cache` 被设置为True时在第一次执行的过程中一个硬件无关的编译缓存会被生成并且导出为一个MINDIR文件。当该网络被再次执行时如果 `enable_compile_cache` 仍然为True并且网络脚本没有被更改那么这个编译缓存会被加载。注意目前只支持有限的Python脚本更改的自动检测这意味着可能有正确性风险。默认值False。这是一个实验特性可能会被更改或者删除。
- **compile_cache_path** (str) - 保存前端图编译缓存的路径。默认值:"."。如果目录不存在,系统会自动创建这个目录。缓存会被保存到如下目录: `compile_cache_path/rank_${rank_id}/``rank_id` 是集群上当前设备的ID。
- **runtime_num_threads** (int) - 运行时线程池的线程数控制。默认值为30
- **runtime_num_threads** (int) - 运行时actor和CPU算子核使用的线程池线程数必须大于0。默认值为30如果同时运行多个进程应将该值设置得小一些以避免线程争用
- **disable_format_transform** (bool) - 表示是否取消NCHW到NHWC的自动格式转换功能。当fp16的网络性能不如fp32的时可以设置 `disable_format_transform` 为True以尝试提高训练性能。默认值False。
- **support_binary** (bool) - 是否支持在图形模式下运行.pyc或.so。如果要支持在图形模式下运行.so或.pyc可将`support_binary`置为True并运行一次.py文件从而将接口源码保存到接口定义.py文件中因此要保证该文件可写。然后将.py文件编译成.pyc或.so文件即可在图模式下运行。
异常:
- **ValueError** - 输入key不是上下文中的属性。

View File

@ -145,7 +145,7 @@ int RMSPropCpuKernelMod::CalElements(std::vector<int64_t> var_shape, std::vector
<< " and 'batch_rank': " << batch_rank_;
return KRET_RESIZE_FAILED;
}
if (batch_rank_ < 0 || lr_shape.size() != LongToSize(batch_rank_)) {
if (batch_rank_ < 0 || (batch_rank_ > 0 && lr_shape.size() != LongToSize(batch_rank_))) {
MS_LOG(ERROR) << "For '" << kernel_name_
<< "', the shape size of 'lr' must be equal to 'batch_rank', "
"but got the shape of 'lr': "

View File

@ -131,8 +131,8 @@ int BatchNormGradGradGpuKernelMod::Resize(const BaseOperatorPtr &base_operator,
<< Vector2Str(std::vector<int64_t>{c}) << ", but got scale shape: " << Vector2Str(scale_shape)
<< ", mean shape: " << Vector2Str(mean_shape)
<< ", variance shape: " << Vector2Str(variance_shape)
<< ", dout_dsacle shape: " << Vector2Str(dout_dscale_shape) << ", dout_dbias shape"
<< Vector2Str(dout_dbias_shape);
<< ", dout_dsacle shape: " << Vector2Str(dout_dscale_shape)
<< ", dout_dbias shape: " << Vector2Str(dout_dbias_shape);
}
if (x_shape.size() == kDim2) {

View File

@ -443,7 +443,7 @@ def _context():
parallel_optimizer_config=dict, comm_fusion=dict)
def set_auto_parallel_context(**kwargs):
r"""
Set auto parallel context, which is valid only for Ascend and GPU target.
Set auto parallel context, only data parallel supported on CPU.
Auto parallel context should be configured before the initialization of your network.