Skip to content

Instantly share code, notes, and snippets.

@digital-synapse
Created March 12, 2021 00:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save digital-synapse/ff1ab789fc120514018834765c6c90ac to your computer and use it in GitHub Desktop.
Save digital-synapse/ff1ab789fc120514018834765c6c90ac to your computer and use it in GitHub Desktop.
simple image upscaling neural net
async function train(trainingPath)
{
const training = await getTrainingDataInBatches(trainingPath);
let model;
if (training[0].index > 0){
model = await tf.loadLayersModel(`file://./training/${training[0].index-1}/model.json`);
}
else {
// r= (in/out)^0.25 hl1 = out*(r^3) hl2 = out*(r^2) hl3 = out*r
model = tf.sequential();
model.add(tf.layers.dense({ inputShape: [25],
units: 20, activation: 'sigmoid' }));
model.add(tf.layers.dense({ units: 5, activation: 'sigmoid' }));
model.add(tf.layers.dense({ units: 1, activation: 'sigmoid' }));
}
model.compile({
optimizer: tf.train.adam(0.001),
loss: 'meanSquaredError',
metrics: ['accuracy']
});
console.log('training...');
for (var i=0; i<training.length; i++){
const data = await training[i].getData();
await model.fit(data.x, data.y, {
batchSize: 256,
shuffle: true,
epochs: 100,
...training[i].options,
callbacks: {
onEpochEnd: async (epoch, logs) => {
console.log("Epoch " + (epoch+1) + " Loss: " + logs.loss + " Accuracy: " + logs.acc + "\n");
}
}
});
await model.save(`file://./training/${training[i].index}`);
}
}
(async () => {
await train('./training/training.json');
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment