Как мне применить функцию карты к тензору? (Tensorflow.js) - PullRequest
0 голосов
/ 10 мая 2018

Как я могу применить функцию к каждому элементу тензора, например

var new_tensor = old_tensor.map(map_function)

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Если ваш map_function достаточно конкретен, вы можете сделать это просто используя тензорную математику.

Функция ниже является реализацией:

old => Math.random()>chance?Math.random():old;

const old = tf.randomUniform([10], 0, 10);
const chance = 0.75;

const mapped = tf.tidy(() => {
  const max = Math.round(100 * chance);
  const min = max - 1;
  const random = tf.randomUniform([old.shape[0]], 0, 100).floor();
  const ones = random.clipByValue(min, max).sub(tf.scalar(min));
  ones.print();

  const zeros = ones.sub(tf.scalar(1)).neg();
  zeros.print();

  const newValues = tf.randomUniform([old.shape[0]]); //or whatever you want
  //newValues.print();

  return old.mul(ones).add(newValues.mul(zeros));
});

old.print();
mapped.print();
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.10.0">
</script>
0 голосов
/ 10 мая 2018

Если вы используете dataSync метод oldTensor, вы можете получить TypedArray, который вы можете отобразить.

var old_tensor_vals = old_tensor.dataSync()
var new_tensor_vals = old_tensor_vals.map(map_function)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...