Почему мой метод обучения нейронной сети не вызывается? (МЛ5. JS) - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь создать нейронную сеть распознавания каракулей, используя ml5 js. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * *] * * * * * * * *

*. 1006 * По сути, я хочу, чтобы пользователь рисовал / рисовал что-то на холсте, нажимал кнопку предположения, и нейронная сеть угадывает, что он нарисовал. Например, они рисуют велосипед, нажимают догадываюсь , и нейронная сеть догадывается, что картинка - это велосипед.

Для начала я скачал данные кошка набрасывает из набора данных Google.

Если быть точным c, я хочу:

  1. Загружать мои рисунки кошек. (Они приходят из локальных .nd json файлов)
    let unformattedFile;

    let jsonFormattedFile = {
    "data": [

      ]
    };

    for (let i = 0; i < 1000; i++) { //hard code 1000
        jsonFormattedFile["data"].push(
            { "xs": { "drawing": unformattedFile[i].drawing }, "ys": { "word": unformattedFile[i].word } }
        )
    }
Научите мою нейронную сеть, что это то, на что похожи рисунки кошки (предоставляя штрихи, которые рисунки имеют в качестве входных данных).
neuralNetwork = ml5.neuralNetwork(options);

    //Start to add Data to the NN
    for (let x = 0; x < jsonFormattedFile.data.length; x++) {

        let inputs = {
            xs: jsonFormattedFile.data[x].xs
        }

        let target = {
            ys: jsonFormattedFile.data[x].ys
        }

        neuralNetwork.data.addData(inputs, target);
    }
        neuralNetwork.data.normalize();

    function whileTraining(epoch, loss) {
        console.log(`epoch: ${epoch}, loss:${loss}`);
    }

    function doneTraining() {
        makeClassification();
    }

    neuralNetwork.train(whileTraining, doneTraining);
Протестируйте нейронную сеть с помощью рисунка кошки и убедитесь, что он работает.
    newTest = jsonFormattedFile.data[0].xs;

    neuralNetwork.classify([newTest], (err, results) => {
        console.log(results);

        if (err) {
            console.error(err)
        }
    });

Проблема, которую я обнаружил во время отладки, заключалась в том, что whileTraining () никогда ничего не делает ... t выводит на консоль что-нибудь, что, как я полагаю, приводит к тому, что моя нейронная сеть не тренируется.

Это вызывает у меня ошибку: ...

TypeError: Cannot read property 'predict' of null

... Когда я спрашиваю нейронная сеть, чтобы классифицировать мой тестовый дудл на шаге 3.

Я ищу помощь в том, как правильно обучить мою нейронную сеть. Мне очень трудно начать в ML: (

1 Ответ

1 голос
/ 22 марта 2020

Я проверил репозиторий ML5 и обнаружил, что whileTraining никогда не будет вызываться при установке debug: true для параметров NeuralNetwork. Это странно, но по этой причине whileTraining не вызывается.

...