tfjs-wechat
tfjs-wechat copied to clipboard
Output of MaxPooling2d not as expected on some Android devices with input tensor of certain shape.
TensorFlow.js version: 3.18.0 tfjs-wechat plugin version: 0.2.0 WeChat version: 8.0.18 WeChat base API version: 3.4.6 WeChat IDE version: 1.0.5
Strange output of MaxPooling2d on some Android Devices (tested on Google Pixel 3XL and Samsung Galaxy S20) only with webgl backend.
let zeroTensor= tf.zeros([1, 4, 110, 2], 'float32');
let maxPool = tfl.layers.maxPool2d({
poolSize: [2, 2],
strides: [2, 2]
});
let tensorAfterPooling = maxPool.apply(zeroTensor) as tf.Tensor;
console.log(tf.min(tensorAfterPooling).dataSync()[0], tf.max(tensorAfterPooling).dataSync()[0])
output expected: 0 0 output: -65503.99609375 0
This looks like it is overflowing, are you using float32 texture or float16 texture?
This looks like it is overflowing, are you using float32 texture or float16 texture?
console.log(tf.ENV.getBool('WEBGL_RENDER_FLOAT32_CAPABLE'))
true
console.log(tf.ENV.getBool('WEBGL_RENDER_FLOAT32_ENABLED'))
true
but after I tf.ENV.set("WEBGL_RENDER_FLOAT32_ENABLED", false)
the output is still wrong.
While on iPhone which produce the right result, the WEBGL_RENDER_FLOAT32_CAPABLE
and WEBGL_RENDER_FLOAT32_ENABLED
is always false.