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重用父类功能的两种方式,方式一是跟继承没有关系的,而方式二的super()是依赖于继承的,并且即使没有直接继承关系,super()仍然会按照MRO继续往后查找,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Matplotlib学习笔记之plt.xticks()用法

    Matplotlib学习笔记之plt.xticks()用法

    在matplotlib中ticks表示的是刻度,而刻度有两层意思,一个是刻标(locs),一个是刻度标签(tick labels),下面这篇文章主要给大家介绍了关于Matplotlib学习笔记之plt.xticks()用法的相关资料,需要的朋友可以参考下
    2022-09-09
  • Python中的CURL PycURL使用例子

    Python中的CURL PycURL使用例子

    这篇文章主要介绍了Python中的CURL PycURL使用例子,需要的朋友可以参考下
    2014-06-06
  • Python输入输出从键盘到文件实战全面指南

    Python输入输出从键盘到文件实战全面指南

    这篇文章主要为大家介绍了Python输入输出从键盘到文件实战全面指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 使用Python实现遗传算法的详细步骤

    使用Python实现遗传算法的详细步骤

    遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达尔文的进化论和孟德尔的遗传学说,其本质是一种高效、并行、全局搜索的方法,本文给大家介绍了使用Python实现遗传算法的详细步骤,需要的朋友可以参考下
    2023-11-11
  • 解决python Jupyter不能导入外部包问题

    解决python Jupyter不能导入外部包问题

    这篇文章主要介绍了解决python Jupyter不能导入外部包问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • CentOS7上使用pyenv搭建Django环境

    CentOS7上使用pyenv搭建Django环境

    本文主要介绍了CentOS7上使用pyenv搭建Django环境,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • django最快程序开发流程详解

    django最快程序开发流程详解

    这篇文章主要介绍了django最快程序开发流程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python 如何获取文件夹中的全部文件

    python 如何获取文件夹中的全部文件

    在神经网络准备训练集的时候,经常需要从文件夹中读取全部图片。经常遇到的有两种方式,一种是os.listdir()另一种是glob,本文结合示例代码对python获取文件夹中全部文件讲解的非常详细,需要的朋友参考下吧
    2023-01-01
  • Pandas实现DataFrame的简单运算、统计与排序

    Pandas实现DataFrame的简单运算、统计与排序

    本文主要介绍了Pandas实现DataFrame的简单运算、统计与排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03

最新评论