矢量化张量流步骤的正确方法
Correct way to vectorise tensorflow step
我正在处理 4 维张量,需要进行一些计算,如下例所示。取 A
为形状为 (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])]
这似乎是一个非常粗略的解决方案。有没有更好的方法来实现这个?
您尝试做的事情的问题是它要求每个 (64, 64, 64)
卷具有相同数量的大于 0.75 的值。如果是这种情况,您可以执行以下操作:
X = tf.reshape(tf.where(A > 0.75)[:, 1:], (A.shape[0], -1, A.shape.ndims - 1))
但如果不是这种情况,你就不能有这样的张量,因为第二个维度需要有多个大小。
我正在处理 4 维张量,需要进行一些计算,如下例所示。取 A
为形状为 (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])]
这似乎是一个非常粗略的解决方案。有没有更好的方法来实现这个?
您尝试做的事情的问题是它要求每个 (64, 64, 64)
卷具有相同数量的大于 0.75 的值。如果是这种情况,您可以执行以下操作:
X = tf.reshape(tf.where(A > 0.75)[:, 1:], (A.shape[0], -1, A.shape.ndims - 1))
但如果不是这种情况,你就不能有这样的张量,因为第二个维度需要有多个大小。