MCPcopy Create free account
hub / github.com/apple/axlearn / OutputCollection

Class OutputCollection

axlearn/common/module.py:251–279  ·  view source on GitHub ↗

Implicit outputs from module invocations. Usually users do not interact with `OutputCollection` directly, but via `InvocationContext.add_{summary, state_update, module_output}()`.

Source from the content-addressed store, hash-verified

249
250
251class OutputCollection(NamedTuple):
252 """Implicit outputs from module invocations.
253
254 Usually users do not interact with `OutputCollection` directly, but via
255 `InvocationContext.add_{summary, state_update, module_output}()`.
256 """
257
258 summaries: NestedTensor
259 state_updates: NestedTensor
260 module_outputs: NestedTensor
261
262 def __contains__(self, name: str) -> bool:
263 return name in self.summaries
264
265 def add_child(self, name: str) -> "OutputCollection":
266 if not re.fullmatch("^[a-z][a-z0-9_]*$", name):
267 raise ValueError(f'Invalid child name "{name}"')
268 if name in self:
269 raise OutputConflictError(f"{name} already present")
270 child = new_output_collection()
271 self.summaries[name] = child.summaries
272 self.state_updates[name] = child.state_updates
273 self.module_outputs[name] = child.module_outputs
274 return child
275
276 def update(self, collection: "OutputCollection"):
277 self.summaries.update(**collection.summaries)
278 self.state_updates.update(**collection.state_updates)
279 self.module_outputs.update(**collection.module_outputs)
280
281
282def new_output_collection():

Callers 9

test_metrics_updateMethod · 0.90
test_forwardMethod · 0.90
test_parent_forwardMethod · 0.90
test_pipelineMethod · 0.90
loss_fnMethod · 0.90
test_repeatMethod · 0.90
collection_fromMethod · 0.90
new_output_collectionFunction · 0.85
scan_fnFunction · 0.85

Calls

no outgoing calls

Tested by 7

test_metrics_updateMethod · 0.72
test_forwardMethod · 0.72
test_parent_forwardMethod · 0.72
test_pipelineMethod · 0.72
loss_fnMethod · 0.72
test_repeatMethod · 0.72
collection_fromMethod · 0.72