Quiero un modelo que tome 6 entradas y prediga 1 salida. Tiene algo que ver con predecir cuánto tiempo llevará una tarea.
Esto es lo que tengo hasta ahora:
const model = tf.sequential(); model.add(tf.layers.dense({units: 1, inputShape: [1]})); model.compile({ optimizer: 'sgd', loss: 'meanSquaredError' }); async function createAndTrainModel(){ var xs = tf.tensor2d([40, 1, 0], [20, 1, 0]); var ys = tf.tensor2d([45], [25]); // Here I wanted to explain that 40,1,0 must be predicted as 45. // And a combination of 20, 1, 0 must be predicted as 25. await model.fit(xs, ys, {epochs: 500}); console.log("done training model!"); var result = model.predict( tf.tensor([-40, 15, 0]) ); result = result.dataSync(); console.log(result); }Tengo un ejemplo de trabajo en Python, pero realmente quiero hacer esto en JavaScript. No entiendo qué es una forma de entrada. Todo lo que pienso es en un círculo, un triángulo y un cuadrado...
Casi todos los tutoriales que encontré asumen que tienes algún conocimiento sobre cómo funciona tensorflow, qué es una 'dimensión' (sea lo que sea)
¿Alguien puede resolver mi problema y explicarme qué está pasando aquí? ¿Qué es una forma de entrada? ¿Qué es una dimensión? ¿Por qué se usa así? Entiendo qué es una matriz, pero no puedo entender por qué necesita definir una dimensión o algo así.
Mi código en Python, que funciona:
import keras.models import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import pandas as pd import tensorflowjs as tfjs # Configure Training Data data = pd.read_csv("task-data.csv", sep=";") data = data[["actual_time", "moeilijkheid", "eerder_gedaan", "leukheid"]] celsius_q = np.array(data.drop(["actual_time"], 1), dtype=int) fahrenheit_s = np.array(data["actual_time"], dtype=int) # Creating and Training the Model l0 = tf.keras.layers.Dense(units=1) model = tf.keras.Sequential([l0]) model.compile(loss="mean_squared_error", optimizer=tf.keras.optimizers.Adam(0.1), metrics=['accuracy']) history = model.fit(celsius_q, fahrenheit_s, epochs=5000, verbose=False) print("Finished training the model.") predictions = model.predict(celsius_q) print(model.predict([[ 4,1,1,5,8,2 ]])) model.evaluate(celsius_q, fahrenheit_s) # Saving the Model tfjs.converters.save_keras_model(model, 'models')los datos son asi:
"actual_time";"moeilijkheid";"eerder_gedaan";"leukheid" 45;4;1;0 25;2;1;0Para simplificar demasiado, el tensor puede ser solo un número o una matriz de mayor complejidad. El tensor 1d es un número, el tensor 2d es una matriz. El tensor 3D es una matriz de matrices. El tensor 4d es ... bueno, lo entiendes :)
tu información
"actual_time";"moeilijkheid";"eerder_gedaan";"leukheid"
tiene una sola dimensión y 4 campos
¿Cuántos registros esperas? la forma del tensor sería [4, numRecords] o [numRecords, 4] , dependiendo de cómo lo itere.
imaginemos que desea tener 10 conjuntos de datos de este tipo y desea analizarlos en paralelo. la dimensión sería [10, 4, numRecords]