Gluon Layer 支持 name 字段

问题

目前 Gluon Layer 的层的名称是根据 name_scope 自动扩展成 xxx/conv0_fwd,体现出了模块化并且避免了命名冲突。但是目前不支持 name 字段,导致缺乏了一些灵活性。

gluon.nn.Conv2D(10, 3)

希望 Gluon Layer 支持 name 字段。

gluon.nn.Conv2D(10, 3, name='conv1')

内部只对没有指定 name 的层进行自动命名。

场景

  1. Gluon 模型可以与 Symbol 模型或者其他框架模型,用户可以指定更加一致的命名方式。
  2. 已有 xxx.params 并且熟悉模型结构时,可以采用 Layer name 的方式,使用 load_parameters。
  3. 使用 viz.print_summaryviz.plot_network 可以更直观地和论文中结构进行对比。

讨论

目前的自动命名方式很高级,但是类似 symbol 或者 pytorch 的自定义命名也很好用,让 Gluon Layer 也支持 name 字段是否是个伪需求呢?

@mli @zhreshold @szha @piiswrong @wkcn

2赞

是的,我也觉得这个功能很有必要。
现有的自动命名方法导致难以将训练好的模型中的部分参数迁移到新的模型中。
支持name字段可以更方便地迁移模型参数,并且能够使用Symbol模型的参数。

1赞

请问可以在MXNet项目的issue里提一下这个问题吗?谢谢!

@wkcn 欢迎你也提出宝贵的建议。

1赞

请问这个功能有了么,这个功能太重要了

没有。 :expressionless:

要实现grad-cam,用symbol写的,例程是gluon的,再看看,实在不行大概就要再写一个gluon版本的了