pytorch自定义网络结构不进行参数初始化会怎样?

答案:不怕不怕,pytorch自己默认有初始化

证据如下:

  1. torch.nn.Conv2d的参数初始化
    https://pytorch.org/docs/stable/_modules/torch/nn/modules/conv.html#Conv2d
    Conv2d继承自_ConvNd,在_ConvNd中,可以看到默认参数就是进行初始化的,如下图所示
    Conv2d继承自_ConvNd

默认初始化

2)torch.nn.BatchNorm2d
同理
BN层初始化

3)torch.nn.Linear
同上
FC层初始化

喜欢请打赏,一毛两毛也是个意思,么么哒
支F宝账号:2363891614@qq.com
在这里插入图片描述

  • 28
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
PyTorch允许您创建自定义模块,以便灵活地构建和训练您自己的神经网络模型。要创建自定义模块,您需要继承`torch.nn.Module`类,并实现其中的`__init__`和`forward`方法。下面是一个简单的例子: ```python import torch import torch.nn as nn class MyModule(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(MyModule, self).__init__() self.fc1 = nn.Linear(input_size, hidden_size) self.relu = nn.ReLU() self.fc2 = nn.Linear(hidden_size, output_size) def forward(self, x): x = self.fc1(x) x = self.relu(x) x = self.fc2(x) return x ``` 在上面的例子中,我们创建了一个自定义模块`MyModule`,它具有两个全连接层和一个ReLU激活函数。在`__init__`方法中,我们定义了模块的结构,并初始化了需要学习的参数。在`forward`方法中,我们定义了前向传播的计算逻辑。 您可以像使用任何其他PyTorch模块一样使用自定义模块。例如,可以通过实例化模块并将输入数据传递给它来进行前向传播: ```python input_size = 100 hidden_size = 50 output_size = 10 model = MyModule(input_size, hidden_size, output_size) input_data = torch.randn(32, input_size) # 假设输入数据维度为 (batch_size, input_size) output = model(input_data) ``` 您还可以将自定义模块嵌套在其他自定义模块中,以构建更复杂的神经网络架构。通过继承`torch.nn.Module`类,您可以利用PyTorch提供的各种功能和工具,如参数优化、损失函数等。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值