python中tf.boolean_mask()函数的使用方法详解

 更新时间:2023年11月04日 09:52:13   作者:大彤小忆  
这篇文章主要介绍了python中tf.boolean_mask()函数的使用方法详解, tf.boolean_mask() 函数的作用是通过布尔值对指定的列的元素进行过滤,需要的朋友可以参考下

python中tf.boolean_mask()函数的使用

tf.boolean_mask() 函数的作用是通过布尔值对指定的列的元素进行过滤。

语法结构

boolean_mask(tensor, mask, name="boolean_mask", axis=None)

其中,tensor:被过滤的元素 mask:一堆bool值,它的维度不一定等于tensor return:mask为true对应的tensor的元素 当tensor与mask维度一致时,返回一维

1-D example

import numpy as np
import tensorflow as tf
a = [1, 2, 3, 4]
mask = np.array([True, True, False, False])   # mask 与 a 维度相同
b = tf.boolean_mask(a, mask)
 with tf.Session() as sess:
 print(sess.run(b))
 print(b.shape)

[1 2]
(?,)

2-D example

import numpy as np
import tensorflow as tf
a = [[1, 2], [3, 4], [5, 6]]
mask = np.array([True, False, True])   # mask 与 a 维度不同
b = tf.boolean_mask(a, mask)
with tf.Session() as sess:
   print(sess.run(b))
   print(b.shape)

[[1 2]
[5 6]]
(?, 2)

3-D example

import numpy as np
import tensorflow as tf
a = tf.constant([
       [[2, 4], [4, 1]],
       [[6, 8], [2, 1]]], tf.float32)
mask = a > 2   # mask 与 a 维度相同
b = tf.boolean_mask(a, mask)
with tf.Session() as sess:
    print(sess.run(a))
    print(sess.run(mask))
    print(sess.run(b))
    print(b.shape)

[[[2. 4.]
[4. 1.]]

[[6. 8.]
[2. 1.]]]

[[[False True]
[ True False]]

[[ True True]
[False False]]]

[4. 4. 6. 8.]
(?,)

上面的shape有如下的规则: 假设 tensor.rank=4,维度为(m,n,p,q),则

(1)当mask.shape=(m,n,p,q),结果返回(?,),表示所有维度都被过滤

(2)当mask.shape=(m,n,p),结果返回(?,q),表示 q 维度没有过滤

(3)当mask.shape=(m,n),结果返回(?,p,q),表示 p,q 维度没有过滤

(4)当mask.shape=(m),结果返回(?,n,p,q),表示 n,p,q 维度没有过滤

tensorflow 使用一种叫tensor的数据结构去展示所有的数据,我们可以把tensor看成是n维的array或者list。在tensorflow的各部分图形间流动传递的只能是tensor。

tensorflow用3种方式描述一个tensor的维数:rank、shape、dimension number (维数),所以shape和rank的意思的一样的,只是表达的形式不同。

rankshapedimension
0[ ]0 维
1[ D0 ]1 维
2[ D0, D1 ]2 维
n[ D0, D1, …, Dn-1 ]n 维

到此这篇关于python中tf.boolean_mask()函数的使用方法详解的文章就介绍到这了,更多相关python的tf.boolean_mask()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python编程中常见的错误及其解决方法总结

    Python编程中常见的错误及其解决方法总结

    在开发 Python 程序时,错误几乎是无法避免的,无论是新手还是经验丰富的开发者,都可能在编程过程中遇到各种各样的问题,调试错误不仅消耗时间,还可能导致生产环境出现问题,为了提高调试效率,本文将总结一些 Python 编程中常见的错误及其解决方法,并提供实用的调试技巧
    2025-02-02
  • python游戏的魅力之冒险岛实战项目

    python游戏的魅力之冒险岛实战项目

    我看了一眼沉迷《梦幻国度》的儿子!气就不打一处来!让你见识一下Python游戏的魅力,python实战冒险岛游戏码起,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值
    2021-09-09
  • python 一些常用的小脚本

    python 一些常用的小脚本

    本文主要介绍了python 一些常用的小脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2007-10-10
  • 详解Python如何利用Pandas与NumPy进行数据清洗

    详解Python如何利用Pandas与NumPy进行数据清洗

    许多数据科学家认为获取和清理数据的初始步骤占工作的 80%,花费大量时间来清理数据集并将它们归结为可以使用的形式。本文将利用 Python 的 Pandas和 NumPy 库来清理数据,需要的可以参考一下
    2022-04-04
  • python中的logging模块的简单应用和高级使用

    python中的logging模块的简单应用和高级使用

    在 Python 中,可以使用内置的 logging 模块来记录应用程序的信息,logging 模块还提供了一些高级功能,如日志回溯、日志轮换、日志缓冲等,需要的朋友可以参考下
    2023-04-04
  • Python学习之面向对象编程详解

    Python学习之面向对象编程详解

    利用(面向)对象的(属性和方法)去进行编码的过程即面向对象编程。本文将通过示例详细为大家介绍一下Python中的面向对象编程,需要的可以参考一下
    2022-03-03
  • 详解Python的整数是如何实现的

    详解Python的整数是如何实现的

    本文我们来聊一聊Python的整数,我们知道Python的整数是不会溢出的,换句话说,它可以计算无穷大的数,只要你的内存足够,它就能计算。但问题是,Python底层又是C实现的,那么它是怎么做到整数不溢出的呢?本文就来详细说说
    2022-11-11
  • Python基于similarities实现文本语义相似度计算和文本匹配搜索

    Python基于similarities实现文本语义相似度计算和文本匹配搜索

    similarities 实现了多种相似度计算、匹配搜索算法,支持文本、图像,python3开发,下面我们就来看看如何使用similarities实现文本语义相似度计算和文本匹配搜索吧
    2024-03-03
  • 如何使用 Python 读取文件和照片的创建日期

    如何使用 Python 读取文件和照片的创建日期

    这篇文章主要介绍了如何使用 Python 读取文件和照片的创建日期,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • python sleep和wait对比总结

    python sleep和wait对比总结

    在本篇文章里小编给大家整理的是一篇关于python sleep和wait对比总结内容,对此有兴趣的朋友们可以学习下。
    2021-02-02

最新评论