tensorflow: a Implementation of rotation operation (旋转的函数实现方法)
关键字: rot90, tensorflow
问题描述
tensorflow对tensor的翻转操作并未实现, 仅有针对3D tensor的tf.image.rot()
而在大多数的情况下使用的是4D形式的tensorf, [B,W,H,C]. 但是通过查看这篇文章的代码可以知道1 可以使用numpy的rot90()函数旋转, 但是rot90对象
是ndarray, 针对tensorflow.tensor对象而言显然是无法使用的, 会抛出类似: 无法找到m.dim属性的异常.
已知, tensorflow中提供有对矩阵的翻转, 转置,切片操作的函数,但是没有提供旋转90°, 180°,270°的操作.
因此有必要去自己动手实现.
于是根据numpy.rot90(m, k=1, axes=(0,1)) ,进行了修改. rot90中的第一个参数m是操作对象, k是旋转的次数,k=1 代表逆时针旋转90度, k=2 代表逆时针旋转180度,以此类推
axes是代表操作的平面在第几个维度上.
rot90的源代码如下:
def rot90(m, k=1, axes=(0,1)):
'''
......
'''
# 省略检测参数的操作
k %= 4
if k == 0:
return m[:]
if k == 2:
return flip(flip(m, axes[0]), axes[1])
axes_list = arange(0, m.ndim)
(axes_list[axes[0]], axes_list[axes[1]]) = (axes_list[axes[1]],
axes_list[axes[0]])
<

本文介绍了在TensorFlow中如何实现旋转操作,特别是在4D张量[B,W,H,C]情况下。由于TensorFlow官方未直接提供rot90函数,作者参照numpy的rot90方法,结合TensorFlow的矩阵翻转、转置和切片操作,自定义了一个适用于TensorFlow的rot90实现,并提供了测试代码和结果。"
122306113,9979918,Linux找不到my.cnf的解决步骤,"['Linux', '数据库', 'MySQL', '服务器管理', '配置']
最低0.47元/天 解锁文章
1411

被折叠的 条评论
为什么被折叠?



