代码之家  ›  专栏  ›  技术社区  ›  Frank

为什么我们要把nn.Module作为参数传递给神经网络的类定义?

  •  0
  • Frank  · 技术社区  · 5 年前

    我想理解为什么我们在定义像GAN这样的神经网络的类时,要传递torch.nn.Module作为参数

    import torch
    import torch.nn as nn
    
    class Generator(nn.Module):
        def __init__(self, input_size, hidden_size, output_size, f):
            super(Generator, self).__init__()
            self.map1 = nn.Linear(input_size, hidden_size)
            self.map2 = nn.Linear(hidden_size, hidden_size)
            self.map3 = nn.Linear(hidden_size, output_size)
            self.f = f
    
    1 回复  |  直到 5 年前
        1
  •  4
  •   prosti    5 年前

    class Generator(nn.Module):
    

    简单意味着 Generator 类将继承 nn.Module

    然而,邓德 初始化 方法:

    def __init__(self, input_size, hidden_size, output_size, f):
    

    这是Python类实例 self why it has to stay

        2
  •  1
  •   Nicolas Essipova    5 年前

    我们基本上是用nn.Module(及其功能)定义类“Generator”。在编程中,我们称之为继承(使用 super(Generator, self).__init__()

    您可以在此处阅读更多内容: https://www.w3schools.com/python/python_inheritance.asp