TensorFlow.js: равны ли эти два тензора? - PullRequest
0 голосов
/ 20 апреля 2019

Я читаю документацию TensorflowJS.В своем примере кода они заявляют

  const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);

См. Здесь

Я в замешательстве, так как здесь используется двумерный массив.Кто-нибудь знает почему?

Для полноты, вот полный фрагмент кода.

 // Define a model for linear regression.
  const model = tf.sequential();
  model.add(tf.layers.dense({units: 1, inputShape: [1]}));

  // Prepare the model for training: Specify the loss and the optimizer.
  model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

  // Generate some synthetic data for training.
  const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
  const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);

  // Train the model using the data.
  model.fit(xs, ys).then(() => {
    // Use the model to do inference on a data point the model hasn't seen before:
    // Open the browser devtools to see the output
    model.predict(tf.tensor2d([5], [1, 1])).print();
  });

Не проще ли использовать здесь одномерный массив, так как массив не используетвторого измерения в любом случае?

const xs = tf.tensor1d([1, 2, 3, 4]);

1 Ответ

0 голосов
/ 20 апреля 2019

Особенности xs тензор - это двумерный тензор. В более общем смысле тензор объектов на одно измерение больше, чем inputShape первого слоя. Добавленное измерение - это измерение пакетов, которое указывает, сколько элементов формы в inputShape, модель либо обучена, либо предсказана.

В этом примере, значение inputShape имеет размер [1], форма элементов должна иметь форму [b,1], поэтому двумерный тензор

...