You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何搭建指定结构的生成器神经网络 附PyTorch代码求校验

网络搭建问题解答

你提供的代码存在多处错误,不符合给定的生成器网络结构要求,具体问题和修正方案如下:

现存问题

  • 基础语法错误:两处nn.BatchNorm2d(1)语句末尾都缺失逗号分隔符,代码会直接触发语法报错,无法运行。
  • 归一化层使用错误:
    1. 层类型选错:BatchNorm2d仅适用于卷积层输出的二维特征图场景,要求输入张量为4维形状(批次大小, 通道数, 特征高, 特征宽);全连接层输出是2维张量(批次大小, 神经元数),没有空间维度,必须使用适配一维特征的BatchNorm1d。
    2. 参数传错:BatchNorm层的参数需要匹配当前层的输出特征数,两个隐层全连接层都输出100维特征,BN层参数应该设为100,而非1。
  • 输出层说明:题目没有对输出层指定归一化、激活函数要求,因此你最后一层写nn.Linear(100, n_outputs)的逻辑是符合结构要求的。如果是GAN生成器场景,可根据生成数据的取值范围补充对应激活:比如生成[0,1]范围的图像像素加nn.Sigmoid(),生成[-1,1]范围的数据加nn.Tanh(),题目无特殊说明时不需要额外添加。

修正后符合要求的代码

import torch.nn as nn

generator = nn.Sequential(
    # 第一个隐层块:全连接+BN+ReLU
    nn.Linear(n_inputs, 100),
    nn.BatchNorm1d(100),
    nn.ReLU(),
    # 第二个隐层块:全连接+BN+ReLU
    nn.Linear(100, 100),
    nn.BatchNorm1d(100),
    nn.ReLU(),
    # 输出层
    nn.Linear(100, n_outputs)
)

内容的提问来源于stack exchange,提问作者user458

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.13 16:15:54