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)