캐시 설정
나중에 검색할 수 있도록 값을 캐시 항목에 저장합니다.
이미지의 비디오 식별자를 네임스페이스로 사용하여 키로 메모리 내 캐시에 값을 저장합니다. 이를 통해 워크플로 단계 간 데이터 공유를 활성화하고, 중간 결과를 캐싱하며, 동일한 워크플로 실행 컨텍스트 내에서 중복 계산을 피할 수 있습니다.
이 블록의 작동 방식
이 블록은 나중에 Cache Get 블록을 사용해 검색할 수 있는 메모리 내 캐시에 값을 저장합니다. 이 블록은:
이미지, 캐시 키, 저장할 값을 받습니다:
캐시 네임스페이스를 결정하기 위해 입력 이미지를 사용합니다
캐시 항목을 식별하는 캐시 키(문자열)를 받습니다
캐시에 저장할 값(임의의 데이터 형식)을 받습니다
캐시 네임스페이스를 결정합니다:
이미지의 비디오 메타데이터에서 비디오 식별자를 추출합니다
비디오 식별자를 캐시 네임스페이스로 사용합니다(비디오/스트림별로 캐시 항목을 분리함)
비디오 식별자가 없으면 "default" 네임스페이스로 대체합니다
캐시에 값을 저장합니다:
결정된 네임스페이스의 메모리 내 캐시 사전에 접근합니다
지정된 키를 사용해 캐시에 값을 저장합니다
같은 키가 있는 기존 값을 덮어씁니다(캐시 키는 네임스페이스 내에서 고유합니다)
저장된 값을 반환합니다:
저장된 값과 동일한 값을 패스스루로 출력합니다
이 출력은 이후 워크플로 단계에서 사용할 수 있습니다
캐시는 비디오 식별자별로 네임스페이스가 지정되므로, 서로 다른 비디오나 스트림은 별도의 캐시 저장소를 갖습니다. 이를 통해 여러 비디오를 처리하는 워크플로에서 각 비디오마다 별도의 캐시를 유지할 수 있습니다. 캐시는 메모리에 저장되며 워크플로 실행이 완료되거나 블록이 제거되면 지워집니다. Cache Set은 Cache Get과 함께 사용해야 합니다. 값은 Cache Set으로 저장되고, 동일한 키와 네임스페이스(같은 비디오 식별자로 결정됨)를 사용해 Cache Get으로 검색됩니다.
일반적인 사용 사례
단계 간 공유 상태: 한 워크플로 단계에서 중간 결과를 저장해 다른 단계에서 검색합니다(예: 나중에 분석하기 위해 감지 결과 저장, 필터링을 위해 분류 예측 캐싱, 후속 블록을 위해 메타데이터 저장). 이를 통해 상태 공유 워크플로를 활성화합니다
중복 계산 방지: 여러 워크플로 단계에서 재사용할 수 있도록 비용이 큰 계산 결과를 캐싱합니다(예: 모델 예측 캐싱, 처리된 이미지 저장, 변환 결과 저장). 이를 통해 계산 캐싱 워크플로를 활성화합니다
비디오 프레임 컨텍스트: 프레임별 데이터를 저장하여 비디오 프레임 간 컨텍스트를 유지합니다(예: 이전 프레임 감지 결과 캐싱, 프레임 시퀀스 메타데이터 저장, 추적 상태 저장). 이를 통해 프레임 컨텍스트 워크플로를 활성화합니다
조건부 워크플로 로직: 이후 단계에서 워크플로 실행을 제어하는 결정 결과나 플래그를 저장합니다(예: 필터링 결정 캐싱, 검증 결과 저장, 워크플로 상태 저장). 이를 통해 조건부 실행 워크플로를 활성화합니다
데이터 집계: 캐시에 값을 저장해 워크플로 단계 전반에서 데이터를 누적합니다(예: 감지 횟수 저장, 통계 캐싱, 결과 모음 저장). 이를 통해 데이터 집계 워크플로를 활성화합니다
임시 저장: 워크플로 그래프를 통과하지 않고 여러 워크플로 단계에서 접근해야 하는 값의 임시 저장소로 캐시를 사용합니다(예: 단계 간 데이터 저장, 임시 상태 유지, 비선형 워크플로 데이터 공유). 이를 통해 임시 저장 워크플로를 활성화합니다
다른 블록과 연결하기
이 블록은 값을 캐시에 저장하고 저장된 값을 그대로 통과시킵니다:
Cache Get 블록 앞에서 나중에 검색할 값을 저장할 때 사용합니다(예: 검색을 위해 감지 결과 저장, 나중에 사용하기 위한 예측 캐싱, 접근을 위한 메타데이터 저장). 이를 통해 캐시 저장 워크플로를 활성화합니다
모델 또는 처리 블록 뒤에서 나중에 사용할 수 있도록 해당 출력 결과를 캐시합니다(예: 모델 예측 캐싱, 처리 결과 저장, 계산 출력 저장). 이를 통해 결과 캐싱 워크플로를 활성화합니다
워크플로 분기에서 병렬 또는 조건부 실행 경로에서 접근 가능한 공유 값을 저장합니다(예: 공유 상태 저장, 공통 결과 캐싱, 분기 데이터 저장). 이를 통해 분기 조정 워크플로를 활성화합니다
캐시된 데이터가 필요한 블록 앞에서 이후 블록에서 사용할 값을 저장합니다(예: 나중에 처리할 입력 저장, 필터링용 데이터 캐싱, 분석용 값 저장). 이를 통해 캐시된 데이터 워크플로를 활성화합니다
조건부 로직 워크플로에서 나중에 사용할 플래그나 결정을 저장합니다(예: 검증 결과 저장, 결정 플래그 캐싱, 조건부 상태 저장). 이를 통해 조건부 로직 워크플로를 활성화합니다
비디오 처리 워크플로에서 프레임별 또는 비디오별 캐시 네임스페이스를 유지합니다(예: 프레임 컨텍스트 저장, 비디오별 데이터 캐싱, 스트림별 값 저장). 이를 통해 비디오 컨텍스트 워크플로를 활성화합니다
요구 사항
이 블록은 입력 이미지(비디오 식별자를 통해 캐시 네임스페이스를 결정하는 데 사용됨), 캐시 항목을 식별하는 캐시 키(문자열), 그리고 저장할 값(임의의 데이터 형식)을 필요로 합니다. 이 블록은 LOCAL 실행 모드에서만 작동하며, 다른 실행 모드에서 사용하면 NotImplementedError를 발생시킵니다. 캐시에 저장된 값은 같은 키와 네임스페이스(같은 비디오 식별자)를 사용해 Cache Get 블록으로 나중에 검색할 수 있습니다. 캐시는 메모리에 저장되며 워크플로 실행이 완료되면 자동으로 지워집니다. 캐시는 비디오 식별자별로 네임스페이스가 지정되므로, 서로 다른 비디오는 별도의 캐시 저장소를 갖습니다. 캐시에 이미 키가 존재하면 같은 키로 새 값을 저장할 때 이전 값이 덮어써집니다. 저장할 값은 문자열, 숫자, 리스트, 감지 결과, 이미지 등 어떤 데이터 형식도 될 수 있습니다.
유형 식별자
step에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/cache_set@v1 를 워크플로에 단계로 추가합니다.
속성
이름
유형
설명
참조
name
str
이 단계에 고유 식별자를 입력하세요..
❌
키
str
저장될 값이 들어갈 캐시 항목을 식별하는 캐시 키(문자열)입니다. 값을 검색할 때는 Cache Get 블록에서 같은 값을 키로 사용해야 합니다. 키는 대소문자를 구분하며 정확히 일치해야 합니다. 캐시에 이미 키가 존재하면 새 값을 저장할 때 이전 값이 덮어써집니다. 서로 다른 캐시 값을 식별하려면 설명적인 키를 사용하세요(예: 'detections', 'classification_result', 'frame_metadata')..
✅
해당 참조 열은 워크플로 런타임에서 사용할 수 있는 동적 값으로 속성을 매개변수화할 수 있음을 나타냅니다. 자세한 내용은 워크플로 런타임. 자세한 내용은 바인딩 를 참조하세요.
런타임 호환성
하드 - 실행 원격 : 캐시 블록은 LOCAL 워크플로 단계 실행만 지원합니다. 원격 단계 실행은 NotImplementedError를 발생시킵니다.
입력 및 출력 바인딩
사용 가능한 연결은 바인딩 종류에 따라 달라집니다. 어떤 바인딩 종류가 있는지 확인하세요 캐시 설정 버전 v1 가 있습니다.
입력 및 출력 바인딩
입력
image(image): 캐시 네임스페이스를 결정하는 데 사용되는 입력 이미지입니다. 이 블록은 이미지의 비디오 메타데이터에서 비디오 식별자를 추출하여 캐시 네임스페이스로 사용합니다. 비디오 식별자가 없으면 'default'를 네임스페이스로 사용합니다. 네임스페이스는 캐시 항목을 분리하여 서로 다른 비디오나 스트림이 별도의 캐시 저장소를 갖도록 합니다. 같은 캐시 네임스페이스에 접근하려면 Cache Set과 Cache Get 블록 모두에서 동일한 이미지(동일한 비디오 식별자 포함)를 사용하세요..키(문자열): 저장될 값이 들어갈 캐시 항목을 식별하는 캐시 키(문자열)입니다. 값을 검색할 때는 Cache Get 블록에서 같은 값을 키로 사용해야 합니다. 키는 대소문자를 구분하며 정확히 일치해야 합니다. 캐시에 이미 키가 존재하면 새 값을 저장할 때 이전 값이 덮어써집니다. 서로 다른 캐시 값을 식별하려면 설명적인 키를 사용하세요(예: 'detections', 'classification_result', 'frame_metadata')..값(Union[*,list_of_values]): 캐시에 저장할 값입니다. 문자열, 숫자, 리스트, 감지 결과, 이미지, 분류, 또는 그 밖의 모든 워크플로 데이터 형식을 포함해 어떤 데이터 형식이든 될 수 있습니다. 값은 메모리에 저장되며, 같은 키와 네임스페이스를 사용해 Cache Get 블록으로 나중에 검색할 수 있습니다. 값은 블록의 출력으로도 그대로 전달되므로 이후 워크플로 단계에서 사용할 수 있습니다..
출력
출력(*): 모든 요소에 해당.
마지막 업데이트
도움이 되었나요?