diff options
Diffstat (limited to 'app/client/modules/samplernn')
| -rw-r--r-- | app/client/modules/samplernn/index.js | 3 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.actions.js | 42 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.datasets.js | 58 |
3 files changed, 70 insertions, 33 deletions
diff --git a/app/client/modules/samplernn/index.js b/app/client/modules/samplernn/index.js index 7795df0..7066942 100644 --- a/app/client/modules/samplernn/index.js +++ b/app/client/modules/samplernn/index.js @@ -7,7 +7,7 @@ import SampleRNNLoss from './samplernn.loss' function router () { return ( <div> - <Route exact path='/samplernn/loss/' component={SampleRNNLoss} /> + <Route exact path='/samplernn/graph/' component={SampleRNNLoss} /> <Route exact path='/samplernn/inspect/' component={SampleRNNInspect} /> <Route exact path='/samplernn/datasets/:id/' component={SampleRNNDatasets} /> <Route exact path='/samplernn/datasets/new/' component={SampleRNNDatasets} /> @@ -19,6 +19,7 @@ function links(){ return ( <span> <span><Link to="/samplernn/datasets/">datasets</Link></span> + <span><Link to="/samplernn/graph/">graph</Link></span> <span><Link to="/samplernn/results/">results</Link></span> </span> ) diff --git a/app/client/modules/samplernn/samplernn.actions.js b/app/client/modules/samplernn/samplernn.actions.js index b69da2e..cb8b47b 100644 --- a/app/client/modules/samplernn/samplernn.actions.js +++ b/app/client/modules/samplernn/samplernn.actions.js @@ -18,14 +18,14 @@ export const load_directories = (id) => (dispatch) => { const empty_dataset = (name) => ({ name, - input: null, + input: [], checkpoints: [], - results: [], + output: [], }) // take all of the folders and put them in a lookup const folderLookup = folders.reduce((folderLookup, folder) => { - folderLookup[folder.id] = folder + folderLookup[folder.id] = { id: folder.id, name: folder.name, folder, datasets: [] } folder.datasets = [] return folderLookup }, { @@ -37,27 +37,33 @@ export const load_directories = (id) => (dispatch) => { }) // prepare the files by splitting into two groups - const processedFiles = files.filter(file => file.processed) - const unprocessedFiles = files.filter(file => !file.processed) + const generatedFiles = files.filter(file => file.generated) + const ungeneratedFiles = files.filter(file => !file.generated) - // build the initial dataset lookup table using the unprocessed files - const datasetLookup = unprocessedFiles.reduce((datasetLookup, file) => { + // build the initial dataset lookup table using the ungenerated files + const datasetLookup = ungeneratedFiles.reduce((datasetLookup, file) => { file.checkpoints = [] if (! file.name) { file.name = (file.opt || {}).token || file.url - // datasetLookup[(file.name || 'unsorted').split('.')[0]] = file + // datasetLookup[] = file + } + const name = (file.name || 'unsorted').split('.')[0] + if (! datasetLookup[name]) { + const dataset = empty_dataset(name) + datasetLookup[dataset.name] = dataset + dataset.input.push(file) + folderLookup[file.folder_id].datasets.push(dataset) + } + else { + datasetLookup[name].input.push(file) } - const dataset = empty_dataset((file.name).split('.')[0]) - datasetLookup[dataset.name] = dataset - dataset.input = input - folderLookup[file.folder_id].datasets.push(dataset) return datasetLookup }, { unsorted: empty_dataset('unsorted') }) - // go over the processed files and add addl datasets (if the files were deleted) - processedFiles.map(file => { + // go over the generated files and add addl datasets (if the files were deleted) + generatedFiles.map(file => { const pair = file.name.split('.')[0].split('-') let dataset = datasetLookup[pair[0]] if (!dataset) { @@ -65,7 +71,7 @@ export const load_directories = (id) => (dispatch) => { datasetLookup[dataset.name] = dataset folderLookup[file.folder_id].datasets.push(dataset) } - dataset.results.push(file) + dataset.output.push(file) file.epoch = file.epoch || pair[1] }) @@ -89,7 +95,6 @@ export const load_directories = (id) => (dispatch) => { .map(s => s.split(':')) .filter(b => b.length && b[1]) .reduce((a,b) => (a[b[0]] = b[1]) && a, {}) - // console.log(checkpoint.dataset) checkpoint.name = checkpoint.dataset || checkpoint.exp checkpoint.dir = s let dataset = datasetLookup[checkpoint.dataset] @@ -110,7 +115,7 @@ export const load_directories = (id) => (dispatch) => { datasetLookup[dataset.name] = dataset folderLookup.unsorted.datasets.push(dataset) } - dataset.results.push(file) + dataset.output.push(file) file.epoch = file.epoch || pair[1] }) @@ -125,9 +130,10 @@ export const load_directories = (id) => (dispatch) => { }, }) if (id) { + let folder = id === 'unsorted' ? folderLookup.unsorted : folderLookup[id] dispatch({ type: types.samplernn.set_folder, - folder: folderLookup[parseInt(id)], + folder: folder, }) } }).catch(e => { diff --git a/app/client/modules/samplernn/samplernn.datasets.js b/app/client/modules/samplernn/samplernn.datasets.js index 63c4eaf..8b86007 100644 --- a/app/client/modules/samplernn/samplernn.datasets.js +++ b/app/client/modules/samplernn/samplernn.datasets.js @@ -10,7 +10,7 @@ import Group from '../../common/group.component' import Slider from '../../common/slider.component' import Select from '../../common/select.component' import Button from '../../common/button.component' -import FileList from '../../common/fileList.component' +import { FileList, FileRow } from '../../common/fileList.component' import TextInput from '../../common/textInput.component' class SampleRNNDatasets extends Component { @@ -54,29 +54,59 @@ class SampleRNNDatasets extends Component { } render(){ const { samplernn } = this.props - // console.log(samplernn.upload) - // sort files?? + const folder = samplernn.folder + if (!folder.name) return + console.log(folder) + const datasets = folder.datasets.map(dataset =>{ + console.log(dataset) + return ( + <div className='row dataset'> + <div className='col'> + {!!dataset.input.length && <FileList files={dataset.input} />} + </div> + <div className='col quiet'> + <div>{dataset.isBuilt ? 'has dataset' : 'not built'}</div> + </div> + <div className='col checkpoint'> + {!!dataset.checkpoints.length && <FileRow file={dataset.checkpoints[0]} />} + </div> + <div className='col'> + {!!dataset.output.length && <FileList files={dataset.output} />} + </div> + </div> + ) + }) return ( <div className='app'> <div className='heading'> <h3>SampleRNN</h3> </div> - <Dataset - canRename - canUpload - canAddURL - canDeleteFile - linkFiles - fileOptions={this.fileOptions} - onPick={this.handlePick} - folder={samplernn.folder} - files={samplernn.folder.files} - /> + <div class='rows params datasets'> + <div class='row dataset'> + <div class='col'>input</div> + <div class='col'>dataset</div> + <div class='col'>checkpoint</div> + <div class='col'>output</div> + </div> + {datasets} + </div> </div> ) } } +// <Dataset +// canRename +// canUpload +// canAddURL +// canDeleteFile +// linkFiles +// fileOptions={this.fileOptions} +// onPick={this.handlePick} +// folder={samplernn.folder} +// files={samplernn.folder.files} +// /> + const mapStateToProps = state => ({ samplernn: state.module.samplernn, runner: state.system.runner, |
