# 런타임

런타임은 inference만 가능합니다. 이는 도구가 이미지를 프로세싱할 수는 있지만 도구를 수정하거나 다시 트레이닝할 수는 없다는 뜻입니다. 도구의 프로세싱은 배포된 프로덕션 환경에서 Deep Learning 도구를 실행하기 위해 필요한 최소한의 기능입니다.

장점 | 단점
--- | ---
통합이 용이함 | 도구를 다시 트레이닝하려면 실행 중인 ViDi Suite Deep Learning 라이센스가 필요함
매개변수가 동결되며, 응용 프로그램 운영자는 도구를 수정할 수 없음 | 복잡한 아키텍처

런타임 배포가 적합한 영역은 다음과 같습니다.

- 응용 프로그램 운영자가 도구를 다시 트레이닝할 필요가 없는 경우.
- 응용 프로그램의 레서피에 대한 강력한 통제가 보장된 영역(예: 의료 및 약 관련 응용 프로그램). medical and pharmaceutical applications).
- 낮은 계산력 또는 내장 플랫폼에서 도구가 프로세싱되고, 트레이닝은 다른 플랫폼에서 실행된 응용 프로그램.
- 다수 라인이 동일 응용 프로그램 레서피를 이용할 경우.
- 시연, 시장에 빨리 나가야 하는 솔루션, 개념 증명 응용 프로그램의 실행.

프로그래밍 언어 | 메서드
--- | ---
.NET | namespace Runtime
C | vidi_runtime_*

###### 예

프로그래밍 언어 | 예
--- | ---
.NET | Example.Runtime.GUI
Example.Runtime.Console.MultiGPU
C | Example.Cpp.Runtime
Example.Cpp.Runtime.MultiGPU

Deep Learning DLL은 응용 프로그램에 내장되어 있으며, 타사 응용 프로그램을 이용할 수도 있습니다.

사용자의 Vision 응용 프로그램은 다음을 담당합니다.

- 원격 워크스페이스를 Deep Learning DLL로 로드
- 이미지 획득
- 이미지를 Deep Learning DLL로 전송
- 결과를 해석하고 거기에 따라 작동
- 사용자에게 피드백 제공

Deep Learning DLL은 다음을 담당합니다.

- GPU 관리
- 이미지를 추출(메모리 또는 하드 디스크를 이용)하고 XML 문자열 반환

A .NET Wrapper는 결과를 표시하는 데 이용할 UI 요소를 제공합니다.

Deep Learning DLL은 트레이닝 능력이 통합되어 있지 않으므로, 새로운 레서피를 트레이닝하려면, Deep Learning GUI를 이용해야 합니다. 이는 다음의 분리된 3단계로 실행됩니다.

1. 이미지를 획득합니다.
2. DLL을 통해, 데이터베이스에 추가 방법을 사용하거나 수동으로 Deep Learning GUI로 끌어다 놓아 Deep Learning GUI로 전송하십시오
3. 런타임 워크스페이스를 내보내고 DLL 안으로 로드합니다. 이는 수동으로, 또는 DLL의 get workspace from server 메서드를 이용해 실행할 수 있습니다.

사용자의 Vision 응용 프로그램은 다음을 담당합니다.

- 이미지를 획득합니다.
- DLL의 add to database 메서드를 이용하거나, 수작업으로 Deep Learning GUI로 끌어다 놓음으로써, 이미지를 GUI로 전송합니다.
- 트레이닝이 완료되면 새로운 런타임 워크스페이스를 로드합니다.

시스템을 트레이닝하려면, 사용자는 다음을 해야 합니다.

- 이미지를 하드 디스크에서 추출해 Deep Learning GUI에 놓습니다.
- 해당 도구를 트레이닝합니다.
- 런타임 워크스페이스를 내보냅니다.