Как я могу применить функцию к каждому элементу тензора, например
var new_tensor = old_tensor.map(map_function)
Если ваш map_function достаточно конкретен, вы можете сделать это просто используя тензорную математику.
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>
Если вы используете dataSync метод oldTensor, вы можете получить TypedArray, который вы можете отобразить.
dataSync
oldTensor
TypedArray
var old_tensor_vals = old_tensor.dataSync() var new_tensor_vals = old_tensor_vals.map(map_function)