-- drop table if exists model_data_point; -- drop table if exists model_definition_layer; -- drop table if exists model_definition; -- drop table if exists models; create table if not exists models ( id uuid primary key default gen_random_uuid(), user_id uuid references users (id) not null, name varchar (70) not null, -- Status: -- -1: failed preparing -- 1: preparing status integer default 1, -- Types: -- 0: Unset -- 1: simple -- 2: expandable model_type integer default 0, can_train integer default 1, width integer, height integer, color_mode varchar (20), format varchar (20) default '' ); -- drop table if exists model_data_point; -- drop table if exists model_classes; create table if not exists model_classes ( id uuid primary key default gen_random_uuid(), model_id uuid references models (id) on delete cascade, name varchar (70) not null, class_order integer, -- 1: to_train -- 2: training -- 3: trained status integer default 1, ); -- drop table if exists model_data_point; create table if not exists model_data_point ( id uuid primary key default gen_random_uuid(), class_id uuid references model_classes (id) on delete cascade, file_path text not null, -- 1 training -- 2 testing model_mode integer default 1, -- -1 Error on creation -- 1 OK status integer not null, status_message text ); -- drop table if exists model_definition; create table if not exists model_definition ( id uuid primary key default gen_random_uuid(), model_id uuid references models (id) on delete cascade, accuracy real default 0, target_accuracy integer not null, epoch integer default 0, -- TODO add max epoch -- 1: Pre Init -- 2: Init -- 3: Training -- 4: Tranied -- 5: Ready status integer default 1, created_on timestamp default current_timestamp, epoch_progress integer default 0 ); -- drop table if exists model_definition_layer; create table if not exists model_definition_layer ( id uuid primary key default gen_random_uuid(), def_id uuid references model_definition (id) on delete cascade, layer_order integer not null, -- 1: input -- 2: dense -- 3: flatten -- TODO add conv layer_type integer not null, -- ei 28,28,1 -- a 28x28 grayscale image shape text not null, -- Type based on the expandability -- 0: not expandalbe model -- 1: fixed -- 2: head exp_type integer default 0 ); -- drop table if exists exp_model_head; create table if not exists exp_model_head ( id uuid primary key default gen_random_uuid(), def_id uuid references model_definition (id) on delete cascade, -- Start order id to the class that this model satifies inclusive range_start integer not null, -- end order id to the class that this model satifies inclusive range_end integer not null, accuracy real default 0, -- TODO add max epoch -- 1: Pre Init -- 2: Init -- 3: Training -- 4: Tranied -- 5: Ready status integer default 1, created_on timestamp default current_timestamp, epoch_progress integer default 0 );