Closed skywolf829 closed 7 months ago
Dataset, model, and trainer initialization working with error checking. Pop ups will appear on app if an error is hit.
Next step is starting/pausing training
Modified the initialization for dataset/trainer/model. Now, pre-initializes model/trainer, and only initializes dataset when its pointed to and initialized. Can update settings on-the-fly. Some more work still needed when updating settings to be correct.
Decoupled dataset, model, and trainer further. Each have separate windows and can be updated at any time. Training can be started and paused as desired.
Before training a GS model, a few things need to be defined. Mainly, the dataset location (on the remote server) and the hyperparameters for the training/model. We need a window to allow editing of the parameters and dataset loading.
The window(s) should allow this process to work
Requirements
Dataset loading
Settings
object (see/src/backend/settings
). Part of the setup for the dataset will require the user picking the following in the frontend: -- a path to the dataset to loadsettings.dataset_path
(string value) -- asettings.resolution_scale
(whether the images are downsized for faster training) (float value, 0.0-1.0) --white_background
for if the images use a white background or not (boolean)Trainer/model setup
Settings
object, starting fromiterations
down torandom_background
. Each hyperparameter should be adjustable from the trainer setup windowStart training
Extra
Dataset loading
With extra communication, the frontend could navigate the folders on the backend easier than typing in a direct path. Some way to show the remote folder structure would help users.
Button clicking
It would help if the buttons could only be pressed when the prerequisites are met. For instance, for the trainer/model initialization, the dataset must already exist because the trainer needs the dataset. For training start, it should only be clickable once the dataset+model+trainer are initialized. To pause training, the model must be currently training.
Adjusting settings during training
Sometimes it would be nice to adjust the hyperparameters during training. If the user changes a learning rate or number of iterations, a message should be sent to the backend to update those settings again and continue training. Pausing training is not necessary (but may be wise!).