Components

On this section you will find descriptions of each component available in PerceptiLabs and their parameters.

What is a component

A component is a block of your deep learning model architecture, and the collection of components available in PerceptiLabs forms PerceptiLabs' visual API. Each component is defined with one or more inputs sockets, one or more output sockets, and the parameters that set up the component. Each component wraps common patterns of TensorFlow code, effectively writing the underlying code of your model for you, while providing you the option to modify this code if required.

Each component provides a visual preview of how it transforms its input, which can be seen once its input socket has been set up. When you modify the input component, or a connected component earlier in the model's graph, each affected component will update its preview. PerceptiLabs provides this visualization by running the model using the first sample of data from your model's input component(s). This allows you to see how your model is transforming data as you edit it, and effectively separates modelling from training, since you don't need to run the whole model just to see if its working correctly.

Connecting Components

Each component can be linked to other components by connecting it's input and output sockets. Simply select a component's output socket and drag it to the input socket of another component to link them.

When a component is selected from the model editor, it's parameters are shown in the settings panel:

In the settings panel you can set up all the component parameters, open the code editor to modify the code of the component, or reset to the default values of the component by clicking Reset component at the bottom.

PerceptiLabs' Model Autosettings feature automatically assigns "good values" to your newly added component which you can then adjust.

How to add Components

To add new components use the component tabs above the workspace.

The following categories of components are available for drag and drop into the model workspace:

Modifying a Component's Code

When you click Open code on the settings pane, the code editor opens, allowing you to modify the component's code:

When you modify and save the code, PerceptiLabs will "lock" the component's settings in the Settings pane to indicate that the component's settings must now be modified in code. This prevents you from accidentally changing settings in the UI which you may have also changed in code.

To reset the component so that you can modify the settings in the UI again, click the Reset component button:

Note: Resetting the component will reset the component's code back to it's default and you will lose any code changes that you made.

Model Autosettings

When you add a component to your model, PerceptiLabs' Model Autosettings feature automatically assigns "good values" to the component's settings as a starting point and will continue to automatically adjust your components' settings as your model's topology changes. It does so according to some standard rules to make the life easier in some scenarios. For example, when adding multiple Conv components after each other, it will keep doubling the Feature Maps of the new Con components.

After you manually change a component's value or modify its code PerceptiLabs' will no longer continue to update the settings of that particular component.

Tip: The values assigned by the Model Autosettings feature are more akin to recommendations than to something needed for the model to run well.