Почему этот сценарий с прогнозированием времени. js завершается с ошибкой «Тензоры аргументов, передаваемые в стек, должны быть ...» и как заставить его работать? - PullRequest
0 голосов
/ 12 апреля 2020

Я хотел создать ИИ, который рассчитывает приблизительную кривую для группы данных. Итак ... это мой код:

<head>
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.min.js"> </script>
</head>
<body>
    x:<input type="number" id="x">
    y:<input type="number" id="y">
    <input type="button" id="append" value="submit">
    <div style="padding:50px">
        <canvas id="originalChart" width="400" height="400"></canvas>
        <canvas id="predictionChart" width="400" height="400"></canvas>
    </div>
    <script>
        xs=[]
        ys=[]
        fxs=[]
        fys=[]
        document.getElementById('x').value=0
        document.getElementById('y').value=0
        originalCTX=document.getElementById("originalChart").getContext('2d')
        predictedCTX=document.getElementById("predictionChart").getContext('2d')

        document.getElementById('append').onclick=async()=>{
            //Definimos el modelo:
            const model = tf.sequential()
            model.add(tf.layers.dense({units: 1, inputShape: [xs.length]}))
            model.compile({loss: 'meanSquaredError', optimizer: 'sgd'})
            xst = tf.tensor2d(xs, [xs.length, 1])
            yst = tf.tensor2d(ys, [ys.length, 1])
            await model.fit(tf.stack(xst), tf.stack(yst), {epochs: 1})

            //Definimos una x nueva por cada vez que se clickee el botón 'submit':
            x=document.getElementById('x').value
            y=document.getElementById('y').value
            xs.push(x)
            ys.push(y)
            document.getElementById('x').value=parseInt(x)+1

            // Chart original data:
            new Chart(originalCTX, {
                type: 'line',
                options: {scales:{yAxes: [{ticks: {beginAtZero: true}}]}},
                data: {
                    labels: xs,
                    datasets: [{
                        label: 'Original Data',
                        data: ys,
                        borderWidth: 1,
                        borderColor: "gray"
                    }]
                },
            });

            // Chart predicted data:
            new Chart(predictedCTX, {
                type: 'line',
                options: {scales:{yAxes: [{ticks: {beginAtZero: true}}]}},
                data: {
                    labels: fxs,
                    datasets: [{
                        label: 'Predicted Data',
                        data: fys,
                        borderWidth: 1,
                        borderColor: "gray"
                    }]
                },
            });
        }
    </script>
</body>

И это ошибка:

5tensor_util_env.ts:118 Uncaught (in promise) Error: Argument tensors passed to stack must be a `Tensor[]` or `TensorLike[]`
    at Ne (tensor_util_env.ts:118)
    at stack_ (array_ops.ts:588)
    at Object.stack (operation.ts:46)
    at HTMLInputElement.document.getElementById.onclick (brain1cv2.htm:30)

Итак ... Я хочу создать ИИ, который рассчитывает будущую кривую переменное перемещение к функции времени. Например. Если я сохраню переменную переменную A, она даст некоторые значения во времени, например, 2, 3 или 4, давая мне массив вроде [2,3,4,3,2,3,4,3,2], я хочу вычислить кривую будущего, как в прошлом: [2,3,4,3,2,3,4,3,2], будущее: [3,4,3,2,3,4,3,2] [ ...] ... Значит ... есть кто-то, кто знает, как мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...