Estoy tratando de pasar una matriz de cadenas y números enteros como datos de entrenamiento, con un solo valor booleano (0 o 1) como etiqueta. Sin embargo, después de crear la matriz de entrenamiento y pasarla a la función fitDataset de fitDataset , se queja de que no se encontraron 0 tensores.
csvTransform2 = ((val: any) => { const {xs, ys} = val console.log(xs) const values = Object.values(xs) as any[] return {xs: values, ys: ys.winner}; }) async predict () { // Train a simple model: let trainingData = tf.data.csv('file://file.csv', {columnConfigs: {winner: {isLabel: true}}}) const numOfColumns = (await trainingData.columnNames()).length - 1; let newTrainingData = trainingData.map(this.csvTransform2); const model = tf.sequential(); model.add(tf.layers.dense({units: 64, activation: 'relu', inputShape: [numOfColumns]})); model.add(tf.layers.dense({units: 32, activation: 'relu'})); model.add(tf.layers.dense({units: 8, activation: 'relu'})); model.add(tf.layers.dense({units: 1, activation: 'softmax'})); model.compile({ optimizer: 'sgd', loss: 'sparseCategoricalCrossentropy', metrics: ['accuracy'] }); model.fitDataset(newTrainingData, { epochs: 10, callbacks: { onEpochEnd: async (epoch, logs) => { console.log(epoch + ':' + logs.loss); } } }); }El error completo es
ValueError: error al verificar el modelo: la matriz de tensores que está pasando a su modelo no tiene el tamaño que esperaba el modelo. Se esperaba ver 1 Tensor(es), pero en su lugar obtuvo 0 Tensor(es).