Tensorflow.js-如何创建简单求和的模型

Tensorflow.js-如何创建简单求和的模型,tensorflow,configuration,layer,tensorflow.js,Tensorflow,Configuration,Layer,Tensorflow.js,我开始学习tensoflow.js。我已经看到并重新创建了线性函数的预测示例;您最初拥有: async function learnLinear(){ model = tf.sequential(); // uma camada e um nó model.add(tf.layers.dense({units: 1, inputShape: [1]})); // model.compile({ loss: 'meanSquaredError', //f

我开始学习tensoflow.js。我已经看到并重新创建了线性函数的预测示例;您最初拥有:

async function learnLinear(){
   model = tf.sequential();
   // uma camada e um nó
   model.add(tf.layers.dense({units: 1, inputShape: [1]}));
   // 
   model.compile({
      loss: 'meanSquaredError', //funcao de perda: erro quadratico médio p/ funcoes lineares
      optimizer: 'sgd' // descida de gradiente estocástica - metodologia para o aprendizado
      });
   
   // abaixo valores x,y nos parametros e o segundo é o formato 6 linhas 1 coluna
   const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4],[6, 1]); 
   const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);

   // treinar o modelo em um número fixo de iterações (épocas)
   await model.fit(xs, ys, {epochs: 900}); // 900 iterações
   ...
现在我想实现一个简单的求和,如下表所示


但我无法为此创建模板配置(张量、层和训练的外观)。你能举个例子吗?

你可以做一个简单的线性回归,就像你的例子一样。如果有这么多的数据,结果会很糟糕,所以现在不要指望用它来取代你的计算器

只需设置x1和x2张量,让模型的输入接受2个输入

//定义线性回归的模型。
const model=tf.sequential();
add(tf.layers.dense({units:1,inputShape:[2]}));
//为培训准备模型:指定损失和优化器。
compile({loss:'meanSquaredError',优化器:'sgd'});
//生成一些用于培训的合成数据。
常数x1=tf.tensor2d([1,1,2,1,3],[5,1]);
常数x2=tf.tensor2d([0,1,1,1,1],[5,1]);
//我们将x1和x2合并以获得形状[5,2]的输入
//“张量[[1,0],
//          [1, 1],
//          [2, 1],
//          [1, 1],
//          [3, 1]]"
常数xs=tf.concat([x1,x2],1)
//标签只是x1+x2的和
//张量[[1]、[2]、[3]、[2]、[4]]
常数ys=tf.add(x1,x2)
//使用数据训练模型。
model.fit(xs,ys,epochs=1000)。然后(()=>{
//试试一个预测。
//结果会很糟糕,因为
//数据不多
model.predict(tf.tensor2d([0,1],[1,2])).print();
});

您可以进行简单的线性回归,如您的示例中所示。如果有这么多的数据,结果会很糟糕,所以现在不要指望用它来取代你的计算器

只需设置x1和x2张量,让模型的输入接受2个输入

//定义线性回归的模型。
const model=tf.sequential();
add(tf.layers.dense({units:1,inputShape:[2]}));
//为培训准备模型:指定损失和优化器。
compile({loss:'meanSquaredError',优化器:'sgd'});
//生成一些用于培训的合成数据。
常数x1=tf.tensor2d([1,1,2,1,3],[5,1]);
常数x2=tf.tensor2d([0,1,1,1,1],[5,1]);
//我们将x1和x2合并以获得形状[5,2]的输入
//“张量[[1,0],
//          [1, 1],
//          [2, 1],
//          [1, 1],
//          [3, 1]]"
常数xs=tf.concat([x1,x2],1)
//标签只是x1+x2的和
//张量[[1]、[2]、[3]、[2]、[4]]
常数ys=tf.add(x1,x2)
//使用数据训练模型。
model.fit(xs,ys,epochs=1000)。然后(()=>{
//试试一个预测。
//结果会很糟糕,因为
//数据不多
model.predict(tf.tensor2d([0,1],[1,2])).print();
});

非常感谢您的返回。是的,现在的想法只是为了理解更多的基本概念,这让我可以进行下一步(计算器在我这边!)。非常感谢您的回复。而且,是的,现在的想法只是为了理解更多的基本概念,这让我能够进行下一步(在我这边有计算器的情况下!)。