我目前正在将我的NumPy代码移植到Tensorflow,以便有效地将其应用于神经网络。虽然Tensorflow涵盖了一些基本的NumPy函数,但它显然没有提供完整的覆盖范围。现在,我在尝试将漂亮的numpy.piecewise函数转换为Tensorflow时有点卡住了。目标是检查输入矩阵中的每个元素(张量?)如果添加了某个步骤,将超过给定的边界,如果是,则修改相同大小的掩码矩阵中的伴随元素。下面是该函数在NumPy中的外观:
def bounds_check(inputs, mask, step, bounds):
conds = [np.absolute(inputs + step) > bounds, np.absolute(inputs + step) <= bounds]
funcs = [lambda mask: -mask, lambda mask: mask]
return np.piecewise(mask, conds, funcs) # return mask什么是符合逻辑的Tensorflow替代方案?这必须是图中的一个操作,因为每个时期都会涉及到通过搜索空间进行下一步并检查边界。
发布于 2018-01-23 17:39:03
如果我正确理解您的代码,它应该与以下代码相同:
new_inputs = inputs + step
over_bounds = tf.abs(new_inputs) > bounds
new_mask = mask * (1 + (-2) * tf.cast(over_bounds, tf.float32))
return new_maskhttps://stackoverflow.com/questions/48398229
复制相似问题