未验证 提交 83c22816 编写于 作者: W Wang Meng 提交者: GitHub

Merge pull request #4389 from will-am/fix-4388

Check whether param name is manually set when input is a sequence in fc layer
...@@ -1047,6 +1047,13 @@ def fc_layer(input, ...@@ -1047,6 +1047,13 @@ def fc_layer(input,
if isinstance(param_attr, collections.Sequence): if isinstance(param_attr, collections.Sequence):
assert len(input) == len(param_attr) assert len(input) == len(param_attr)
else: else:
if "parameter_name" in param_attr.attr and len(input) > 1:
logger.fatal(
"When the name field of param_attr is manually specified "
"and the input is a list, the param_attr should also be a "
"list with each item being the param_attr for each input "
"item. If only one named param_attr is provided, all the "
"input items would share this parameter.")
param_attr = [copy.deepcopy(param_attr) for _ in range(len(input))] param_attr = [copy.deepcopy(param_attr) for _ in range(len(input))]
assert isinstance(input, collections.Sequence) assert isinstance(input, collections.Sequence)
...@@ -4877,6 +4884,13 @@ def selective_fc_layer(input, ...@@ -4877,6 +4884,13 @@ def selective_fc_layer(input,
if isinstance(param_attr, collections.Sequence): if isinstance(param_attr, collections.Sequence):
assert len(input) == len(param_attr) assert len(input) == len(param_attr)
else: else:
if "parameter_name" in param_attr.attr and len(input) > 1:
logger.fatal(
"When the name field of param_attr is manually specified "
"and the input is a list, the param_attr should also be a "
"list with each item being the param_attr for each input "
"item. If only one named param_attr is provided, all the "
"input items would share this parameter.")
param_attr = [copy.deepcopy(param_attr) for _ in range(len(input))] param_attr = [copy.deepcopy(param_attr) for _ in range(len(input))]
assert isinstance(input, collections.Sequence) assert isinstance(input, collections.Sequence)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册