class_docstr: Tests based on a more non-standard model
  
  Specifically, add modules with non-standard names and non-standard outputs
  like tuples or dicts.
  
  This test class does not re-iterate all the tests performed on the standard
  model but focuses on the parts that change, e.g. how the outputs are
  recorded.
class_docstr_tok: ["Tests","based","on","a","more","non-standard","model","Specifically",",","add","modules","with","non-standard","names","and","non-standard","outputs","like","tuples","or","dicts",".","This","test","class","does","not","re-iterate","all","the","tests","performed","on","the","standard","model","but","focuses","on","the","parts","that","change",",","e.g",".","how","the","outputs","are","recorded","."]
docstr: Module that returns a tuple
docstr_tok: ["Module","that","returns","a","tuple"]
code: def module0_cls(self):
      """Module that returns a tuple"""
  
      class MyModule(nn.Module):
          """Module that returns a tuple, lin0 no grad"""
  
          def __init__(self):
              super().__init__()
  
              self.lin0 = nn.Linear(20, 20)
              self.lin0.requires_grad_(False)
              self.lin1 = nn.Linear(20, 2)
  
          def forward(self, X):
              X0 = self.lin0(X)
              X1 = self.lin1(X)
              return X0, X1
  
      return MyModule
  
imports: import itertools
  from unittest import mock
  import numpy
  import pytest
  import torch
  from torch import nn
label_desc: Use image node_id 1 for calling the TestSkorchDoctorComplexArchitecture obj's underlying member method code with example usage: obj.module0_cls() and returns: MyModule, X0,  X1