PassManager
class qiskit.transpiler.PassManager(passes=(), max_iteration=1000)
베이스: BasePassManager
관리자에서 패스 세트와 트랜스파일링 중 일정을 확인할 수 있습니다.
빈 패스 관리자 개체를 초기화합니다.
매개변수
- passes (Task |list[Task]) – 패스 매니저 일정에 추가될 예정인 패스입니다.
- max_iteration (int) – 조건이 충족되지 않을 경우 일정이 반복되는 최대 반복 횟수입니다.
메소드
append
append(passes)
패스 일정에 패스 세트를 추가합니다.
매개변수
passes (Task |list[Task]) – 일정에 추가할 트랜스파일러 처리 단계 세트.
레이즈
TranspilerError – ‘패스’ 중 하나가 올바른 패스가 아닌 경우.
리턴 유형
없음
draw
draw(filename=None, style=None, raw=False)
패스 관리자를 그립니다.
이 기능을 사용하려면 pydot이 필요하며, 그래프비즈가 설치되어 있어야 합니다.
이 함수는 사용자가 제어할 수 있는 문자열(예: 경로 이름)이 포함된 파일에 대해 시스템의 Graphviz 도구를 호출합니다. 이 함수는 신뢰할 수 있는 입력에 대해서만 호출하는 것이 좋습니다.
매개변수
- filename (str) – 파일 경로에 이미지를 저장합니다.
- style (dict) – 키는 패스 클래스이고 값은 패스 클래스를 만드는 색상입니다. 예제는 DEFAULT_STYLE에서 확인할 수 있습니다. 패스가 여러 범주에 속할 때 우선 순위 색상을 지정하기 위해 정렬된 딕셔너리를 사용할 수 있습니다. 제공된 딕셔너리에 포함되지 않은 값은 기본 딕셔너리에서 채워집니다.
- raw (bool) –
True, 이미지 대신 원시 도트 출력을 저장합니다.
리턴
패스 관리자의 인메모리 표현, 또는 이미지가 생성되지 않았거나 Pillow가 설치되지 않은 경우 None .
리턴 유형
옵션[ PassManager ]
레이즈
ImportError - NXPD 또는 PYDOT가 설치되지 않은 경우.
remove
remove(index)
스케줄러에서 특정 패스를 제거합니다.
매개변수
passes()index (int) –. 내의 위치를 기준으로 제거할 인덱스를 전달합니다.
레이즈
PassManagerError – 인덱스를 찾을 수 없는 경우.
리턴 유형
없음
replace
run
run(circuits, output_name=None, callback=None, num_processes=None, *, property_set=None)
지정된 circuits 에서 모든 패스를 실행합니다.
매개변수
-
circuits (_CircuitsT) – 등록된 모든 패스를 통해 변환할 수 있는 회로입니다.
-
output_name (str | None) – 출력 회로 이름입니다.
None인 경우 입력 회로 이름과 동일하게 설정됩니다. -
callback (Callable | None) –
각 패스 실행 후 호출되는 콜백 함수입니다. 이 함수는 5개의 키워드 인수를 사용하여 호출됩니다:
pass_ (Pass): the pass being run dag (DAGCircuit): the dag output of the pass time (float): the time to execute the pass property_set (PropertySet): the property set count (int): the index for the pass execution참고여기서 키워드 인수는 일반 함수에서 사용하는 키워드 인수와 다르다는 점에 주의하십시오
BasePassManager. 이 패스 관리자는 이러한 인수를 위에서 설명한 형식으로 변환합니다.정확한 인자 패스는 패스 관리자의 내부를 노출하며 패스 관리자 내부가 변경됨에 따라 변경될 수 있습니다. 여러 릴리스에 걸쳐 콜백 함수를 재사용하려는 경우 전달되는 인수가 동일한지 확인해야 합니다.
콜백 기능을 사용하려면 kwargs dict를 받아 변수에 액세스하는 함수를 정의합니다. 예를 들어,
def callback_func(**kwargs): pass_ = kwargs['pass_'] dag = kwargs['dag'] time = kwargs['time'] property_set = kwargs['property_set'] count = kwargs['count'] ...참고다중 프로세싱으로 트랜스파일링을 실행할 때 콜백 함수는 상위 프로세스와 독립적으로 각 하위 프로세스의 컨텍스트 내에서 호출됩니다.
-
num_processes (int | None) – 병렬 실행이 활성화된 경우 시작할 병렬 프로세스의 최대 개수. 이 설정은 사용자 설정 파일과 환경
QISKIT_NUM_PROCS변수의 설정을num_processes우선합니다. 이None옵션이 설정된 경우 시스템 기본값이나 로컬 사용자 설정이 적용됩니다. -
property_set (dict[str, object] | None) – 주어진 경우, 패스 관리자 파이프라인의 초기값으로 사용할
PropertySet로 사용할 초기 값입니다. 이 기능은 분석을 공유해도 안전하다고 판단되는 경우 한 실행에서 다른 실행으로 분석을 지속하는 데 사용할 수 있습니다. 일부 분석은 입력 회로와 특정Target에만 해당되므로 이 인수를 사용할 때는 많은 주의를 기울여야 합니다.
리턴
변환된 회로입니다.
리턴 유형
_CircuitsT
to_flow_controller
to_flow_controller()
이 관리자를 하나의 FlowControllerLinear로 선형화하여 다른 패스 관리자 안에 중첩할 수 있도록 합니다.
리턴
선형화된 패스 관리자.
리턴 유형
Flow[* ControllerLinearIR*, IR]