torch.roll图片实验

torch.roll(input, shifts, dims=None) → Tensor

input为输入张量,shifts表示要滚动的方向。负数表示左上,正数表示右下。dims表示要滚动的维度。
比如,我要把一张图片从左边变换到右边:torch.roll(img, (-120, -120))、

torch.roll

可以看到猫的图像整体往左上移动了120个单位,而移动的部分会在移动方向相反的地方补足。

代码示例如下

import torch
import numpy as np
import cv2
import matplotlib.pyplot as plt

img = cv2.imread('cat.jpeg')
print(img.shape)
x=torch.from_numpy(img)

shifted_x = torch.roll(x, shifts=(-120, -120), dims=(0, 1))

plt.figure(figsize=(16,8))
plt.subplot(1,2,1)
plt.imshow(x)
plt.title("orgin_img")
plt.subplot(1,2,2)
plt.imshow(shifted_x)
if torch.equal(shifted_x, x):
    plt.title("non_shifted")
else:
    plt.title("shifted_img")
plt.show()
plt.pause(5)
plt.close()

参考: (22条消息) torch.roll图片实验_木盏-CSDN博客icon-default.png?t=M1L8https://blog.csdn.net/leviopku/article/details/120822635torch.roll 函数的理解_G果的博客-CSDN博客_torch.rolltorch.roll 函数官方解释翻译torch.roll(input, shifts, dims=None) → Tensorinput (Tensor) —— 输入张量。shifts (python:int 或 tuple of python:int) —— 张量元素移位的位数。如果移位是一个元组,dims必须是一个相同大小的元组,并且每个维度将移位相应的值。dims (int 或 tuple of python:int) 确定的维度。沿给定维数滚动张量,移动到最后一个位置以外的元素将在https://blog.csdn.net/weixin_42899627/article/details/116095067

你可能感兴趣的:(填坑日记,pytorch,深度学习,神经网络)