深度学习图像处理中tf.reduce_mean(), tf.reduce_sum(), tf.boolean_mask()

import tensorflow as tf

import numpy as np

tensor = [[1, 2], [3, 4], [5, 6]]

mask=np.array([[True,True],[False,True],[False,False]])

z=tf.boolean_mask(tensor, mask)

with tf.Session() as sess:
    print(z.shape)
    print(sess.run(z))

(?,)
[1 2 4]

Mask的维度可以小于等于tensor的维度。但必须和tensor的维度对齐。比如tensor是3维的,分别是(3,4,2)。则mask的维度可以是3~1维,长度必须是(3,4,2),(3,4)和(3,)。

当mask和tensor的维度相同时,输出1维矩阵。

当mask比tensor少一维时,输出2维矩阵。

当mask比tensor少两维时,输出3维矩阵。

 

import numpy as np

import tensorflow as tf

x = [[0.5, 4, 9],
     [1, 2, 3]]

xx = tf.cast(x, tf.float32)

mean_all = tf.reduce_mean(xx, keep_dims=False)
mean_0 = tf.reduce_mean(xx, axis=0, keep_dims=False)
mean_1 = tf.reduce_mean(xx, axis=1, keep_dims=False)

with tf.Session() as sess:
    m_a, m_0, m_1 = sess.run([mean_all, mean_0, mean_1])

print(m_a)
print(m_0)
print(m_1)

3.25
[ 0.75  3.    6.  ]
[ 4.5  2. ]

按照相应的维度求均值

 

import numpy as np

import tensorflow as tf

x = [[0.5, 4, 9],
     [1, 2, 3]]

xx = tf.cast(x, tf.float32)

mean_all = tf.reduce_sum(xx, keep_dims=False)
mean_0 = tf.reduce_sum(xx, axis=0, keep_dims=False)
mean_1 = tf.reduce_sum(xx, axis=1, keep_dims=False)

with tf.Session() as sess:
    m_a, m_0, m_1 = sess.run([mean_all, mean_0, mean_1])

print(m_a)
print(m_0)
print(m_1)

19.5
[  1.5   6.   12. ]
[ 13.5   6. ]

按照相应的维度求和

 

 

https://www.cnblogs.com/wuxiangli/p/10276893.html
https://blog.csdn.net/addresser/article/details/81281833

https://blog.csdn.net/dcrmg/article/details/79797826

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值