View source on GitHub |

Computes number of nonzero elements across dimensions of a tensor.

tf.math.count_nonzero( input, axis=None, keepdims=None, dtype=tf.dtypes.int64, name=None )

Reduces `input`

along the dimensions given in `axis`

. Unless `keepdims`

is true, the rank of the tensor is reduced by 1 for each entry in `axis`

. If `keepdims`

is true, the reduced dimensions are retained with length 1.

If `axis`

has no entries, all dimensions are reduced, and a tensor with a single element is returned.

Note:Floating point comparison to zero is done by exact floating point equality check. Small values arenotrounded to zero for purposes of the nonzero check.

x = tf.constant([[0, 1, 0], [1, 1, 0]]) tf.math.count_nonzero(x) # 3 tf.math.count_nonzero(x, 0) # [1, 2, 0] tf.math.count_nonzero(x, 1) # [1, 2] tf.math.count_nonzero(x, 1, keepdims=True) # [[1], [2]] tf.math.count_nonzero(x, [0, 1]) # 3

Note:Strings are compared against zero-length empty string`""`

. Any string with a size greater than zero is already considered as nonzero.

x = tf.constant(["", "a", " ", "b", ""]) tf.math.count_nonzero(x) # 3, with "a", " ", and "b" as nonzero strings.

Args | |
---|---|

`input` | The tensor to reduce. Should be of numeric type, `bool` , or `string` . |

`axis` | The dimensions to reduce. If `None` (the default), reduces all dimensions. Must be in the range `[-rank(input), rank(input))` . |

`keepdims` | If true, retains reduced dimensions with length 1. |

`dtype` | The output dtype; defaults to `tf.int64` . |

`name` | A name for the operation (optional). |

Returns | |
---|---|

The reduced tensor (number of nonzero values). |

© 2020 The TensorFlow Authors. All rights reserved.

Licensed under the Creative Commons Attribution License 3.0.

Code samples licensed under the Apache 2.0 License.

https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/math/count_nonzero