summaryrefslogtreecommitdiff
path: root/app/client
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-04 19:46:57 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-04 19:46:57 +0200
commit7c72a0d2ced5ce128364b4a1d17696ffa9c3f63c (patch)
treec6161bd295839e97b9885082a2fdf2361156be68 /app/client
parent521b024439b202be03447188925869100904b807 (diff)
denormalize state tree
Diffstat (limited to 'app/client')
-rw-r--r--app/client/modules/samplernn/samplernn.actions.js13
-rw-r--r--app/client/modules/samplernn/samplernn.import.js2
-rw-r--r--app/client/modules/samplernn/samplernn.loss.js8
-rw-r--r--app/client/modules/samplernn/samplernn.results.js6
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'