returnn.sprint.extern_interface

This is a Sprint interface implementation. See SprintInterface.py for another Sprint interface. This Sprint interface is to be used for ExternSprintDataset, which should automatically use it.

returnn.sprint.extern_interface.getSegmentList(corpusName, segmentList, **kwargs)[source]

Called by Sprint PythonSegmentOrder. Set python-segment-order = true in Sprint to use this.

If this is used, this gets called really early. If it is used together with the Sprint PythonTrainer, it will get called way earlier before the init() below. It might also get called multiple times, e.g. if Sprint is in interactive mode to calc the seg count. This is optional. You can use the SprintInterface only for the PythonTrainer.

Return type:

list[str]

:returns segment list. Can also be an iterator.

returnn.sprint.extern_interface.exchook(exc_type, exc_obj, exc_tb)[source]

Replacement for sys.excepthook.

returnn.sprint.extern_interface.init(**kwargs)[source]

Called by Sprint when it initializes the PythonTrainer, or also for PythonControl. Set trainer = python-trainer in Sprint to enable PythonTrainer for the Sprint nn-trainer tool. Note that Sprint will call this, i.e. the trainer init lazily quite late, only once it sees the first data.

Parameters:

kwargs – all passed to _init_python_trainer() or PythonControl.init()

Return type:

None|PythonControl

returnn.sprint.extern_interface.exit()[source]

Called by Sprint, to signal that it is exiting.

returnn.sprint.extern_interface.feedInput(features, weights=None, segmentName=None)[source]

Called by Sprint. Unsupervised case.

Parameters:
  • features (numpy.ndarray)

  • weights (numpy.ndarray|None)

  • segmentName (str|None)

returnn.sprint.extern_interface.feedInputAndTargetAlignment(features, targetAlignment, weights=None, segmentName=None)[source]
Parameters:
  • features (numpy.ndarray)

  • targetAlignment (numpy.ndarray)

  • weights (numpy.ndarray|None)

  • segmentName (str|None)

returnn.sprint.extern_interface.feedInputAndTargetSegmentOrth(features, targetSegmentOrth, weights=None, segmentName=None)[source]
Parameters:
  • features (numpy.ndarray)

  • targetSegmentOrth (str)

  • weights (numpy.ndarray|None)

  • segmentName (str|None)

returnn.sprint.extern_interface.feedInputUnsupervised(features, weights=None, segmentName=None)[source]

Called by Sprint. Unsupervised case.

Parameters:
  • features (numpy.ndarray)

  • weights (numpy.ndarray|None)

  • segmentName (str|None)

returnn.sprint.extern_interface.feedInputAndTarget(features, weights=None, segmentName=None, orthography=None, alignment=None, speaker_name=None, speaker_gender=None, **kwargs)[source]
Parameters:
  • features (numpy.ndarray)

  • weights (numpy.ndarray|None)

  • segmentName (str|None)

  • orthography (str|None)

  • alignment (numpy.ndarray|None)

  • speaker_name (str|None)

  • speaker_gender (str|None)

class returnn.sprint.extern_interface.PythonControl(config, **kwargs)[source]

PythonControl, interface for Sprint.

instance = None[source]
classmethod init(**kwargs)[source]

Called by global init().

Return type:

PythonControl

init_processing(input_dim, output_dim, **kwargs)[source]

Called by Sprint.

Parameters:
  • input_dim (int)

  • output_dim (int)

  • kwargs – maybe others

process_segment(name, orthography, features, alignment, soft_alignment, speaker_name=None, **kwargs)[source]

Called by Sprint.

Parameters:
  • name (str)

  • orthography (str|None)

  • features (numpy.ndarray)

  • alignment (numpy.ndarray|None)

  • soft_alignment (numpy.ndarray|None)

  • speaker_name (str|None)

  • kwargs – maybe others

exit(**kwargs)[source]

Called by Sprint.

Parameters:

kwargs

class returnn.sprint.extern_interface.ExternSprintDatasetSource(c2p_fd, p2c_fd, input_dim, output_dim, num_segments)[source]

This will send data to ExternSprintDataset over a pipe. We expect that we are child process and the parent process has spawned us via ExternSprintDataset and is waiting for our data.

Parameters:
  • c2p_fd (int) – child-to-parent file descriptor

  • p2c_fd (int) – parent-to-child file descriptor

  • num_segments (int | None) – can be None if not known in advance

add_new_data(segment_name, features, targets)[source]
Parameters:
  • segment_name (str)

  • features (numpy.ndarray) – 2D array, (feature,time)

  • targets (dict[str,numpy.ndarray]) – each target is either 1D (time->idx) or 2D (time,class)

close()[source]

Close pipe fds.