summaryrefslogtreecommitdiff
path: root/app/client
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-02 22:42:05 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-02 22:42:05 +0200
commitcf6f1c58a7298b0af1c13bb701032017563a6ed8 (patch)
treec813153497c22c51d677970c56fe813ecaa07f7a /app/client
parent1ea936fe292817fed706ed10fced63adbea07991 (diff)
basic dataset viewer with stuff clustered how i want it
Diffstat (limited to 'app/client')
-rw-r--r--app/client/modules/samplernn/index.js3
-rw-r--r--app/client/modules/samplernn/samplernn.actions.js42
-rw-r--r--app/client/modules/samplernn/samplernn.datasets.js58
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,