rwth-i6 / returnn_common

Common building blocks for RETURNN configs, such as models, training concepts, etc
7 stars 4 forks source link

`TypeError: get_func_from_code_object() got an unexpected keyword argument 'frame'` #224

Closed mmz33 closed 1 year ago

mmz33 commented 1 year ago

I am getting this issue when running this command: python3 -m tests.test_nn_conformer

Here is the error backtrace:

2022-10-19 11:51:29,479 h5py._conv DEBUG: Creating converter from 7 to 5
2022-10-19 11:51:29,479 h5py._conv DEBUG: Creating converter from 5 to 7
2022-10-19 11:51:29,479 h5py._conv DEBUG: Creating converter from 7 to 5
2022-10-19 11:51:29,479 h5py._conv DEBUG: Creating converter from 5 to 7
RETURNN: 1.20220915.113719+git.5f838645.dirty /Users/mzeineldeen/Desktop/dev/returnn/returnn/__init__.py
RETURNN-common: 20221019.083600--git-a870004 /Users/mzeineldeen/Desktop/dev/returnn_common/__init__.py
installLibSigSegfault exception: libSegFault not found
TensorFlow: 2.6.0
Test module: <module 'returnn_common.tests.test_nn_conformer' from '/Users/mzeineldeen/Desktop/dev/returnn_common/tests/test_nn_conformer.py'>
Running tests.
--------------------------------------------------------------------------------

test_nn_conformer()
resource.setrlimit ValueError: not allowed to raise maximum limit
EXCEPTION
Traceback (most recent call last):
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    line: return _run_code(code, main_globals, None,
                           "__main__", mod_spec)
    locals:
      _run_code = <global> <function _run_code at 0x10fe25a60>
      code = <local> <code object <module> at 0x10fde4930, file "/Users/mzeineldeen/Desktop/dev/returnn_common/tests/test_nn_conformer.py", line 3>
      main_globals = <local> {'__name__': '__main__', '__doc__': '\nTest nn.conformer.\n', '__package__': 'returnn_common.tests', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x10fe92240>, '__spec__': ModuleSpec(name='tests.test_nn_conformer', loader=<_frozen_importlib_external.SourceFileLoader object..., len = 10
      mod_spec = <local> ModuleSpec(name='tests.test_nn_conformer', loader=<_frozen_importlib_external.SourceFileLoader object at 0x10fe92240>, origin='/Users/mzeineldeen/Desktop/dev/returnn_common/tests/test_nn_conformer.py')
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/runpy.py", line 85, in _run_code
    line: exec(code, run_globals)
    locals:
      exec = <builtin> <built-in function exec>
      code = <local> <code object <module> at 0x10fde4930, file "/Users/mzeineldeen/Desktop/dev/returnn_common/tests/test_nn_conformer.py", line 3>
      run_globals = <local> {'__name__': '__main__', '__doc__': '\nTest nn.conformer.\n', '__package__': 'returnn_common.tests', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x10fe92240>, '__spec__': ModuleSpec(name='tests.test_nn_conformer', loader=<_frozen_importlib_external.SourceFileLoader object..., len = 10
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/tests/test_nn_conformer.py", line 7, in <module>
    line: from . import _setup_test_env  # noqa
    locals:
      from = <not found>
      from.import = <not found>
      _setup_test_env = <not found>
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/tests/_setup_test_env.py", line 307, in <module>
    line: setup()
    locals:
      setup = <local> <function setup at 0x10fe7a158>
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/tests/_setup_test_env.py", line 134, in setup
    line: _main(main_mod_)
    locals:
      _main = <global> <function _main at 0x10fe7a6a8>
      main_mod_ = <local> <module 'returnn_common.tests.test_nn_conformer' from '/Users/mzeineldeen/Desktop/dev/returnn_common/tests/test_nn_conformer.py'>
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/tests/_setup_test_env.py", line 298, in _main
    line: value()
    locals:
      value = <local> <function test_nn_conformer at 0x15dd136a8>
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/tests/test_nn_conformer.py", line 38, in test_nn_conformer
    line: conformer = nn.ConformerEncoder(
            input_dim, nn.FeatureDim("out", 14), ff_dim=nn.FeatureDim("ff", 17),
            num_heads=2, num_layers=2)
    locals:
      conformer = <not found>
      nn = <global> <module 'returnn_common.nn' from '/Users/mzeineldeen/Desktop/dev/returnn_common/nn/__init__.py'>
      nn.ConformerEncoder = <global> <class 'returnn_common.nn.conformer.ConformerEncoder'>
      input_dim = <local> Dim{F'input'(10)}
      nn.FeatureDim = <global> <function FeatureDim at 0x15daad158>
      ff_dim = <not found>
      num_heads = <not found>
      num_layers = <not found>
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/nn/conformer.py", line 260, in ConformerEncoder.__init__
    line: self.conv_subsample_layer = ConformerConvSubsample(
            in_dim=in_dim,
            out_dims=[nn.FeatureDim("conv1", 32), nn.FeatureDim("conv2", 64)],
            filter_sizes=[(3, 3), (3, 3)],
            pool_sizes=[(2, 2), (2, 2)],
            dropout=dropout)
    locals:
      self = <local> <ConformerEncoder>
      self.conv_subsample_layer = <local> !AttributeError: <ConformerEncoder> has no attribute 'conv_subsample_layer'
      ConformerConvSubsample = <global> <class 'returnn_common.nn.conformer.ConformerConvSubsample'>
      in_dim = <local> Dim{F'input'(10)}
      out_dims = <not found>
      nn = <global> <module 'returnn_common.nn' from '/Users/mzeineldeen/Desktop/dev/returnn_common/nn/__init__.py'>
      nn.FeatureDim = <global> <function FeatureDim at 0x15daad158>
      filter_sizes = <not found>
      pool_sizes = <not found>
      dropout = <local> 0.1
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/nn/conformer.py", line 108, in ConformerConvSubsample.__init__
    line: self.conv_layers.append(
            nn.Conv2d(prev_out_dim, out_dim, filter_size=filter_size, padding=padding))
    locals:
      self = <local> <ConformerConvSubsample>
      self.conv_layers = <local> <ModuleList>, len = 0
      self.conv_layers.append = <local> <bound method ModuleList.append of <ModuleList>>
      nn = <global> <module 'returnn_common.nn' from '/Users/mzeineldeen/Desktop/dev/returnn_common/nn/__init__.py'>
      nn.Conv2d = <global> <class 'returnn_common.nn.conv.Conv2d'>
      prev_out_dim = <local> Dim{F'dummy-input-feature-dim'(1)}
      out_dim = <local> Dim{F'conv1'(32)}
      filter_size = <local> (3, 3)
      padding = <local> 'same'
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/nn/conv.py", line 113, in _Conv.__init__
    line: super().__init__(in_dim=in_dim, out_dim=out_dim, filter_size=filter_size, padding=padding, with_bias=with_bias)
    locals:
      super = <builtin> <class 'super'>
      __init__ = <not found>
      in_dim = <local> Dim{F'dummy-input-feature-dim'(1)}
      out_dim = <local> Dim{F'conv1'(32)}
      filter_size = <local> (3, 3)
      padding = <local> 'same'
      with_bias = <local> True
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/nn/conv.py", line 60, in _ConvOrTransposedConv.__init__
    line: self.filter = nn.Parameter(
            self.filter_size +
            ([self.filter_in_dim, self.out_dim] if not self._transposed else [self.out_dim, self.filter_in_dim]))
    locals:
      self = <local> <Conv2d>
      self.filter = <local> <Parameter '<unnamed-param>' ['filter-dim0'(3),'filter-dim1'(3),F'dummy-input-feature-dim'(1),F|F'conv1'(32)] via 'variable'>
      nn = <global> <module 'returnn_common.nn' from '/Users/mzeineldeen/Desktop/dev/returnn_common/nn/__init__.py'>
      nn.Parameter = <global> <class 'returnn_common.nn.base.Parameter'>
      self.filter_size = <local> [Dim{'filter-dim0'(3)}, Dim{'filter-dim1'(3)}]
      self.filter_in_dim = <local> Dim{F'dummy-input-feature-dim'(1)}
      self.out_dim = <local> Dim{F'conv1'(32)}
      self._transposed = <local> False
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/nn/module.py", line 152, in Module.__setattr__
    line: nn.NameCtx.current_ctx()  # make sure self module gets some NameCtx
    locals:
      nn = <global> <module 'returnn_common.nn' from '/Users/mzeineldeen/Desktop/dev/returnn_common/nn/__init__.py'>
      nn.NameCtx = <global> <class 'returnn_common.nn.naming.NameCtx'>
      nn.NameCtx.current_ctx = <global> <bound method NameCtx.current_ctx of <class 'returnn_common.nn.naming.NameCtx'>>
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/nn/naming.py", line 139, in NameCtx.current_ctx
    line: return _auto_setup_parent_name_ctx(ignore_top_stack_frames=ignore_top_stack_frames + 1)
    locals:
      _auto_setup_parent_name_ctx = <global> <function _auto_setup_parent_name_ctx at 0x15ed0f158>
      ignore_top_stack_frames = <local> 0
  File "/Users/mzeineldeen/Desktop/dev/returnn_common/nn/naming.py", line 1546, in _auto_setup_parent_name_ctx
    line: func = get_func_from_code_object(frame.f_code, frame=frame)
    locals:
      func = <not found>
      get_func_from_code_object = <local> <function get_func_from_code_object at 0x11213a840>
      frame = <local> <frame at 0x7fdd86f12818, file '/Users/mzeineldeen/Desktop/dev/returnn_common/tests/test_nn_conformer.py', line 38, code test_nn_conformer>
      frame.f_code = <local> <code object test_nn_conformer at 0x114707c00, file "/Users/mzeineldeen/Desktop/dev/returnn_common/tests/test_nn_conformer.py", line 18>
TypeError: get_func_from_code_object() got an unexpected keyword argument 'frame'
albertz commented 1 year ago

Your RETURNN version is too old. (Maybe we should automatically check for that and throw a better error message?)

mmz33 commented 1 year ago

(Maybe we should automatically check for that and throw a better error message?)

Yes I agree.

mmz33 commented 1 year ago

Error is gone when updating returnn. Thanks.

albertz commented 1 year ago

(Maybe we should automatically check for that and throw a better error message?)

I opened a separate issue about that: #225