# Runtime

Runtime stands for inference-only, which means that the tools can process images, but the tools cannot be modified or retrained. The processing of tools is the minimum functionality required to be able to run the Deep Learning Tools in a deployed production environment.

Pros | Cons
--- | ---
Easier to integrate | Needs a running Deep Learning license to be able to retrain the tools
Parameters are frozen, the application operator cannot modify the tools | More complicated architecture

The runtime phase of the Cognex VisionPro Deep Learning deep learning tools is simpler than the training phase. The runtime components are comprised of the following:

- Sampling
- Neural network processing
- Results formation

Note: For more details of the nerual network processing and feature sampling for processing, see Process Neural Network (Inferencing).

## Runtime Workspace and Runtime Deployment

A runtime workspace is a configuration file that does not contain images or databases, containing only streams and tools, which makes it a smaller version of a full Workspace. This configuration file can be loaded in the library in order to perform some analysis. The runtime workspace is used to runtime deployment on the front line, or sent to the VisionPro application to be integrated and used together.

Applications for runtime deployment are as follows:

- The application operator does not need to retrain the tools.
- Applications where strict control of the application recipes has to be assured (in other words, medical and pharmaceutical applications).
- Applications that require tool processing be run on low power or embedded platforms, and training is done on other platforms.
- When multiple lines use the same application recipes.
- To perform demonstrations, quick-to-market solutions, and proof of concept applications.

### How to Create a Runtime Workspace

If you acquired images, you can train a VisionPro Deep Learning tool, and export this fully trained tool with its workspace as a runtime workspace. The runtime workspace is then used for your machine vision application. This is done in the following three, separate steps:

1. Retrieve the images from hard drive and drops them into the VisionPro Deep Learning GUI. You can transmit the images to the VisionPro Deep Learning GUI, either through the API, using the add to database method, or by manually dragging and dropping them into the VisionPro Deep Learning GUI.
2. Train the tools.

3. Export the trained tool and its workspace as a new runtime workspace and load it inside the library. This can be done manually or using get workspace from server method in the Deep Learning Library (DLL).

   Export Runtime Workspace

   Export Runtime Workspace (.vrws)

Note: For more details of the runtime workspace, see Runtime Workspace.
Note: Deep Learning DLL supports integrated training through API only under a certain license (VisionPro Deep Learning Licenses), but you can use the VisionPro Deep Learning GUI to train a new recipe.

### Deep Learning Library and 3rd Party Application

The Deep Learning Library (DLL, vidi_xx.dll file in Windows) is embedded in the application, possibly through a 3rd party application.

The DLL is responsible for the following:

- Handles the GPU
- Retrieves an image (through memory or hard drive) and returns an XML string

Your vision application is responsible for the following:

- Load a remote workspace into the DLL
- Acquire images
- Transmit the images to the DLL
- Interpret the results and act accordingly
- Give feedback to the user

Programming Language | Methods | Examples | Notes
--- | --- | --- | ---
.Net | namespace Runtime | Example.Runtime.GUI Example.Runtime.Console.MultiGPU | A .NET wrapper provides a UI element that can be used to display the results.
C | vidi_runtime_* | Example.Cpp.Runtime Example.Cpp.Runtime.MultiGPU |

Note: For more details of how to use runtime workspace with API, see Runtime API Processing Guide

### Deep Learning GUI and 3rd Party Application

The DLL supports integrated training through API only under a certain license (VisionPro Deep Learning Licenses), but you can use the VisionPro Deep Learning GUI to train a new recipe.

This is done in the following three, separate steps:

1. Acquire images.
2. Transmit them to the VisionPro Deep Learning GUI, either through the API, using the add to database method, or by manually dragging and dropping them into the VisionPro Deep Learning GUI.
3. Export the runtime workspace and load it inside the DLL. This can be done manually or using get workspace from server method in the DLL.

Your vision application is responsible for the following:

- Acquire images.
- Transmit the images to the VisionPro Deep Learning GUI through the DLL using either the add to database method, or writing them to disk.
- Load the new runtime workspace when training is completed.

To train the system, you do the following:

- Retrieve the images from hard drive and drops them into the VisionPro Deep Learning GUI.
- Train the tools.
- Export a runtime workspace.