Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Output of MaxPooling2d not as expected on some Android devices with input tensor of certain shape. #128

Open
109021017 opened this issue Jun 6, 2022 · 3 comments

Comments

@109021017
Copy link

109021017 commented Jun 6, 2022

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

@pyu10055
Copy link
Collaborator

This looks like it is overflowing, are you using float32 texture or float16 texture?

@109021017
Copy link
Author

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.

@109021017
Copy link
Author

While on iPhone which produce the right result, the WEBGL_RENDER_FLOAT32_CAPABLE and WEBGL_RENDER_FLOAT32_ENABLED is always false.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants