Skip to content

Instantly share code, notes, and snippets.

@robin-p-schmitt
Created November 23, 2021 07:37
Show Gist options
  • Save robin-p-schmitt/fac5efca3d838f2fb265fabb6f3a78a9 to your computer and use it in GitHub Desktop.
Save robin-p-schmitt/fac5efca3d838f2fb265fabb6f3a78a9 to your computer and use it in GitHub Desktop.
RangeInAxisLayer: beam search bug with SliceNdLayer
layer <network via test_SliceNdLayer_RangeInAxisLayer>/'data' output: Data{'data', [B,T|'time:var:extern_data:data'[B],F|F'feature:data'(5)]}
layer <network via test_SliceNdLayer_RangeInAxisLayer>/'output' output: Data{'output_output', [T|'time:var:extern_data:data'[B&Beam{'output/output'}(3)],B&Beam{'output/output'}(3)], dtype='int32', sparse=True, dim=5}
Rec layer 'output' (search True, train False) sub net:
Input layers moved out of loop: (#: 0)
None
Output layers moved out of loop: (#: 1)
slice_range
Layers in loop: (#: 5)
slices
start
output
output_prob
slices_red
Unused layers: (#: 0)
None
layer <network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)/'start' output: Data{'start_output', [B&Beam{'output/prev:output'}(3)], dtype='int32', sparse=True, dim=5, ctx=loop('time:var:extern_data:data'[B])}
layer <network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)/'slices' output: Data{'slices_gather_output', [B&Beam{'output/prev:output'}(3),T|'sliced-time:slices'[?]{ctx=loop('time:var:extern_data:data'[B])},F|F'feature:data'(5)], ctx=loop('time:var:extern_data:data'[B])}
layer <network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)/':dyn-tag-accum:1:slices' output: Data{'sliced-time:slices:dyn_size', [B&Beam{'output/prev:output'}(3)], dtype='int32', ctx=loop('time:var:extern_data:data'[B])}
ERROR: Got exception during in-loop construction of layer ':dyn-tag-accum:1:slices':
AssertionError: ("Layer <LengthLayer output/':dyn-tag-accum:1:slices' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', ctx=loop('time:var:extern_data:data'[B])}> has buggy search choices resolution.", 'see search choices debug output')
output: <_TemplateLayer(ChoiceLayer)(:template:choice) output/'output' out_type=Data{[B&Beam{'output/output'}(3)], dtype='int32', sparse=True, dim=5, ctx=loop('time:var:extern_data:data'[B])} (construction stack None)>
output_prob: <_TemplateLayer(LinearLayer)(:template:linear) output/'output_prob' out_type=Data{[B&Beam{'output/prev:output'}(3),F|F'output_prob:feature-dense'(5)], ctx=loop('time:var:extern_data:data'[B])} (construction stack 'output')>
slices_red: <_TemplateLayer(ReduceLayer)(:template:reduce) output/'slices_red' out_type=Data{[B&Beam{'output/prev:output'}(3),F|F'feature:slices_red_output'(5)], ctx=loop('time:var:extern_data:data'[B])} (construction stack 'output_prob')>
slices: <_TemplateLayer(SliceNdLayer)(:template:slice_nd) output/'slices' out_type=Data{[B&Beam{'output/prev:output'}(3),T|'sliced-time:slices'[?]{ctx=loop('time:var:extern_data:data'[B])},F|F'feature:data'(5)], ctx=loop('time:var:extern_data:data'[B])} (construction stack 'slices_red')>
start: <_TemplateLayer(CopyLayer)(:template:copy) output/'start' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', sparse=True, dim=5, ctx=loop('time:var:extern_data:data'[B])} (construction stack 'slices')>
slice_range: <_TemplateLayer(RangeInAxisLayer)(:template:range_in_axis) output/'slice_range' out_type=Data{[T|'sliced-time:slices'[?]{ctx=loop('time:var:extern_data:data'[B])}], dtype='int32', ctx=loop('time:var:extern_data:data'[B])} (construction stack None)>
:dyn-tag-accum:1:slices: <_TemplateLayer(LengthLayer)(:template:length) output/':dyn-tag-accum:1:slices' out_type=Data{[B], dtype='int32', ctx=loop('time:var:extern_data:data'[B])} (construction stack None)>
Collected (unique) exceptions during template construction:
(Note that many of these can be ignored, or are expected.)
<returnn.tf.layers.rec._SubnetworkRecCell._construct_template.<locals>.CollectedException object at 0x7efd5849f700>
<returnn.tf.layers.rec._SubnetworkRecCell._construct_template.<locals>.CollectedException object at 0x7efd58820a60>
debug search choices:
base: <LengthLayer output/':dyn-tag-accum:1:slices' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', ctx=loop('time:var:extern_data:data'[B])}>
network:
layer: <LengthLayer output/':dyn-tag-accum:1:slices' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', ctx=loop('time:var:extern_data:data'[B])}>
layer: <RecStepInfoLayer output/':i' out_type=Data{[], dtype='int32'}>
layer: <_TemplateLayer(ChoiceLayer)(:prev:choice) output/'prev:output' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', sparse=True, dim=5, ctx=loop('time:var:extern_data:data'[B])} (construction stack None)>
layer: <SliceNdLayer output/'slices' out_type=Data{[B&Beam{'output/prev:output'}(3),T|'sliced-time:slices'[B&Beam{'output/prev:output'}(3)]{ctx=loop('time:var:extern_data:data'[B])},F|F'feature:data'(5)], ctx=loop('time:var:extern_data:data'[B])}>
layer: <CopyLayer output/'start' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', sparse=True, dim=5, ctx=loop('time:var:extern_data:data'[B])}>
visit: <LengthLayer output/':dyn-tag-accum:1:slices' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', ctx=loop('time:var:extern_data:data'[B])}>, search choices None
sources: 'output/slices' search choices None
visit: <SliceNdLayer output/'slices' out_type=Data{[B&Beam{'output/prev:output'}(3),T|'sliced-time:slices'[B&Beam{'output/prev:output'}(3)]{ctx=loop('time:var:extern_data:data'[B])},F|F'feature:data'(5)], ctx=loop('time:var:extern_data:data'[B])}>, search choices None
sources: 'data' search choices None, 'output/start' search choices None
visit: <SelectSearchSourcesLayer 'data' <SearchChoices owner='prev:output' beam_size=3 beam_scores=shaped:(None,None)> out_type=Data{[B&Beam{'output/prev:output'}(3),T|'time:var:extern_data:data'[B&Beam{'output/prev:output'}(3)],F|F'feature:data'(5)]}>, search choices None
sources: 'data' search choices None
visit: <SourceLayer 'data' out_type=Data{[B,T|'time:var:extern_data:data'[B],F|F'feature:data'(5)]}>, search choices None
sources: None
visit: <CopyLayer output/'start' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', sparse=True, dim=5, ctx=loop('time:var:extern_data:data'[B])}>, search choices None
sources: 'output/prev:output' search choices <SearchChoices owner='prev:output' beam_size=3 beam_scores=shaped:(None,None)>
Relevant layers:
[<_TemplateLayer(ChoiceLayer)(:prev:choice) output/'prev:output' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', sparse=True, dim=5, ctx=loop('time:var:extern_data:data'[B])} (construction stack None)>]
Full dependency map:
{'data': [],
'output/:dyn-tag-accum:1:slices': ['output/prev:output'],
'output/slices': ['output/prev:output'],
'output/start': ['output/prev:output']}
-> search choices: <_TemplateLayer(ChoiceLayer)(:prev:choice) output/'prev:output' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', sparse=True, dim=5, ctx=loop('time:var:extern_data:data'[B])} (construction stack None)>
Template network (check out types / shapes):
Exception creating layer <network via test_SliceNdLayer_RangeInAxisLayer>/'output' of class RecLayer with opts:
{'_name': 'output',
'_network': <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>,
'_time_dim_tag': DimensionTag{'time:var:extern_data:data'[B]},
'n_out': <class 'returnn.util.basic.NotSpecified'>,
'name': 'output',
'network': <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>,
'output': Data{'output_output', [T|'time:var:extern_data:data'[B&Beam{'output/output'}(3)],B&Beam{'output/output'}(3)], dtype='int32', sparse=True, dim=5},
'sources': [<SourceLayer 'data' out_type=Data{[B,T|'time:var:extern_data:data'[B],F|F'feature:data'(5)]}>],
'unit': <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>}
EXCEPTION
Traceback (most recent call last):
File "/home/robin/.local/share/JetBrains/Toolbox/apps/PyCharm-P/ch-0/212.4746.96/plugins/python/helpers/pycharm/_jb_unittest_runner.py", line 35, in <module>
line: sys.exit(main(argv=args, module=None, testRunner=unittestpy.TeamcityTestRunner, buffer=not JB_DISABLE_BUFFERING))
locals:
sys = <local> <module 'sys' (built-in)>
sys.exit = <local> <built-in function exit>
main = <local> <class 'unittest.main.TestProgram'>
argv = <not found>
args = <local> ['python -m unittest', 'test_TFNetworkLayer.test_SliceNdLayer_RangeInAxisLayer'], _[0]: {len = 18}
module = <not found>
testRunner = <not found>
unittestpy = <local> <module 'teamcity.unittestpy' from '/home/robin/.local/share/JetBrains/Toolbox/apps/PyCharm-P/ch-0/212.4746.96/plugins/python/helpers/pycharm/teamcity/unittestpy.py'>
unittestpy.TeamcityTestRunner = <local> <class 'teamcity.unittestpy.TeamcityTestRunner'>
buffer = <not found>
JB_DISABLE_BUFFERING = <local> False
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/unittest/main.py", line 100, in TestProgram.__init__
line: self.parseArgs(argv)
locals:
self = <local> <unittest.main.TestProgram object at 0x7efd92abbfa0>
self.parseArgs = <local> <bound method TestProgram.parseArgs of <unittest.main.TestProgram object at 0x7efd92abbfa0>>
argv = <local> ['python -m unittest', 'test_TFNetworkLayer.test_SliceNdLayer_RangeInAxisLayer'], _[0]: {len = 18}
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/unittest/main.py", line 147, in TestProgram.parseArgs
line: self.createTests()
locals:
self = <local> <unittest.main.TestProgram object at 0x7efd92abbfa0>
self.createTests = <local> <bound method TestProgram.createTests of <unittest.main.TestProgram object at 0x7efd92abbfa0>>
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/unittest/main.py", line 158, in TestProgram.createTests
line: self.test = self.testLoader.loadTestsFromNames(self.testNames,
self.module)
locals:
self = <local> <unittest.main.TestProgram object at 0x7efd92abbfa0>
self.test = <local> !AttributeError: 'TestProgram' object has no attribute 'test'
self.testLoader = <local> <unittest.loader.TestLoader object at 0x7efd92a62f70>
self.testLoader.loadTestsFromNames = <local> <bound method TestLoader.loadTestsFromNames of <unittest.loader.TestLoader object at 0x7efd92a62f70>>
self.testNames = <local> ['test_TFNetworkLayer.test_SliceNdLayer_RangeInAxisLayer'], _[0]: {len = 54}
self.module = <local> None
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/unittest/loader.py", line 220, in TestLoader.loadTestsFromNames
line: suites = [self.loadTestsFromName(name, module) for name in names]
locals:
suites = <not found>
self = <local> <unittest.loader.TestLoader object at 0x7efd92a62f70>
self.loadTestsFromName = <local> <bound method TestLoader.loadTestsFromName of <unittest.loader.TestLoader object at 0x7efd92a62f70>>
name = <not found>
module = <local> None
names = <local> ['test_TFNetworkLayer.test_SliceNdLayer_RangeInAxisLayer'], _[0]: {len = 54}
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/unittest/loader.py", line 220, in <listcomp>
line: suites = [self.loadTestsFromName(name, module) for name in names]
locals:
suites = <not found>
self = <local> <unittest.loader.TestLoader object at 0x7efd92a62f70>
self.loadTestsFromName = <local> <bound method TestLoader.loadTestsFromName of <unittest.loader.TestLoader object at 0x7efd92a62f70>>
name = <local> 'test_TFNetworkLayer.test_SliceNdLayer_RangeInAxisLayer', len = 54
module = <local> None
names = <not found>
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/unittest/loader.py", line 205, in TestLoader.loadTestsFromName
line: test = obj()
locals:
test = <not found>
obj = <local> <function test_SliceNdLayer_RangeInAxisLayer at 0x7efd587dff70>
File "/mnt/projects/i6/returnn/tests/test_TFNetworkLayer.py", line 3169, in test_SliceNdLayer_RangeInAxisLayer
line: net.construct_from_dict({
"output": {"class": "rec", "from": "data", "unit": {
"start": {"class": "copy", "from": "prev:output"},
"slices": {"class": "slice_nd", "from": "base:data", "start": "start", "size": None}, # [B,T[B],slice[B,T],D]
"slices_red": {"class": "reduce", "from": "slices", "axis": "dyn:-1", "mode": "max"}, # [B,T[B],D]
"slice_range": {"class": "range_in_axis", "from": "slices", "axis": "dyn:-1", "is_output_layer": True},
"output_prob": {"class": "linear", "from": "slices_red", "activation": "softmax", "n_out": dim},
"output": {
"class": "choice", "from": "output_prob", "beam_size": 3, "input_type": "prob", "target": "classes",
"initial_output": 0}
}}
})
locals:
net = <local> <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>
net.construct_from_dict = <local> <bound method TFNetwork.construct_from_dict of <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>>
File "/mnt/projects/i6/returnn/returnn/tf/network.py", line 607, in TFNetwork.construct_from_dict
line: self.construct_layer(net_dict, name, get_layer=get_layer)
locals:
self = <local> <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>
self.construct_layer = <local> <bound method TFNetwork.construct_layer of <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>>
net_dict = <local> {'output': {'class': 'rec', 'from': 'data', 'unit': {'start': {'class': 'copy', 'from': 'prev:output'}, 'slices': {'class': 'slice_nd', 'from': 'base:data', 'start': 'start', 'size': None}, 'slices_red': {'class': 'reduce', 'from': 'slices', 'axis': 'dyn:-1', 'mode': 'max'}, 'slice_range': {'clas...
name = <local> 'output', len = 6
get_layer = <local> None
File "/mnt/projects/i6/returnn/returnn/tf/network.py", line 933, in TFNetwork.construct_layer
line: return add_layer(name=name_with_prefix, layer_class=layer_class, **layer_desc)
locals:
add_layer = <local> <bound method TFNetwork.add_layer of <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>>
name = <local> 'output', len = 6
name_with_prefix = <local> 'output', len = 6
layer_class = <local> <class 'returnn.tf.layers.rec.RecLayer'>
layer_desc = <local> {'_network': <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>, '_name': 'output', 'n_out': <class 'returnn.util.basic.NotSpecified'>, 'sources': [<SourceLayer 'data' out_type=Data{[B,T|'time:var:extern_data:data'[B],F|F'feature:data'(5)]}>], '_time_dim_tag': Dimen..., len = 6
File "/mnt/projects/i6/returnn/returnn/tf/network.py", line 1080, in TFNetwork.add_layer
line: layer = self._create_layer(name=name, layer_class=layer_class, **layer_desc)
locals:
layer = <not found>
self = <local> <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>
self._create_layer = <local> <bound method TFNetwork._create_layer of <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>>
name = <local> 'output', len = 6
layer_class = <local> <class 'returnn.tf.layers.rec.RecLayer'>
layer_desc = <local> {'_network': <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>, '_name': 'output', 'n_out': <class 'returnn.util.basic.NotSpecified'>, 'sources': [<SourceLayer 'data' out_type=Data{[B,T|'time:var:extern_data:data'[B],F|F'feature:data'(5)]}>], '_time_dim_tag': Dimen..., len = 6
File "/mnt/projects/i6/returnn/returnn/tf/network.py", line 1000, in TFNetwork._create_layer
line: layer = layer_class(**layer_desc)
locals:
layer = <not found>
layer_class = <local> <class 'returnn.tf.layers.rec.RecLayer'>
layer_desc = <local> {'_network': <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>' train=False search>, '_name': 'output', 'n_out': <class 'returnn.util.basic.NotSpecified'>, 'sources': [<SourceLayer 'data' out_type=Data{[B,T|'time:var:extern_data:data'[B],F|F'feature:data'(5)]}>], '_time_dim_tag': Dimen..., len = 9
File "/mnt/projects/i6/returnn/returnn/tf/layers/rec.py", line 239, in RecLayer.__init__
line: y = self._get_output_subnet_unit(self.cell)
locals:
y = <not found>
self = <local> <RecLayer 'output' out_type=Data{[T|'time:var:extern_data:data'[B&Beam{'output/output'}(3)],B&Beam{'output/output'}(3)], dtype='int32', sparse=True, dim=5}>
self._get_output_subnet_unit = <local> <bound method RecLayer._get_output_subnet_unit of <RecLayer 'output' out_type=Data{[T|'time:var:extern_data:data'[B&Beam{'output/output'}(3)],B&Beam{'output/output'}(3)], dtype='int32', sparse=True, dim=5}>>
self.cell = <local> <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>
File "/mnt/projects/i6/returnn/returnn/tf/layers/rec.py", line 930, in RecLayer._get_output_subnet_unit
line: output = cell.get_output()
locals:
output = <not found>
cell = <local> <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>
cell.get_output = <local> <bound method _SubnetworkRecCell.get_output of <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>>
File "/mnt/projects/i6/returnn/returnn/tf/layers/rec.py", line 2690, in _SubnetworkRecCell.get_output
line: final_loop_vars = self._while_loop(
cond=cond,
body=body,
loop_vars=init_loop_vars,
shape_invariants=shape_invariants)
locals:
final_loop_vars = <not found>
self = <local> <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>
self._while_loop = <local> <bound method _SubnetworkRecCell._while_loop of <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>>
cond = <local> <function _SubnetworkRecCell.get_output.<locals>.cond at 0x7efd58591d30>
body = <local> <function _SubnetworkRecCell.get_output.<locals>.body at 0x7efd58591ca0>
loop_vars = <not found>
init_loop_vars = <local> (<tf.Tensor 'output/rec/initial_i:0' shape=() dtype=int32>, ([<tf.Tensor 'output/rec/output/init_output_const/constant_with_shape/Mul:0' shape=(?,) dtype=int32>], [[<tf.Tensor 'output/rec/output/zeros:0' shape=(?, 1) dtype=float32>, <tf.Tensor 'output/rec/output/zeros_1:0' shape=(?, 3) dtype=int3...
shape_invariants = <local> (TensorShape([]), ([TensorShape([Dimension(None)])], [[TensorShape([Dimension(None), Dimension(None)]), TensorShape([Dimension(None), Dimension(None)])]]), [TensorShape(None), TensorShape(None), TensorShape(None), TensorShape(None)]), _[0]: {len = 0}
File "/mnt/projects/i6/returnn/returnn/tf/layers/rec.py", line 1923, in _SubnetworkRecCell._while_loop
line: return tf.while_loop(
cond=cond,
body=body,
loop_vars=loop_vars,
shape_invariants=shape_invariants,
back_prop=self.parent_rec_layer.back_prop)
locals:
tf = <global> <module 'tensorflow' from '/home/robin/miniconda3/envs/i6_env/lib/python3.9/site-packages/tensorflow/__init__.py'>
tf.while_loop = <global> <function while_loop_v2 at 0x7efdce3be700>
cond = <local> <function _SubnetworkRecCell.get_output.<locals>.cond at 0x7efd58591d30>
body = <local> <function _SubnetworkRecCell.get_output.<locals>.body at 0x7efd58591ca0>
loop_vars = <local> (<tf.Tensor 'output/rec/initial_i:0' shape=() dtype=int32>, ([<tf.Tensor 'output/rec/output/init_output_const/constant_with_shape/Mul:0' shape=(?,) dtype=int32>], [[<tf.Tensor 'output/rec/output/zeros:0' shape=(?, 1) dtype=float32>, <tf.Tensor 'output/rec/output/zeros_1:0' shape=(?, 3) dtype=int3...
shape_invariants = <local> (TensorShape([]), ([TensorShape([Dimension(None)])], [[TensorShape([Dimension(None), Dimension(None)]), TensorShape([Dimension(None), Dimension(None)])]]), [TensorShape(None), TensorShape(None), TensorShape(None), TensorShape(None)]), _[0]: {len = 0}
back_prop = <not found>
self = <local> <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>
self.parent_rec_layer = <local> <RecLayer 'output' out_type=Data{[T|'time:var:extern_data:data'[B&Beam{'output/output'}(3)],B&Beam{'output/output'}(3)], dtype='int32', sparse=True, dim=5}>
self.parent_rec_layer.back_prop = <local> False
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/site-packages/tensorflow/python/util/deprecation.py", line 602, in while_loop_v2
line: return func(*args, **kwargs)
locals:
func = <local> <function while_loop_v2 at 0x7efdce3be670>
args = <local> ()
kwargs = <local> {'cond': <function _SubnetworkRecCell.get_output.<locals>.cond at 0x7efd58591d30>, 'body': <function _SubnetworkRecCell.get_output.<locals>.body at 0x7efd58591ca0>, 'loop_vars': (<tf.Tensor 'output/rec/initial_i:0' shape=() dtype=int32>, ([<tf.Tensor 'output/rec/output/init_output_const/constant_...
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2531, in while_loop_v2
line: return while_loop(
cond=cond,
body=body,
loop_vars=loop_vars,
shape_invariants=shape_invariants,
parallel_iterations=parallel_iterations,
back_prop=back_prop,
swap_memory=swap_memory,
name=name,
maximum_iterations=maximum_iterations,
return_same_structure=True)
locals:
while_loop = <global> <function while_loop at 0x7efdce3ba550>
cond = <local> <function _SubnetworkRecCell.get_output.<locals>.cond at 0x7efd58591d30>
body = <local> <function _SubnetworkRecCell.get_output.<locals>.body at 0x7efd58591ca0>
loop_vars = <local> (<tf.Tensor 'output/rec/initial_i:0' shape=() dtype=int32>, ([<tf.Tensor 'output/rec/output/init_output_const/constant_with_shape/Mul:0' shape=(?,) dtype=int32>], [[<tf.Tensor 'output/rec/output/zeros:0' shape=(?, 1) dtype=float32>, <tf.Tensor 'output/rec/output/zeros_1:0' shape=(?, 3) dtype=int3...
shape_invariants = <local> (TensorShape([]), ([TensorShape([Dimension(None)])], [[TensorShape([Dimension(None), Dimension(None)]), TensorShape([Dimension(None), Dimension(None)])]]), [TensorShape(None), TensorShape(None), TensorShape(None), TensorShape(None)]), _[0]: {len = 0}
parallel_iterations = <local> 10
back_prop = <local> False
swap_memory = <local> False
name = <local> None
maximum_iterations = <local> None
return_same_structure = <not found>
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2815, in while_loop
line: result = loop_context.BuildLoop(cond, body, loop_vars, shape_invariants,
return_same_structure)
locals:
result = <not found>
loop_context = <local> <tensorflow.python.ops.control_flow_ops.WhileContext object at 0x7efd58521460>
loop_context.BuildLoop = <local> <bound method WhileContext.BuildLoop of <tensorflow.python.ops.control_flow_ops.WhileContext object at 0x7efd58521460>>
cond = <local> <function _SubnetworkRecCell.get_output.<locals>.cond at 0x7efd58591d30>
body = <local> <function _SubnetworkRecCell.get_output.<locals>.body at 0x7efd58591ca0>
loop_vars = <local> (<tf.Tensor 'output/rec/initial_i:0' shape=() dtype=int32>, ([<tf.Tensor 'output/rec/output/init_output_const/constant_with_shape/Mul:0' shape=(?,) dtype=int32>], [[<tf.Tensor 'output/rec/output/zeros:0' shape=(?, 1) dtype=float32>, <tf.Tensor 'output/rec/output/zeros_1:0' shape=(?, 3) dtype=int3...
shape_invariants = <local> (TensorShape([]), ([TensorShape([Dimension(None)])], [[TensorShape([Dimension(None), Dimension(None)]), TensorShape([Dimension(None), Dimension(None)])]]), [TensorShape(None), TensorShape(None), TensorShape(None), TensorShape(None)]), _[0]: {len = 0}
return_same_structure = <local> True
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2297, in WhileContext.BuildLoop
line: original_body_result, exit_vars = self._BuildLoop(
pred, body, original_loop_vars, loop_vars, shape_invariants)
locals:
original_body_result = <not found>
exit_vars = <not found>
self = <local> <tensorflow.python.ops.control_flow_ops.WhileContext object at 0x7efd58521460>
self._BuildLoop = <local> <bound method WhileContext._BuildLoop of <tensorflow.python.ops.control_flow_ops.WhileContext object at 0x7efd58521460>>
pred = <local> <function _SubnetworkRecCell.get_output.<locals>.cond at 0x7efd58591d30>
body = <local> <function _SubnetworkRecCell.get_output.<locals>.body at 0x7efd58591ca0>
original_loop_vars = <local> (<tf.Tensor 'output/rec/initial_i:0' shape=() dtype=int32>, ([<tf.Tensor 'output/rec/output/init_output_const/constant_with_shape/Mul:0' shape=(?,) dtype=int32>], [[<tf.Tensor 'output/rec/output/zeros:0' shape=(?, 1) dtype=float32>, <tf.Tensor 'output/rec/output/zeros_1:0' shape=(?, 3) dtype=int3...
loop_vars = <local> [<tf.Tensor 'output/rec/initial_i:0' shape=() dtype=int32>, <tf.Tensor 'output/rec/output/init_output_const/constant_with_shape/Mul:0' shape=(?,) dtype=int32>, <tf.Tensor 'output/rec/output/zeros:0' shape=(?, 1) dtype=float32>, <tf.Tensor 'output/rec/output/zeros_1:0' shape=(?, 3) dtype=int32>, <..., len = 8
shape_invariants = <local> (TensorShape([]), ([TensorShape([Dimension(None)])], [[TensorShape([Dimension(None), Dimension(None)]), TensorShape([Dimension(None), Dimension(None)])]]), [TensorShape(None), TensorShape(None), TensorShape(None), TensorShape(None)]), _[0]: {len = 0}
File "/home/robin/miniconda3/envs/i6_env/lib/python3.9/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2223, in WhileContext._BuildLoop
line: body_result = body(*packed_vars_for_body)
locals:
body_result = <not found>
body = <local> <function _SubnetworkRecCell.get_output.<locals>.body at 0x7efd58591ca0>
packed_vars_for_body = <local> (<tf.Tensor 'output/rec/while/Identity:0' shape=() dtype=int32>, ([<tf.Tensor 'output/rec/while/Identity_1:0' shape=(?,) dtype=int32>], [[<tf.Tensor 'output/rec/while/Identity_2:0' shape=(?, ?) dtype=float32>, <tf.Tensor 'output/rec/while/Identity_3:0' shape=(?, ?) dtype=int32>]]), [<tf.TensorArr...
File "/mnt/projects/i6/returnn/returnn/tf/layers/rec.py", line 2532, in _SubnetworkRecCell.get_output.<locals>.body
line: self._construct(
prev_outputs=prev_outputs, prev_extra=prev_extra,
i=i,
data=data_,
inputs_moved_out_tas=input_layers_moved_out_tas,
needed_outputs=needed_outputs)
locals:
self = <local> <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>
self._construct = <local> <bound method _SubnetworkRecCell._construct of <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>>
prev_outputs = <local> {'output': <tf.Tensor 'output/rec/while_loop_body/prev_outputs/identity_output:0' shape=(?,) dtype=int32>}
prev_extra = <local> {'output': {'choice_scores': <tf.Tensor 'output/rec/while_loop_body/prev_extra/identity_output_choice_scores:0' shape=(?, ?) dtype=float32>, 'choice_src_beams': <tf.Tensor 'output/rec/while_loop_body/prev_extra/identity_output_choice_src_beams:0' shape=(?, ?) dtype=int32>}}
i = <local> <tf.Tensor 'output/rec/while/Identity:0' shape=() dtype=int32>
data = <not found>
data_ = <local> {'source': <tf.Tensor 'output/rec/while_loop_body/source_ta_read:0' shape=(?, 5) dtype=float32>}
inputs_moved_out_tas = <not found>
input_layers_moved_out_tas = <local> {}
needed_outputs = <local> {'slices', ':dyn-tag-accum:1:slices', 'slice_range', 'output'}, len = 4
File "/mnt/projects/i6/returnn/returnn/tf/layers/rec.py", line 1691, in _SubnetworkRecCell._construct
line: layer = get_layer(layer_name)
locals:
layer = <not found>
get_layer = <local> <function _SubnetworkRecCell._construct.<locals>.get_layer at 0x7efd58591dc0>
layer_name = <local> ':dyn-tag-accum:1:slices', len = 23
File "/mnt/projects/i6/returnn/returnn/tf/layers/rec.py", line 1677, in _SubnetworkRecCell._construct.<locals>.get_layer
line: assert (layer.output.beam == layer_template.output.beam and
layer_choices.beam_size == layer.output.beam.beam_size == layer_template.output.beam.beam_size), (
"Layer %r has buggy search choices resolution." % layer,
self.net.debug_search_choices(layer) or "see search choices debug output")
locals:
layer = <local> <LengthLayer output/':dyn-tag-accum:1:slices' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', ctx=loop('time:var:extern_data:data'[B])}>
layer.output = <local> Data{'sliced-time:slices:dyn_size', [B&Beam{'output/prev:output'}(3)], dtype='int32', ctx=loop('time:var:extern_data:data'[B])}
layer.output.beam = <local> SearchBeam(name='output/prev:output', beam_size=3)
layer_template = <local> <_TemplateLayer(LengthLayer)(:template:length) output/':dyn-tag-accum:1:slices' out_type=Data{[B], dtype='int32', ctx=loop('time:var:extern_data:data'[B])} (construction stack None)>
layer_template.output = <local> Data{':dyn-tag-accum:1:slices_length', [B], dtype='int32', ctx=loop('time:var:extern_data:data'[B])}
layer_template.output.beam = <local> None
layer_choices = <local> <SearchChoices owner='prev:output' beam_size=3 beam_scores=shaped:(None,None)>
layer_choices.beam_size = <local> 3
layer.output.beam.beam_size = <local> 3
layer_template.output.beam.beam_size = <local> !AttributeError: 'NoneType' object has no attribute 'beam_size'
self = <local> <_SubnetworkRecCell '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)'>
self.net = <local> <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)' parent_layer=<RecLayer 'output' out_type=Data{[T|'time:var:extern_data:data'[B&Beam{'output/output'}(3)],B&Beam{'output/output'}(3)], dtype='int32', sparse=True, dim=5}> train=False search>
self.net.debug_search_choices = <local> <bound method TFNetwork.debug_search_choices of <TFNetwork '<network via test_SliceNdLayer_RangeInAxisLayer>/output(rec-subnet)' parent_layer=<RecLayer 'output' out_type=Data{[T|'time:var:extern_data:data'[B&Beam{'output/output'}(3)],B&Beam{'output/output'}(3)], dtype='int32', sparse=True, dim=5}...
AssertionError: ("Layer <LengthLayer output/':dyn-tag-accum:1:slices' out_type=Data{[B&Beam{'output/prev:output'}(3)], dtype='int32', ctx=loop('time:var:extern_data:data'[B])}> has buggy search choices resolution.", 'see search choices debug output')
Process finished with exit code 1
Empty suite
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment