|
|
# Network creation
|
|
|
|
|
|
## Table of Contents
|
|
|
1.[Introduction](manual#introduction)
|
|
|
1.[Setup](manual-setup)
|
|
|
|
|
|
2.[Setup](manual-setup)
|
|
|
2.[Overview](manual-overview)
|
|
|
|
|
|
3.[Overview](manual-overview)
|
|
|
|
|
|
4.[Network creation](manual-network)
|
|
|
3.[Network creation](manual-network)
|
|
|
- [Creating a Network](manual-network#creating-a-network)
|
|
|
- [Import an existing network or solver](manual-network#import-an-existing-network-or-solver)
|
|
|
- [Navigation in the node editor](manual-network#navigation-in-the-node-editor)
|
... | ... | @@ -17,11 +15,11 @@ |
|
|
- [Adding parameters](manual-network#adding-parameters)
|
|
|
- [Altering/Removing parameters](manual-network#altering-parameters)
|
|
|
- [Prototxt editor](manual-network#prototxt-editor)
|
|
|
- [Export der prototxt](manual-network#prototxt-export)
|
|
|
- [Exporting prototxt](manual-network#prototxt-export)
|
|
|
|
|
|
5.[Network training](manual-training)
|
|
|
4.[Network training](manual-training)
|
|
|
|
|
|
6.[Miscellaneous](manual-miscellaneous)
|
|
|
5.[Miscellaneous](manual-miscellaneous)
|
|
|
|
|
|
## Network creation
|
|
|
### Import an existing network or solver
|
... | ... | @@ -32,11 +30,17 @@ Importing a network automatically arranges the layer nodes. |
|
|
|
|
|
### Navigation in the node editor
|
|
|
Move the scene - Click and drag the left mouse button on an empty space / Use the scrollbars
|
|
|
Zoom - Mouse wheel
|
|
|
|
|
|
Zoom - Mouse wheel
|
|
|
|
|
|
Select a layer - Click the left mouse button on the layer
|
|
|
|
|
|
Select multiple layers - Click the left mouse button on the layers while holding CTRL
|
|
|
|
|
|
Rectangular selection - Hold CTRL and drag the left mouse button
|
|
|
|
|
|
Move layers - Click and drag the layer / any selected layer
|
|
|
|
|
|
Center view on specific layer - Right click a layer in the **Network Layers**-dock and select **Focus** from the context menu
|
|
|
|
|
|
### Managing layers
|
... | ... | @@ -48,28 +52,28 @@ By dropping the layer type name on an existing layer node, you can choose to rep |
|
|
|
|
|
The list of available layer types can be filtered by typing part of the name in the search box above the list.
|
|
|
|
|
|
It is also possible to copy and paste layers by selecting the layers, **right clicking** any selected layer and select **Copy** from the context menu, or by pressing **CRTL-C**, use **right click** **Paste** or **CRTL-V** to create the copy. The new layers have the same amount of top and bottom blobs, top blobs get renamed to be unique, parameters will get copied, connections between copied layers get preserved.
|
|
|
It is also possible to copy and paste layers by selecting the layers, **right clicking** any selected layer and select **Copy** from the context menu, or by pressing **CRTL-C**, use **right click** **Paste** or **CRTL-V** to create the copy. The new layers have the same amount of top and bottom blobs, top blobs are renamed to be unique, parameters are copied, connections between copied layers are preserved.
|
|
|
|
|
|
Selected layers can be deleted by pressing **Del**. All connections, connected to the selected layer will get removed.
|
|
|
Selected layers can be deleted by pressing **Del**. All connections, to and from the selected layer will be removed.
|
|
|
|
|
|
All layers currently in the network are listed in the **Network Layers**-Dock. The list can get sorted by order, name or type in ascending or descending order, by clicking the captions. Order represents the connection hierarchy of the nodes, where layers with a top blob have a smaller order number than connected bottom blob layers.
|
|
|
All layers currently in the network are listed in the **Network Layers**-Dock. The list can get sorted by order, name or type in ascending or descending order, by clicking the captions. Order represents the connection hierarchy of the layers, where for every two layers connected with at least one blob the creating layer (the connecting blob is a top blob) is in front of the consuming layer (the connecting blob is a bottom blob). In cases where layers process blobs in parallel, the order is ambiguous.
|
|
|
|
|
|
![NetworkLayersScreenshot_from_2017-11-27_14-37-45](/uploads/e566887f2784126f67ae844e22fe9c50/NetworkLayersScreenshot_from_2017-11-27_14-37-45.png)
|
|
|
|
|
|
### Blobs and connections
|
|
|
To add a top or bottom blob to a layer, **right click** the node and select **Add top** or **Add bottom**. When creating a top blob, a dialog will ask for the blobs name.
|
|
|
Alternatively, blobs can get added using the **Layer Properties**-dock by selecting **bottom** or **top** in the right layer, and click on **Add**. If the layer has no top/bottom blob, choose **top [list]** or **bottom [list]** in the selection-menu at the bottom of the Layer Properties-dock and use the **Add**-Button to create the blob. If creating a top blob, type the name in the new input field. The name of bottom blobs can be changed manually too, but if attached connections exist, these will be deleted, since the connected top and bottom blobs always have to be named equally. Otherwise the name of added bottom blobs will get updated automatically when connecting to a top blob.
|
|
|
Alternatively, blobs can be added using the **Layer Properties**-dock by selecting **bottom** or **top** in the right layer, and click on **Add**. If the layer has no top/bottom blob, choose **top [list]** or **bottom [list]** in the selection-menu at the bottom of the Layer Properties-dock and use the **Add**-Button to create the blob. If creating a top blob, type the name in the new input field. The name of bottom blobs can be changed manually too, but if attached connections exist, these will be deleted, since the connected top and bottom blobs always have to be named equally. Otherwise the name of added bottom blobs will get updated automatically when connecting to a top blob.
|
|
|
|
|
|
The rectangles in the lower part of the layer node represent the top and bottom blobs, the top blobs being right and the bottom blobs being left.
|
|
|
The rectangles in the lower part of the layer node represent the top and bottom blobs, data flows through the network from left to right. Hence, connectors on the left represent bottom blobs, connectors on the right represent top blobs.
|
|
|
![manual-nodeedit-blobs](/uploads/1ffb56384fbc9bdcc7a5b31ace260a23/manual-nodeedit-blobs.png)
|
|
|
|
|
|
To change a top blobs name, select the blob in the **Layer Properties**-dock then click on the name and type your favored name . This will also update all bottom blob names, connected to the changed top blob.
|
|
|
To change a top blobs name, select the blob in the **Layer Properties**-dock then click on the name and type a name of your choice. This will also update all bottom blob names, connected to the changed top blob.
|
|
|
|
|
|
You can connect a top and a bottom blob by start dragging on a blobs rectangle and stop at another rectangle. This will create a visible connection between both blobs. Note, that you can't create a connection between two top or two bottom blobs. A top blob can be connected to multiple bottom blobs, but a bottom blob can only connect to one top blob. (If the layer of the top blob has the **include.phase** parameter, a second top blob can get connected to the bottom blob. The second top blob needs to have the same name as the first and its **include.phase** parameter needs to have another phase.)
|
|
|
You can connect a top and a bottom blob by start dragging on a blobs rectangle and stop at another rectangle. This will create a visible connection between both blobs. Note, that you can't create a connection between two top or two bottom blobs. A top blob can be connected to multiple bottom blobs, but a bottom blob can only be connected to one top blob. (If the layer of the top blob has the **include.phase** parameter, a second top blob can be connected to the bottom blob. The second top blob needs to have the same name as the first and its **include.phase** parameter needs to have another phase. Please note that Barista does not support training stages or levels, yet. If those are needed, please use the [prototxt editor](manual-network#prototxt-editor).)
|
|
|
|
|
|
Long connections can get hidden, by **right clicking** the connection and selecting **Hide** from the context menu. To show the connection select **Show**. Hidden connections are represented by dashed lines at the start and end of the connection.
|
|
|
Connections can be hidden if they clutter the network view: **Right click** the connection and select **Hide** from the context menu. To show the connection select **Show**. Hidden connections are represented by dashed lines at the start and end of the connection.
|
|
|
|
|
|
If a layer has a top and a bottom blob with the same name, the border of the layer, the blobs rectangle and the connection turn blue, to indicate in-place working layers. Blue top blobs can not get connected to other bottom blobs. Use the last top blob with the name instead.
|
|
|
If a layer has a top and a bottom blob with the same name, the border of the layer, the blobs rectangle and the connection turn blue, to indicate in-place working layers. Blue top blobs can not be connected to other bottom blobs. Use the last top blob with the name instead.
|
|
|
|
|
|
| **Wrong!** | **Correct!** |
|
|
|
| :------------: | :------------: |
|
... | ... | @@ -80,7 +84,7 @@ To remove a connection between two blobs, either select the connection and hit * |
|
|
Removing a blob can be done by **right clicking** the blobs rectangle and selecting **Remove** from the context menu. Alternatively a blob can be removed by clicking the **Remove**-button in the **Layer Properties**-dock when the attached Layer is selected. Removing a blob also removes all connections connected to the blob.
|
|
|
|
|
|
### Editing layer and solver parameters
|
|
|
To add, remove and alter the parameters of the different layers and the solver, **Barista** offers the docks **Solver Properties** and **Layer Properties**, which visibility can be set in the menubar under **View -> Docks -> Layer/Solver Properties**.
|
|
|
To add, remove and alter the parameters of the different layers and the solver, **Barista** offers the docks **Solver Properties** and **Layer Properties**, which visibility can be set in the menu bar under **View -> Docks -> Layer/Solver Properties**.
|
|
|
|
|
|
The dock **Layer Properties** lists the parameters of a selected layer in the **Graph View**, the dock **Solver Properties** lists the parameters of the Solver. If multiple layers are selected, a tab for each one is shown on the top of the *Layer Properties* dock, from which the user can choose one.
|
|
|
|
... | ... | @@ -102,16 +106,16 @@ In **Barista**, a **primitive** parameter is shown with its name on the left sid |
|
|
|
|
|
#### Adding parameters
|
|
|
To add a new parameter, select the Group Parameter the required (sub)parameter should be part of, then choose the parameter in the selection-menu and click on **Add**.
|
|
|
The selection-menu automatically shows you only the suitable parameters when you selected a Group parameter before.
|
|
|
The selection-menu automatically shows only the suitable parameters when you selected a Group parameter before.
|
|
|
|
|
|
![jsjgdrScreenshot_from_2017-11-29_12-04-56](/uploads/ab2a359a57a150d4c0d6bc7012c7a3d6/jsjgdrScreenshot_from_2017-11-29_12-04-56.png)
|
|
|
|
|
|
|
|
|
#### Altering/Removing parameters
|
|
|
|
|
|
Depending on the type of a primitive parameter, you can choose an option from a combobox, change a string, alter a number, set a path and so forth. Simply click on the value you want to change and alter it.
|
|
|
Depending on the type of a primitive parameter, you can choose an option from a combobox, change a string, alter a number, set a path and so on. Simply click on the value you want to change and alter it.
|
|
|
|
|
|
Removing a parameter works simply the same way. Select a parameter and click on the **Remove**-Button. Some parameters like the name or the type of a layer are not removable, if so the **Remove**-Button is faded out.
|
|
|
Removing a parameter works the same way. Select a parameter and click on the **Remove**-Button. Some parameters like the name or the type of a layer are not removable, if so the **Remove**-Button is deactivated.
|
|
|
|
|
|
![RemoveParametersScreenshot_from_2017-11-29_12-48-48](/uploads/9b8a29da701e3d1c28901c6b0053678a/RemoveParametersScreenshot_from_2017-11-29_12-48-48.png)
|
|
|
|
... | ... | @@ -120,17 +124,17 @@ Removing a parameter works simply the same way. Select a parameter and click on |
|
|
|
|
|
To allow the user to directly alter the prototxt-files, **Barista** offers a prototxt editor which can be invoked in the menu bar under **Edit -> Edit Network/Solver as Prototxt**.
|
|
|
|
|
|
Here, the underlying prototxt-files of the network and the solver can be directly edited.
|
|
|
Here, the underlying prototxt-files of the network and the solver can be edited directly.
|
|
|
|
|
|
![PrototxtEditorScreenshot_from_2017-11-29_13-30-26](/uploads/5691b3a4606dce71e5a18590150d1fcd/PrototxtEditorScreenshot_from_2017-11-29_13-30-26.png)
|
|
|
|
|
|
Syntax highlighting has been implemented to improve readability.
|
|
|
|
|
|
The magnitude of the text can be manipulated via the slider in the bottom right corner.
|
|
|
The text size can be changed via the slider in the bottom right corner.
|
|
|
|
|
|
If the alteration to the prototxt-file have been done, the user can save it by clicking on the **Save**- or **Save & Close**-button. The changes are automatically applied to the network/solver.
|
|
|
If the prototxt-file has been changed, you can save it by clicking the **Save**- or **Save & Close**-button. The changes are automatically applied to the network/solver.
|
|
|
|
|
|
To prevent no erroneous alterations which could leave the project in an inconsistent state, trying to save an invalid prototxt-file results in an error-message, which shows the line in which the problem occurred.
|
|
|
To prevent erroneous alterations which could leave the project in an inconsistent state, trying to save an invalid prototxt-file results in an error-message, which shows the line in which the problem occurred.
|
|
|
|
|
|
![ErrorPrototxtScreenshot_from_2017-11-29_13-29-47](/uploads/7f9fb93cabcfd33ac1f630409ccdf034/ErrorPrototxtScreenshot_from_2017-11-29_13-29-47.png)
|
|
|
|
... | ... | |