ml5js download model
HTML
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/[email protected]/dist/ml5.min.js" type="text/javascript"></script>
</head>
<body>
<label for="download">Train model and download weights:</label><br/>
<input id="download" type="button" value="Download weights" onclick="downloadWeights()"></input>
<br/>
<label for="upload">Select model.json, model-meta.json, and model.weights.bin files to load:</label><br/>
<input id="upload" type="file" multiple>
<script>
const options = {
inputs: 2,
outputs: 1,
dataUrl: null,
modelUrl: null,
layers: [
{type: 'dense', units: 2, activation: 'relu'},
{type: 'dense', units: 1}
],
task: 'regression',
debug: true,
learningRate: 0.1,
hiddenUnits: 2, // default if units not specified
};
const nn = ml5.neuralNetwork(options);
const inputs = [[1., 2.], [3., 4.]];
const outputs = [[5.], [25.]];
for (let i=0; i < inputs.length; i++) {
console.log(inputs[i], outputs[i]);
nn.addData(inputs[i], outputs[i]);
}
const trainingOptions = {
epochs: 5,
batchSize: 2
}
function downloadWeights() {
nn.train(trainingOptions,
(epoch, loss) => {console.log(epoch, loss)},
() => {console.log('Done!'); nn.save()});
}
// upload files and update model
function getFiles(event) {
nn.load(event.target.files, () => {
nn.predict([1, 2], (err, res) => {
if (err === undefined) {
alert('predict([1,2]) => ' + res[0].value);
} else {
alert('error: ' + err);
}
});
})}
document.getElementById('upload').addEventListener('change', getFiles, false);
</script>
</body>