You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Display a list of experiments on a webpage to easily check their status.
This webpage must be frequently updated, must be easy to customize, and must scale to 1000 experiments.
The yaml file myproject_watch.yaml is used to generate a custom webpage. It contains experiment directories to watch, filtering rules to select the experiment to display and columns to display.
In the header, we could have the list of filtering rules and columns to display. We could remove them or add new ones dynamically. Then, we could have a button to export as yaml file or update the original yaml file.
Filtering rules
Drop down pannel containing filtering rules which are based on SQLite data (select('options') or select('env_info') or select('train_epoch') or select('test_epoch') or custom SQL query).
Display options that have a experiment directory which match the regexp mnist_resnet_*, are trained on pascaland titan server, have an accuracy higher than 0.3, and crashed after a certain datetime.
We could have a list of negative filters as well, corresponding to rules to remove experiments from the list.
Column to display
Same interface to select the column to display.
By default: server and gpu ids, experiment directory, number of epochs done / number of total epochs, datetime of creation, status.
Example:
... (default)
- [SQL: SELECT MAX(accuracy) FROM test_epoch]
Send in POST request all the options in the json format to the webpage.
Use simple javascript (no ReactJS) to get these options, look for experiment directories, send SQL queries to sqlite files, update the HTML. Every x seconds, update list of experiments and experiments if needed.
The text was updated successfully, but these errors were encountered:
Goals
Display a list of experiments on a webpage to easily check their status.
This webpage must be frequently updated, must be easy to customize, and must scale to 1000 experiments.
We would like to improve over this POC:
Propositions
Run the webserver
Using default options:
Using custom options:
The yaml file
myproject_watch.yaml
is used to generate a custom webpage. It contains experiment directories to watch, filtering rules to select the experiment to display and columns to display.Example:
Design of webpage
Core features
Similarly to the POC, a first header with statistics of experiments followed by the custom table.
Example:
Optional
In the header, we could have the list of filtering rules and columns to display. We could remove them or add new ones dynamically. Then, we could have a button to export as yaml file or update the original yaml file.
Filtering rules
Drop down pannel containing filtering rules which are based on SQLite data (select('options') or select('env_info') or select('train_epoch') or select('test_epoch') or custom SQL query).
Example:
Display options that have a experiment directory which match the regexp
mnist_resnet_*
, are trained onpascal
andtitan
server, have an accuracy higher than 0.3, and crashed after a certain datetime.We could have a list of negative filters as well, corresponding to rules to remove experiments from the list.
Column to display
Same interface to select the column to display.
By default: server and gpu ids, experiment directory, number of epochs done / number of total epochs, datetime of creation, status.
Example:
Implementation
Use Werkzeug to create webserver. (see shortly example).
Send in POST request all the options in the json format to the webpage.
Use simple javascript (no ReactJS) to get these options, look for experiment directories, send SQL queries to sqlite files, update the HTML. Every x seconds, update list of experiments and experiments if needed.
The text was updated successfully, but these errors were encountered: