tensorflow 实现矩阵逻辑变换(tf.gather/tf.gather_nd)

Pytorch实现逻辑变换很容易,因为与numpy互相转换。但是,tensorflow实现可能有些困难,但是可以转换思路实现。

例如:

 pytorch  实现 lab[lab>10]=255,然后再将255去掉,只取非255部分,计算loss

 tensorflow 只需要计算loss时,tf.gather_nd(lab,index) ,index=tf.where(lab<=10)

使用例子:

import numpy as np
import tensorflow as tf

a=np.array(list(range(100)))
a=a.reshape([10,10])
b=tf.constant(a)

index=tf.where(b>50)
# 提取 多维度的矩阵逻辑操作
c=tf.gather_nd(b,index)
# 提取 一维的矩阵逻辑变换
c=tf.gather(b,index)

你可能感兴趣的:(tensorflow)