def __init__(
        self,
        device: Union[Device, str],
        ep_footprint_map: dict[str, Footprint],
        objective_dict: dict[str, Any],
    ):
        """Initialize a DeviceOutput instance.

        Args:
            device: The hardware device for these outputs
            ep_footprint_map: Dictionary mapping execution providers to their Footprint
            objective_dict: Dictionary of objectives with their priorities

        """
        self._device = device
        self._ep_model_map: dict[str, ModelOutput] = {}
        self._objective_dict = objective_dict

        for ep, footprint in ep_footprint_map.items():
            if ep not in self._ep_model_map:
                self._ep_model_map[ep] = []
            if not footprint.check_empty_nodes():
                for node in footprint.nodes.values():
                    self._ep_model_map[ep].append(ModelOutput(device, ep, node))

        self._best_candidate = self._get_best_candidate()
Initialize a DeviceOutput instance.

        Args:
            device: The hardware device for these outputs
            ep_footprint_map: Dictionary mapping execution providers to their Footprint
            objective_dict: Dictionary of objectives with their priorities

        
olive/engine/output.py