code: def __init__(self, in_size, out_size, etypes, dropout=0.1):
      super(GNNFiLMLayer, self).__init__()
      self.in_size = in_size
      self.out_size = out_size
  
      # weights for different types of edges
      self.W = nn.ModuleDict(
          {
              name: nn.Linear(in_size, out_size, bias=False)
              for name in etypes
          }
      )
  
      # hypernets to learn the affine functions for different types of edges
      self.film = nn.ModuleDict(
          {
              name: nn.Linear(in_size, 2 * out_size, bias=False)
              for name in etypes
          }
      )
  
      # layernorm before each propogation
      self.layernorm = nn.LayerNorm(out_size)
  
      # dropout layer
      self.dropout = nn.Dropout(dropout)
  
file_path: dgl/examples/pytorch/GNN-FiLM/main.py
imports: import argparse
  import os
  import dgl
  import dgl.function
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from data_loader import load_PPI
  from utils import evaluate_f1_score
label_desc: Use image node_id 1 to create a new GNNFiLMLayer object from inherited base classes: nn with example: obj = GNNFiLMLayer(in_size, out_size, etypes, dropout)