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

PyTorch中多次调用nn.Sequential是否会重新生成模型?

PyTorch中多次调用nn.Sequential是否会重新生成模型?

核心结论分两种情况:

  • 每次调用nn.Sequential(...)构造函数时,都会生成全新的模型实例,参数是随机初始化的,相当于重新创建了一个独立模型。比如:

    import torch.nn as nn
    import torch
    
    # 两次调用构造函数,得到两个独立的模型
    model_a = nn.Sequential(nn.Linear(10, 20), nn.ReLU())
    model_b = nn.Sequential(nn.Linear(10, 20), nn.ReLU())
    
    # 验证参数是否不同
    print(torch.allclose(model_a[0].weight, model_b[0].weight))  # 输出False
    
  • 如果是调用已经实例化好的Sequential对象(比如用它做前向传播),这只是重复使用同一个模型,不会重新生成新模型,参数也不会被重新初始化。比如:

    model = nn.Sequential(nn.Linear(10, 20), nn.ReLU())
    
    # 多次调用模型做前向传播,用的都是同一个模型实例
    out1 = model(torch.randn(32, 10))
    out2 = model(torch.randn(32, 10))
    

简单来说:看你是调用「构造函数」还是「已创建的对象」——前者会生成新模型,后者只是复用现有模型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:16:20