This section provides descriptions of the Components available in PerceptiLabs and their settings.
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 parameters that configure 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 (and Preview is enabled in the Modeling Tool). Modifying a Component in the model's graph will cause each dependent component to 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 modeling from training, since you don't need to run the whole model just to see if it's working correctly.
Note: All models in PerceptiLabs include an Input and a Target component which are created automatically by PerceptiLabs when the model is first created. These components cannot be removed from the model as they represent the input and output of the model respectively.
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.
The main elements of a Component are:
Component title: displays the name of the Component. You can double click the name to edit and rename the Component.
Component output size: shows the output dimensions of the data after the Component has transformed the input.
Input socket: connects to another Component and uses its transformed data as input.
Output socket: connects to another Component, and channels output to that Component. Make the connection by dragging this field to the dot of the input socket of another Component. Use the Output select dropdown (see above) to customize which variables are output.
Preview: provides a visualization of how the Component has transformed its input. This can range from graphic data to bar graphs, etc., depending on the type of Component. Note: Preview must be enabled in the Modeling Tool in order to see Component previews.
When a Component is selected from the model editor, its parameters are shown in the Settings pane:
In the Settings pane you can configure the Component's 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 to your model, drag them from the Component tabs onto your workspace
The following categories of components are available for drag and drop into the model workspace:
When you click Open code (1) on the settings pane, the code editor (2) opens, allowing you to modify the Component's code. You can optionally maximize the code editor using the maximum button (3):
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.
Resetting a Component
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 its default and you will lose any code changes that you made.
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 Component settings as your model's topology changes. For example, when adding multiple Convolution Components after each other, PerceptiLabs will keep doubling the Feature Maps of the new Convolution 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.