For the complete documentation index, see llms.txt. This page is also available as Markdown.

Visualization

Monitoring Arbiter hyperparameter optimization runs with ArbiterStatusListener and the UIServer.

Overview

Arbiter provides a web-based UI for monitoring hyperparameter optimization runs in real time. The UI shows:

  • All candidate configurations evaluated so far and their scores

  • Score history across candidates

  • Hyperparameter value distributions for evaluated candidates

  • Best candidate information

  • Optimization run status (running, complete, failed)

The UI is served by the same UIServer used for DL4J training visualization (via deeplearning4j-ui). The Arbiter-specific content is served at:

http://localhost:9000/arbiter

Dependencies

The UI requires the arbiter-ui artifact in addition to arbiter-deeplearning4j:

<dependency>
    <groupId>org.deeplearning4j</groupId>
    <artifactId>arbiter-deeplearning4j</artifactId>
    <version>1.0.0-M2.1</version>
</dependency>

<dependency>
    <groupId>org.deeplearning4j</groupId>
    <artifactId>arbiter-ui_2.11</artifactId>
    <version>1.0.0-M2.1</version>
</dependency>

The arbiter-ui artifact depends on deeplearning4j-ui_2.11. If you already have the DL4J UI dependency, you do not need to add it again.


ArbiterStatusListener

ArbiterStatusListener is the bridge between the optimization runner and the UIServer. Attach it to the runner before calling execute():

After calling runner.execute(), open a browser and navigate to http://localhost:9000/arbiter to see the live results.


StatsStorage Backends

InMemoryStatsStorage

Stores stats in JVM memory. Fast and requires no external setup, but data is lost when the JVM exits. Suitable for interactive experimentation.

FileStatsStorage

Persists stats to disk. Data survives JVM restarts, allowing you to resume monitoring or post-hoc analysis:

To restore and attach a previously saved stats file to the UI without re-running optimization:


Full Example


What the Arbiter UI Shows

Candidates Table

A sortable table of all evaluated candidates showing:

  • Candidate index

  • Score (from the score function)

  • Training duration

  • Number of parameters

  • Status (complete, running, failed)

Click a row to expand the hyperparameter details for that candidate.

Score vs. Candidate Index

A chart showing how the best score (and the current candidate's score) changes as more candidates are evaluated. An upward trend indicates the search is finding progressively better configurations.

Hyperparameter Distribution

For each hyperparameter in the search space, a visualization of the values that have been sampled and the corresponding scores. This makes it easy to see whether the search has found a concentration of good values in a particular region.

Best Candidate

A summary panel showing the hyperparameter configuration of the current best candidate, its score, and a link to download the model (when using FileModelSaver).


Using Both Arbiter UI and DL4J Training UI Simultaneously

Both UIs are served by the same UIServer instance. If you also want per-candidate training curves (loss by iteration), add a StatsListener to each candidate model during training. This requires a custom TaskCreator that injects the listener:

Then use UIAwareTaskCreator instead of MultiLayerNetworkTaskCreator.


Programmatic Access to Results (No UI)

If you do not need the web UI, you can inspect results programmatically after the run completes:


Last updated

Was this helpful?