model 与model.children()比较

#关于自定义层,有,单层自动注册(值为Module子类),单层手动注册, nn.ModulList([]) 默认0,1,2命名,可使用add_module()手动添加命名
# nn.Sequential(),nn.Sequential(collections.OrderedDict([二元元组元素])自己命名
class NeuralNetwork(nn.Module):
    def __init__(self):
        super(NeuralNetwork, self).__init__()  #层名相同会覆盖
        # 单层自动注册
        self.layer = nn.Linear(3,3)  #有该结构,必须是为Module子类
        #层名为layers
        # 单层手动注册
        self.add_module('layer0',nn.Linear(3,3)) #等效于上面

        # 多层手动注册
                                       #列表类型,不是torch.nn.Module的子类,不会自动注册该结构,需要下面2行的手动注册
        for i,layer1 in enumerate([nn.Linear(3,3) for _ in range(2)]):
            self.add_module('layer1_{}'.format(i),layer1)  #使用self.add_model手动注册模块
                            #层名,手动命名不能重复,不能包含点,重复后者会覆盖前者         layer1_0.weight  layer1_1.weight

        #多层手动注册和下边的多层自动注册效果相同,用nn.ModuleL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值