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>