首页 > 解决方案 > 在TensorFlow中将旋转变换应用于矩形的一组四个坐标

问题描述

我想旋转一个矩形,我有四个顶点的坐标。我通过从旋转角度创建一个旋转矩阵并使用它来转换原始矩形坐标来做到这一点。但是,我不只有一个旋转矩阵和一个矩形,而是很多。

我的旋转张量 R 看起来像 [n,2,2] (n [2,2] 旋转矩阵),我的矩形张量 B 看起来像 [n,4,2] (n [4,2] 矩形)。如果 n 只是 1,我可以做正常的 tf.matmul(R,B),但在这里我不知道该怎么做。我想我可以用 tf.einsum 做到这一点,但我不知道如何形成方程。任何帮助,将不胜感激。

标签: tensorflowtensor

解决方案


您可以使用 tf.matmul 进行批量乘法。但你必须重塑:

a = tf.random.uniform([10, 2, 2])
b = tf.random.uniform([10, 4, 2])
a = a[:, tf.newaxis, ...]
b = b[..., tf.newaxis]
c = tf.matmul(a, b)
c = tf.squeeze(c)

推荐阅读