random_crop

paddle.fluid.layers. random_crop ( x, shape, seed=None ) [源代码]

该操作对batch中每个实例进行随机裁剪,即每个实例的裁剪位置不同,裁剪位置由均匀分布随机数生成器决定。所有裁剪后的实例都具有相同的维度,由 shape 参数决定。

参数

  • x(Variable) - 多维Tensor。

  • shape(list(int)) - 裁剪后最后几维的形状,注意,shape 的个数小于 x 的秩。

  • seed(int|Variable,可选) - 设置随机数种子,默认情况下,种子是[-65536,-65536)中一个随机数,如果类型是Variable,要求数据类型是int64,默认值:None。

返回

裁剪后的Tensor。

返回类型

Variable

代码示例

import paddle.fluid as fluid
img = fluid.data("img", [None, 3, 256, 256])
# cropped_img is [-1, 3, 224, 224]
cropped_img = fluid.layers.random_crop(img, shape=[3, 224, 224])

# cropped_img2 shape: [-1, 2, 224, 224]
# cropped_img2 = fluid.layers.random_crop(img, shape=[2, 224, 224])

# cropped_img3 shape: [-1, 3, 128, 224]
# cropped_img3 = fluid.layers.random_crop(img, shape=[128, 224])