Estoy tratando de construir un modelo TF que tome un tensor con forma [1,3]
// example: [1,2,3]Y la salida es la misma.
aquí hay un código simple para reproducir el error
const { tensor1d, sequential, layers, } = require('@tensorflow/tfjs-node'); const model = sequential(); model.add( layers.dense({ units: 3, inputShape: [3], }) ); model.compile({ loss: 'meanSquaredError', optimizer: 'adam', }); let inputTensor = tensor1d([1,2,3]); let outputTensor = tensor1d([1,2,3]); model.fit(inputTensor, outputTensor); let result = model.predict(inputTensor); // it fires the error hereLas funciones model.fit y model.predict toman la misma forma de entrada de la variable inputTensor , sin embargo, activa el error en la segunda función model.predict
Alguna explicación para ese error, soy un poco novato en Tensorflow
Cuando ingrese datos en el modelo de tensorflow, recuerde que la forma de los datos de entrada debe tener una dimensión de lote.
Entonces, sus datos de entrada tienen que expandir la dimensión, así:
let inputTensor = tensor1d([[1,2,3]]); let outputTensor = tensor1d([[1,2,3]]); O use la función tf.expandDims para hacer esto:
La forma del tensor de salida y entrada será (1,3).
El mensaje de error significa que alimenta 3 datos con 1 dimensión, pero el modelo espera 3 dimensiones.