diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-05 04:45:14 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-05 04:45:14 +0200 |
| commit | 0db903f139aa2eb91308f99bb3be3619c2d9b217 (patch) | |
| tree | 08f1aba1cc6b6f85f58517b4d15a2bc381e27e18 /app/client/modules/samplernn | |
| parent | 55c1e265e8b274ee73c6e1b9e9a59cb44db7fe84 (diff) | |
woooo smoother
Diffstat (limited to 'app/client/modules/samplernn')
| -rw-r--r-- | app/client/modules/samplernn/samplernn.datasets.js | 20 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.show.js | 14 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.tasks.js | 6 |
3 files changed, 31 insertions, 9 deletions
diff --git a/app/client/modules/samplernn/samplernn.datasets.js b/app/client/modules/samplernn/samplernn.datasets.js index 50e7d59..3d4219e 100644 --- a/app/client/modules/samplernn/samplernn.datasets.js +++ b/app/client/modules/samplernn/samplernn.datasets.js @@ -92,11 +92,19 @@ class SampleRNNDatasets extends Component { const { samplernn, folder, runner, onPickDataset, onPickFile, datasetActions } = this.props const { datasetLookup, fileLookup } = samplernn.data const { mapFn, sortFn } = util.sort.orderByFn('date desc') + const moduleOnCPU = runner && runner.cpu.task && runner.cpu.task.module === samplernnModule.name const moduleOnGPU = runner && runner.gpu.task && runner.gpu.task.module === samplernnModule.name const datasets = folder.datasets.map(name => datasetLookup[name]).map(mapFn).sort(sortFn).map(pair => { const dataset = pair[1] - const isProcessing = moduleOnGPU && runner.gpu.task.dataset === dataset - const status = isProcessing ? util.gerund(runner.gpu.task.activity) : '' + let status = '' + let isProcessing = false, isFetching = false + if (moduleOnGPU && runner.gpu.task.dataset === dataset) { + status = util.gerund(runner.gpu.task.activity) + isProcessing = true + } else if (moduleOnCPU && runner.cpu.task.activity === 'fetch' && runner.cpu.task.opt.file_id === dataset.input[0]) { + isProcessing = true + isFetching = true + } return ( <div key={dataset.name} className='row dataset' onClick={() => onPickDataset && onPickDataset(dataset)}> {this.props.beforeRow && this.props.beforeRow(dataset)} @@ -114,9 +122,13 @@ class SampleRNNDatasets extends Component { /> } </div> - <div className={'col quiet ' + (dataset.isBuilt ? 'built' : 'not_built')}> + <div className={[ + 'col', 'quiet', + (dataset.isBuilt ? 'built' : 'not_built'), + (isProcessing ? 'processing': 'not_processing') + ].join(' ')}> + {this.props.datasetActions && this.props.datasetActions(dataset, isFetching, isProcessing)} {status} - {this.props.datasetActions && this.props.datasetActions(dataset)} </div> <div className='col checkpoint'> {!!dataset.checkpoints.length && diff --git a/app/client/modules/samplernn/samplernn.show.js b/app/client/modules/samplernn/samplernn.show.js index 8b6f357..1237d9b 100644 --- a/app/client/modules/samplernn/samplernn.show.js +++ b/app/client/modules/samplernn/samplernn.show.js @@ -21,6 +21,10 @@ const samplernnModule = { } class SampleRNNShow extends Component { + constructor(props){ + super(props) + this.datasetActions = this.datasetActions.bind(this) + } render(){ const { samplernn, match, history } = this.props const { folderLookup } = (samplernn.data || {}) @@ -51,12 +55,12 @@ class SampleRNNShow extends Component { console.log('picked a file', file) this.handlePick(file) }} - datasetActions={(dataset) => this.datasetActions(dataset)} + datasetActions={this.datasetActions} /> </div> ) } - datasetActions(dataset){ + datasetActions(dataset, isFetching=false, isProcessing=false){ const { samplernn, remote } = this.props const { fileLookup } = samplernn.data const input = fileLookup[dataset.input[0]] @@ -76,8 +80,12 @@ class SampleRNNShow extends Component { {'fetched '} <span class='link' onClick={() => remote.clear_cache_task(dataset)}>rm</span> </div> + : isFetching + ? <div class='subtext'> + {'fetching'} + </div> : <div class='subtext'> - <span class='link' onClick={() => remote.fetch_task(input.url)}>fetch</span> + <span class='link' onClick={() => remote.fetch_task(input.url, input.id, dataset.name)}>fetch</span> </div> } </div> diff --git a/app/client/modules/samplernn/samplernn.tasks.js b/app/client/modules/samplernn/samplernn.tasks.js index 28354d7..21939dd 100644 --- a/app/client/modules/samplernn/samplernn.tasks.js +++ b/app/client/modules/samplernn/samplernn.tasks.js @@ -20,14 +20,16 @@ export const train_task = (dataset, epochs=1) => dispatch => { console.log(task) return actions.queue.add_task(task) } -export const fetch_task = (url) => dispatch => { +export const fetch_task = (url, file_id, dataset) => dispatch => { if (! url) return console.log('input file inaccessible (no url)') const task = { module: 'samplernn', activity: 'fetch', dataset: name, opt: { - url: url, + url, + file_id, + dataset, } } return actions.queue.add_task(task) |
