tf.boolean_mask
tf.boolean_mask 的作用是 通过布尔值 过滤元素
def boolean_mask(tensor, mask, name="boolean_mask", axis=None):
"""Apply boolean mask to tensor.
tensor:被过滤的元素
mask:一堆 bool 值,它的维度不一定等于 tensor
return: mask 为 true 对应的 tensor 的元素
当 tensor 与 mask 维度一致时,return 一维
先看个 一维 例子
# 1-D example
tensor = [0, 1, 2, 3]
mask = np.array([True, False, True, False])
out = tf.boolean_mask(tensor, mask)
print(sess.run(out)) # [0, 2]
print(out.shape) # (?,)
再看看 mask 与 tensor 维度不同的例子
tensor = [[1, 2], [3, 4], [5, 6]]
mask = np.array([True, False, True]) # mask 与 tensor 维度不同
out2 = tf.boolean_mask(tensor, mask)
print(sess.run(out2)) # [[1, 2], [5, 6]]
print(out2.shape) # (?, 2)
mask 可以用一个函数代替
# 3-D
tensor = tf.constant([
[[2,4],[4,1]],
[[6,8],[2,1]]],tf.float32)
mask = tensor > 2 # 滤波器 mask 与 tensor 相同维度
out3 = tf.boolean_mask(tensor, mask)
print(sess.run(tensor))
print(sess.run(mask)) # [[[False True] [ True False]]
# [[ True True] [False False]]]
print(sess.run(out3)) # [4. 4. 6. 8.] 输出一维
print(out3.shape) # (?,)
shape
上面的 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)
(4)当mask.shape=(m),结果返回(?,n,p,q)
参考资料:
https://blog.csdn.net/qq_29444571/article/details/84574526
https://www.w3cschool.cn/doc_tensorflow_python/tensorflow_python-tf-boolean_mask.html
tf.boolean_mask的更多相关文章
- tensorflow 基本函数(1.tf.split, 2.tf.concat,3.tf.squeeze, 4.tf.less_equal, 5.tf.where, 6.tf.gather, 7.tf.cast, 8.tf.expand_dims, 9.tf.argmax, 10.tf.reshape, 11.tf.stack, 12tf.less, 13.tf.boolean_mask
1. tf.split(3, group, input) # 拆分函数 3 表示的是在第三个维度上, group表示拆分的次数, input 表示输入的值 import tensorflow ...
- tensorflow中的boolean_mask
将mask中所有为true的抽取出来,放到一起,这里从n维降到1维度 tensor = [[1, 2], [3, 4], [5, 6]] import numpy as np mask=np.arra ...
- TF随笔-10
#!/usr/bin/env python# -*- coding: utf-8 -*-import tensorflow as tf x = tf.constant(2)y = tf.constan ...
- 解释张量及TF的一些API
张量的定义 张量(Tensor)理论是数学的一个分支学科,在力学中有重要应用.张量这一术语起源于力学,它最初是用来表示弹性介质中各点应力状态的,后来张量理论发展成为力学和物理学的一个有力的数学工具.张 ...
- 第七节,TensorFlow编程基础案例-TensorBoard以及常用函数、共享变量、图操作(下)
这一节主要来介绍TesorFlow的可视化工具TensorBoard,以及TensorFlow基础类型定义.函数操作,后面又介绍到了共享变量和图操作. 一 TesnorBoard可视化操作 Tenso ...
- DeepLearning.ai-Week3-Autonomous driving-Car detection
1 - Import Packages import argparse import os import matplotlib.pyplot as plt from matplotlib.pyplot ...
- 课程四(Convolutional Neural Networks),第三 周(Object detection) —— 2.Programming assignments:Car detection with YOLOv2
Autonomous driving - Car detection Welcome to your week 3 programming assignment. You will learn abo ...
- Autonomous driving - Car detection YOLO
Andrew Ng deeplearning courese-4:Convolutional Neural Network Convolutional Neural Networks: Step by ...
- 『TensorFlow』SSD源码学习_其五:TFR数据读取&数据预处理
Fork版本项目地址:SSD 一.TFR数据读取 创建slim.dataset.Dataset对象 在train_ssd_network.py获取数据操作如下,首先需要slim.dataset.Dat ...
随机推荐
- ContentProvider ContentResolver ContentObserver 内容:提供、访问、监听
内容提供 public class PersonContentProvider extends ContentProvider{ private static final String AUTHORI ...
- tomcat迁移到weblogic的几个问题
第1个问题: 异常描述:VALIDATION PROBLEMS WERE FOUND problem: cvc-enumeration-valid: string value '3.0' is not ...
- CSS font-family 各字体一览表
windows常见内置中文字体字体中文名 字体英文名宋体 SimSun(浏览器默认) 黑体 SimHei 微软雅黑 ...
- 用python3读csv文件出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0: invalid continuation byte
1.python3读取csv文件时报如下图所示的错误 2.分析原因:读取的csv文件不是 UTF8 编码的,而IDE工具默认采用 UTF8 解码.解决方法是修改源文件的解码方式. 3.使用nodepa ...
- SpringCloud学习之手把手教你用IDEA搭建入门项目(二)
本篇博客是承接上一篇<手把手教你用IDEA搭建SpringCloud入门项目(一)>,不清楚的请到我的博客空间查看后再看本篇博客 1)先创建一个Eureka服务注册中心模块,用来作为服务的 ...
- winform屏蔽鼠标右键
/// <summary> /// 屏蔽右键 /// </summary> internal class MenuHandler : IContextMenuHandler { ...
- Thread--volatile详细
- Transmission添加SSL访问
0.准备工作 0.1.在App Center中安装Entware-ng 0.2.以admin用户登录SSH到NAS 0.3.申请SSL证书,可以找免费的申请一个 0.4.公网IP和域名,这个要和SSL ...
- vscode显示当前文件完整路径信息
Code->Preferences->Settings 搜索window.title 原本是activeEditorShort,修改 activeEditorShort => act ...
- Java Properties基础知识总结
在Java语言中,使用一种以.properties为扩展名的文本文件作为资源文件,该类型的文件的内容格式为类似: some_key=some_value #注释描述 还有一种是使用xml文件保存项目的 ...