diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-04 19:46:57 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-04 19:46:57 +0200 |
| commit | 7c72a0d2ced5ce128364b4a1d17696ffa9c3f63c (patch) | |
| tree | c6161bd295839e97b9885082a2fdf2361156be68 /app/client | |
| parent | 521b024439b202be03447188925869100904b807 (diff) | |
denormalize state tree
Diffstat (limited to 'app/client')
| -rw-r--r-- | app/client/modules/samplernn/samplernn.actions.js | 13 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.import.js | 2 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.loss.js | 8 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.results.js | 6 |
4 files changed, 18 insertions, 11 deletions
diff --git a/app/client/modules/samplernn/samplernn.actions.js b/app/client/modules/samplernn/samplernn.actions.js index 828850e..68b13a2 100644 --- a/app/client/modules/samplernn/samplernn.actions.js +++ b/app/client/modules/samplernn/samplernn.actions.js @@ -146,10 +146,10 @@ export const load_directories = (id) => (dispatch) => { file.epoch = parseInt(file.epoch || pair[1].replace(/^\D+/, '')) || 0 dataset.epoch = Math.max(file.epoch, dataset.epoch || 0) // here check if the file exists in dataset, if so just check that it's persisted - const found = dataset.output.some(f => { + const found = dataset.output.some(file_id => { // if (f.name === - if (f.name === file.name) { - f.persisted = true + if (fileLookup[file_id].name === file.name) { + fileLookup[file_id].persisted = true return true } return false @@ -208,7 +208,7 @@ export const load_loss = () => dispatch => { }) } -export const import_files = (state, datasetLookup) => (dispatch) => { +export const import_files = (state, datasetLookup, fileLookup) => (dispatch) => { const { selected, folder, url_base, import_action } = state const names = Object.keys(selected).filter(k => selected[k]) let promises @@ -216,7 +216,7 @@ export const import_files = (state, datasetLookup) => (dispatch) => { case 'Hotlink': // in this case, create a new file for each file we see. promises = names.reduce((a,name) => { - return datasetLookup[name].output.map(file => { + return datasetLookup[name].output.map(id => fileLookup[id]).map(file => { const partz = file.name.split('.') const ext = partz.pop() return actions.file.create({ @@ -239,8 +239,7 @@ export const import_files = (state, datasetLookup) => (dispatch) => { break case 'Upload': promises = names.reduce((a,name) => { - console.log(datasetLookup[name]) - return datasetLookup[name].input.map(file => { + return datasetLookup[name].input.map(id => fileLookup[id]).map(file => { if (file.persisted) return null const partz = file.name.split('.') const ext = partz.pop() diff --git a/app/client/modules/samplernn/samplernn.import.js b/app/client/modules/samplernn/samplernn.import.js index 6736d4b..2da5c0e 100644 --- a/app/client/modules/samplernn/samplernn.import.js +++ b/app/client/modules/samplernn/samplernn.import.js @@ -114,7 +114,7 @@ class SampleRNNImport extends Component { doImport(){ const { samplernn } = this.props console.log(this.state) - this.props.actions.import_files(this.state, samplernn.data.datasetLookup) + this.props.actions.import_files(this.state, samplernn.data.datasetLookup, samplernn.data.fileLookup) } } diff --git a/app/client/modules/samplernn/samplernn.loss.js b/app/client/modules/samplernn/samplernn.loss.js index dd6805a..6ca69ef 100644 --- a/app/client/modules/samplernn/samplernn.loss.js +++ b/app/client/modules/samplernn/samplernn.loss.js @@ -41,6 +41,7 @@ class SampleRNNLoss extends Component { const ctx = canvas.getContext('2d') const w = canvas.width = canvas.width * devicePixelRatio const h = canvas.height = canvas.height * devicePixelRatio + ctx.clearRect(0,0,w,h) const keys = Object.keys(lossReport).sort().filter(k => !!lossReport[k].length) let scaleMax = 0 @@ -136,6 +137,13 @@ class SampleRNNLoss extends Component { } }) ctx.stroke() + const i = loss.length-1 + const v = parseFloat(loss[i].training_loss) + const x = lerp((i-2)/(epochsMax/(epochsScaleFactor))*(epochsScaleFactor), wmin, wmax) + const y = lerp(norm(v, scaleMin, scaleMax), hmax, hmin) + const fontSize = 9 + ctx.font = 'italic ' + (fontSize * devicePixelRatio) + 'px "Georgia"' + ctx.fillText(key, x + fontSize, y + fontSize) }) } } diff --git a/app/client/modules/samplernn/samplernn.results.js b/app/client/modules/samplernn/samplernn.results.js index 85720cd..090ab21 100644 --- a/app/client/modules/samplernn/samplernn.results.js +++ b/app/client/modules/samplernn/samplernn.results.js @@ -46,19 +46,19 @@ class SampleRNNResults extends Component { } render(){ if (this.props.samplernn.loading) return <Loading progress={this.props.samplernn.progress} /> - const { folderLookup } = this.props.samplernn.data + const { folderLookup, fileLookup, datasetLookup } = this.props.samplernn.data // const { folderLookup } = samplernn const renders = Object.keys(folderLookup).sort(util.sort.stringSort.asc).map(key => { const folder = folderLookup[key] let { mapFn, sortFn } = util.sort.orderByFn('epoch desc') - const datasetPairs = folder.datasets.map(mapFn).sort(sortFn) + const datasetPairs = folder.datasets.map(name => datasetLookup[name]).map(mapFn).sort(sortFn) const bestRenders = datasetPairs .map(pair => pair[1]) .filter(dataset => dataset.output.length) .map(dataset => { const { output } = dataset - return output.map(mapFn).sort(sortFn)[0][1] + return output.map(id => fileLookup[id]).map(mapFn).sort(sortFn)[0][1] }) // console.log(bestRenders.map(r => r.epoch)) const path = folder.name === 'unsorted' |
