首页 > 解决方案 > 矢量化张量流步骤的正确方法

问题描述

我正在使用 4 维张量,需要进行一些计算,如下例所示。A成为一个有 shape 的张量(6,64,64,64)。我想使用该函数tf.where来获取每个(64,64,64)体积的体素,其值大于0.75. 我设法做到这一点的唯一方法是这样的:

X = tf.convert_to_tensor([tf.where(A[i,:,:,:] > 0.75) for i in range(A.shape[0])]

这似乎是一个非常粗略的解决方案。有没有更好的方法来实现这一目标?

标签: pythonpython-3.xtensorflowvectorizationtensor

解决方案


您尝试做的问题是它要求每个(64, 64, 64)卷具有相同数量的大于 0.75 的值。如果是这种情况,您可以执行以下操作:

X = tf.reshape(tf.where(A > 0.75)[:, 1:], (A.shape[0], -1, A.shape.ndims - 1))

但如果不是这样,你就不能有这样的张量,因为第二维需要有多个尺寸。


推荐阅读