如何将映射函数应用于张量? (Tensorflow.js)
How do I apply a map function to a tensor ? (Tensorflow.js)
如何将函数应用于张量的每个元素,例如
var new_tensor = old_tensor.map(map_function)
如果你使用 oldTensor
的 dataSync
方法,你可以获得一个 TypedArray
,你可以将其映射。
var old_tensor_vals = old_tensor.dataSync()
var new_tensor_vals = old_tensor_vals.map(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>
如何将函数应用于张量的每个元素,例如
var new_tensor = old_tensor.map(map_function)
如果你使用 oldTensor
的 dataSync
方法,你可以获得一个 TypedArray
,你可以将其映射。
var old_tensor_vals = old_tensor.dataSync()
var new_tensor_vals = old_tensor_vals.map(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>