Ce sont mes premiers pas dans le tensorflow.
Idée
Il existe un certain modèle de nombres (le tableau de nombres) : Pattern = number[]
). Et la catégorie qui correspond à ce modèle (le nombre de 0 à 2 : Category = 0 | 1 | 2
). J'ai suivi les données de la structure : xs = Pattern[]
, ys = Category[]
.
Par exemple :
xs = [[1, 2, 3, 4], [5, 6, 7, 8], ..., [9, 10, 11, 12]];
ys = [1, 0, ..., 2];
Je veux que le réseau neuronal trouve une correspondance entre xs[0]
y xy[0]
et ainsi de suite. Je veux passer les données du réseau neuronal comme suit [1, 2, 3, 4]
et obtenir un résultat proche de 1
.
model.predict(tf.tensor([1, 2, 3, 4])) // 1
Mon code
import * as tf from '@tensorflow/tfjs';
require('@tensorflow/tfjs-node');
const xs = tf.tensor2d([
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
]);
const ys = tf.tensor1d([0, 1, 2]);
const model = tf.sequential();
model.add(tf.layers.dense({ units: 4, inputShape: xs.shape, activation: 'relu' }));
^ - Pattern length, it is constant
model.add(tf.layers.dense({ units: 3, activation: 'softmax' }));
model.compile({ optimizer: 'adam', loss: 'categoricalCrossentropy', metrics: ['accuracy'] });
model.fit(xs, ys, { epochs: 500 });
Je reçois l'erreur suivante :
Erreur lors de la vérification de l'entrée : on s'attendait à ce que l'entrée dense_Dense1 ait 3 dimension(s). mais on a obtenu un tableau de forme 3,4
Je ne comprends pas comment expliquer ma structure de données pour le réseau neuronal.