首页 Paddle框架 帖子详情
如何在paddle框架下进行网络层参数的初始化 已解决
收藏
快速回复
Paddle框架 问答炼丹技巧 3057 3
如何在paddle框架下进行网络层参数的初始化 已解决
收藏
快速回复
Paddle框架 问答炼丹技巧 3057 3

基于pytorch框架实现的网络中自定义了如下函数:

def weight_init(module):
    for n,m in module.named_children():
        if isinstance(m,nn.Conv2d):
            nn.init.kaiming_normal_(m.weight,mode='fan_in',nonlinearity='relu')
            if m.bias is not None:
                nn.init.zeros_(m.bias)

Paddle框架下的paddle.nn.initializer也提供了nn.initializer.KaimingNormal()、nn.initializer.nn.initializer.Constant()函数,但用法与别的框架不一样。参考Paddle文档后对函数做出修改:

def weight_init(Layer):
    for n, m in Layer.named_children():
        if isinstance(m, nn.Conv2D):
            m.weight = nn.Linear(weight_attr = nn.initializer.KaimingNormal())
            if m.bias is not None:
                m.bias = nn.Linear(weight_attr = nn.initializer.Constant(value = 0.))

但此时Linear层缺少in_channels、out_channels,即对应的m_weight、m_bias的维度信息。

求教,如何去求解迭代器返回的m中weight、m_bias的维度信息,或者有其它的写法来实现函数功能

英枭昊
已解决
4# 回复于2021-10
试试m.weight_attr=......
0
收藏
回复
全部评论(3)
时间顺序
三岁
#2 回复于2021-08

飞桨我记得都是自动初始化了的,你可以看看文档或者提个issue

0
回复
英枭昊
#4 回复于2021-10

试试m.weight_attr=......

0
回复
老狼Max
#9 回复于2022-07

等待高人答复

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户