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.
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 the 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.
Output select dropdown: allows you to select specific output variables to be passed to the next (connected) component (see Output socket below). When displayed, this shows all variables in the component which can be passed to the next component (e.g., output, w (weights), and b (bias)).
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 the input. This can range from graphic data to bar graphs, etc depending on the type of component.
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.
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:
When you click Open code (1) on the settings pane, the code editor opens, allowing you to modify the component's code. You can optionally maximize the code editor using the maximum button (2):
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:
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.