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","."]
code: def test_gradient_recs_general_content(self, doctor):
      recs = doctor.gradient_recs_
      assert len(recs) == 3
      assert set(recs.keys()) == {"mymodule", "seq", "mycriterion"}
  
      for rec in recs.values():
          # 3 epochs, 2 batches per epoch
          assert len(rec) == 6
  
      # each batch has weights and biases for lin1, lin0 has no gradient
      expected = {"module0.lin1.weight", "module0.lin1.bias"}
      for batch in recs["mymodule"]:
          assert set(batch.keys()) == expected
  
      # each batch has weights and biases for lin1, lin0 has no gradient
      expected = {"0.weight", "0.bias"}
      for batch in recs["seq"]:
          assert set(batch.keys()) == expected
  
      # each batch has weights and biases for lin1, lin0 has no gradient
      expected = {"lin0.weight", "lin0.bias"}
      for batch in recs["mycriterion"]:
          assert set(batch.keys()) == expected
  
imports: import itertools
  from unittest import mock
  import numpy
  import pytest
  import torch
  from torch import nn
label_desc: Use image node_id 10 for calling the TestSkorchDoctorComplexArchitecture obj's underlying member method code with example usage: obj.test_gradient_recs_general_content(doctor) without return types