From 57726902fe70f6c051c20f7104a9b78687c15479 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 4 Jun 2018 03:52:59 +0200 Subject: progress barz --- app/client/common/loading.component.js | 12 ++++++++++++ app/client/common/progress.component.js | 16 ++++++++++++++++ app/client/modules/samplernn/samplernn.actions.js | 5 +++-- app/client/modules/samplernn/samplernn.datasets.js | 19 ++++++++++++++----- app/client/modules/samplernn/samplernn.reducer.js | 7 +++++++ app/client/types.js | 1 + app/client/util/index.js | 2 +- app/relay/runner.js | 2 +- 8 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 app/client/common/loading.component.js create mode 100644 app/client/common/progress.component.js (limited to 'app') diff --git a/app/client/common/loading.component.js b/app/client/common/loading.component.js new file mode 100644 index 0000000..f8033db --- /dev/null +++ b/app/client/common/loading.component.js @@ -0,0 +1,12 @@ +import { h, Component } from 'preact' + +import Progress from './progress.component' + +export default function Loading({progress}) { + return ( +
+ Loading
+ +
+ ) +} diff --git a/app/client/common/progress.component.js b/app/client/common/progress.component.js new file mode 100644 index 0000000..364f232 --- /dev/null +++ b/app/client/common/progress.component.js @@ -0,0 +1,16 @@ +import { h, Component } from 'preact' + +export default function Progress({progress}) { + const { i, n } = progress + const a = [] + for (let j = 0; j < n; j++) { + a.push( +
+ ) + } + return ( +
+ {a} +
+ ) +} diff --git a/app/client/modules/samplernn/samplernn.actions.js b/app/client/modules/samplernn/samplernn.actions.js index 343550e..e204382 100644 --- a/app/client/modules/samplernn/samplernn.actions.js +++ b/app/client/modules/samplernn/samplernn.actions.js @@ -17,6 +17,7 @@ export const load_directories = (id) => (dispatch) => { load_loss()(dispatch), ], (percent, i, n) => { console.log(percent + "%") + dispatch({ type: types.app.load_progress, progress: { i, n }}) }).then(res => { // console.log(res) const [folders, files, tasks, datasets, results, output, lossReport] = res @@ -262,12 +263,12 @@ export const fetch_url = (url) => (dispatch) => { }, { preempt: true, watch: true }) } -export const train_task_now = (dataset) => (dispatch) => { +export const train_task_now = (dataset, epochs=1) => (dispatch) => { const task = { module: 'samplernn', activity: 'train', dataset: dataset, - epochs: 6, + epochs: epochs, opt: { sample_length: 44100 * 5, n_samples: 6, diff --git a/app/client/modules/samplernn/samplernn.datasets.js b/app/client/modules/samplernn/samplernn.datasets.js index 683d44a..c10a1db 100644 --- a/app/client/modules/samplernn/samplernn.datasets.js +++ b/app/client/modules/samplernn/samplernn.datasets.js @@ -8,6 +8,7 @@ import * as samplernnActions from './samplernn.actions' import DatasetForm from '../../dataset/dataset.form' import NewDatasetForm from '../../dataset/dataset.new' import { FileList, FileRow } from '../../common/fileList.component' +import Loading from '../../common/loading.component' const samplernnModule = { name: 'samplernn', @@ -62,7 +63,8 @@ class SampleRNNDatasets extends Component { const { samplernn, match, history } = this.props if (samplernn.loading) { // console.log('loading') - return Loading + console.log(samplernn.loading) + return } if (!samplernn.data.folders.length) { console.log('no folders, redirect to /new') @@ -83,13 +85,13 @@ class SampleRNNDatasets extends Component { ) } renderGroups(){ - const { samplernn, onPickDataset } = this.props + const { samplernn, onPickDataset, actions } = this.props const folder = samplernn.folder const { mapFn, sortFn } = util.sort.orderByFn('date desc') const datasets = folder.datasets.map(mapFn).sort(sortFn).map(pair => { const dataset = pair[1] return ( -
onPickDataset(dataset)}> +
onPickDataset && onPickDataset(dataset)}> {this.props.beforeRow && this.props.beforeRow(dataset)}
{!!dataset.input.length && @@ -102,8 +104,15 @@ class SampleRNNDatasets extends Component { /> }
-
-
{dataset.isBuilt ? 'cached' : ''}
+
+
{dataset.isBuilt ? 'cached' : ''}
+
+ actions.train_task_now(dataset, 1)}>train + actions.train_task_now(dataset, 2)}>2x + actions.train_task_now(dataset, 4)}>4x + actions.train_task_now(dataset, 6)}>6x + actions.train_task_now(dataset, 18)}>18x +
{!!dataset.checkpoints.length && diff --git a/app/client/modules/samplernn/samplernn.reducer.js b/app/client/modules/samplernn/samplernn.reducer.js index b294c2f..11a9d9e 100644 --- a/app/client/modules/samplernn/samplernn.reducer.js +++ b/app/client/modules/samplernn/samplernn.reducer.js @@ -2,6 +2,7 @@ import types from '../../types' const samplernnInitialState = { loading: true, + progress: { i: 0, n: 0 }, error: null, folders: [], folder: {}, @@ -103,6 +104,12 @@ const samplernnReducer = (state = samplernnInitialState, action) => { lossReport: action.lossReport, } + case types.app.load_progress: + return { + ...state, + progress: action.progress + } + default: return state } diff --git a/app/client/types.js b/app/client/types.js index a367891..c408d56 100644 --- a/app/client/types.js +++ b/app/client/types.js @@ -16,6 +16,7 @@ export default { }, app: { change_tool: "APP_CHANGE_TOOL", + load_progress: "APP_LOAD_PROGRESS", }, folder: crud_type('folder', [ ]), diff --git a/app/client/util/index.js b/app/client/util/index.js index 75992d9..14d4d6f 100644 --- a/app/client/util/index.js +++ b/app/client/util/index.js @@ -31,7 +31,7 @@ export const allProgress = (promises, progress_cb) => { promises.forEach((p) => { p.then((s) => { d += 1 - progress_cb((d * 100) / promises.length, d, promises.length) + progress_cb(Math.floor((d * 100) / promises.length), d, promises.length) return s }) }) diff --git a/app/relay/runner.js b/app/relay/runner.js index 4762045..811dff3 100644 --- a/app/relay/runner.js +++ b/app/relay/runner.js @@ -277,7 +277,7 @@ export function run_task_with_activity(task, module, activity, preempt, watch) { } } -export function get_next_task(){ +export function run_next_task(){ // get next task from the queue... /* const task = queue.get_next_task() -- cgit v1.2.3-70-g09d2