# Copyright 2020 Huawei Technologies Co., Ltd## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.# ============================================================================"""optimizer parameters."""defget_param_groups(network):"""get param groups"""decay_params=[]no_decay_params=[]forxinnetwork.trainable_params():parameter_name=x.nameifparameter_name.endswith('.bias'):# all bias not using weight decay# print('no decay:{}'.format(parameter_name))no_decay_params.append(x)elifparameter_name.endswith('.gamma'):# bn weight bias not using weight decay, be carefully for now x not include BN# print('no decay:{}'.format(parameter_name))no_decay_params.append(x)elifparameter_name.endswith('.beta'):# bn weight bias not using weight decay, be carefully for now x not include BN# print('no decay:{}'.format(parameter_name))no_decay_params.append(x)else:decay_params.append(x)return[{'params':no_decay_params,'weight_decay':0.0},{'params':decay_params}]