умножение матриц, но сумма min () вместо суммы произведений - PullRequest
0 голосов
/ 18 декабря 2018

Я ищу последовательность матричных операций, которые достигают следующего:

, например, приведенная матрица ввода

0 0 0 0
1 1 1 1
2 2 4 4
3 0 5 5

Выводит следующее:

0 0 0  0
0 4 4  4
0 4 12 10
0 4 10 13

Что должно произойти?Хорошо зная, как работает матричное умножение, есть только одна небольшая разница, которую нужно объяснить.Умножение матриц работает так:Matrix multiplication resultMatrix [строка] [столбец] = сумма (A [строка] [каждый столбец x] * B [строка x] [столбец])

Последовательность операций должна выполнять следующее:

resultMatrix [строка] [столбец] = сумма (мин. (A [строка] [каждый столбец x], B [строка x] [столбец])) Где B - транспонирование A.

Какие функции TensorflowJS я могу использовать для достижения этой цели?

Спасибо @jdehesa за ваш ответ при использовании кода в вашем ответев форме 2881x2980 я, очевидно, достиг предела, и TensorFlowJS выдает следующую ошибку:

Error: Requested texture size [193027x128140] greater than WebGL maximum on this browser / GPU [16384x16384].
    at validateTextureSize (tf-core.esm.js?45ef:17)
    at createAndConfigureTexture (tf-core.esm.js?45ef:17)
    at createFloat32MatrixTexture (tf-core.esm.js?45ef:17)
    at e.createFloat32MatrixTexture (tf-core.esm.js?45ef:17)
    at e.acquireTexture (tf-core.esm.js?45ef:17)
    at e.acquireTexture (tf-core.esm.js?45ef:17)
    at e.uploadToGPU (tf-core.esm.js?45ef:17)
    at e.compileAndRun (tf-core.esm.js?45ef:17)
    at e.minimum (tf-core.esm.js?45ef:17)
    at ENV.engine.runKernel.$a (tf-core.esm.js?45ef:17)

Любые идеи по пакетной обработке / оптимизации?

1 Ответ

0 голосов
/ 18 декабря 2018

Вот как вы можете это сделать:

const a = tf.tensor2d(
  [[0, 0, 0, 0],
   [1, 1, 1, 1],
   [2, 2, 4, 4],
   [3, 0, 5, 5]]);
const b = a.transpose();
const m = a.expandDims(-1).minimum(b);
const result = m.sum(1);

result.print();

Вывод:

"Tensor
    [[0, 0, 0 , 0 ],
     [0, 4, 4 , 3 ],
     [0, 4, 12, 10],
     [0, 3, 10, 13]]"
...