def add_annotation(self, name_scope='annotation'): """Adds an annotation pipeline to the graph. This will create the following additional named targets by default, for use in C++ annotation code (as well as regular ComputeSession targets): annotation/ComputeSession/session_id (placeholder for giving unique id) annotation/EmitAnnotations (get annotated data) Args: name_scope: Scope for the annotation pipeline. Returns: A dictionary of input and output nodes. """ with tf.name_scope(name_scope): handle, input_batch = self._get_session_with_reader() handle = self.build_inference(handle, use_moving_average=True, clear_existing_annotations=True) annotations = dragnn_ops.emit_annotations( handle, component=self.spec.component[-1].name) outputs = {'annotations': annotations} return self._outputs_with_release(handle, {'input_batch': input_batch}, outputs)
def add_annotation(self, name_scope='annotation', enable_tracing=False): """Adds an annotation pipeline to the graph. This will create the following additional named targets by default, for use in C++ annotation code (as well as regular ComputeSession targets): annotation/ComputeSession/session_id (placeholder for giving unique id) annotation/EmitAnnotations (get annotated data) annotation/GetComponentTrace (get trace data) annotation/SetTracing (sets tracing based on annotation/tracing_on) Args: name_scope: Scope for the annotation pipeline. enable_tracing: Enabling this will result in two things: 1. Tracing will be enabled during inference. 2. A 'traces' node will be added to the outputs. Returns: A dictionary of input and output nodes. """ with tf.name_scope(name_scope): handle, input_batch = self._get_session_with_reader(enable_tracing) handle = self.build_inference(handle, use_moving_average=True) annotations = dragnn_ops.emit_annotations( handle, component=self.spec.component[-1].name) outputs = {'annotations': annotations} if enable_tracing: outputs['traces'] = dragnn_ops.get_component_trace( handle, component=self.spec.component[-1].name) return self._outputs_with_release(handle, {'input_batch': input_batch}, outputs)