def __call__(self, *inputs): if not isinstance(self.interp, (tuple, list)): interp = [self.interp] * len(inputs) else: interp = self.interp outputs = [] for idx, _input in enumerate(inputs): input_tf = th_affine2d(_input, self.tform_matrix, mode=interp[idx]) outputs.append(input_tf) return outputs if idx > 1 else outputs[0]
def __call__(self, *inputs): # collect all of the lazily returned tform matrices tform_matrix = self.transforms[0](inputs[0]) for tform in self.transforms[1:]: tform_matrix = tform_matrix.mm(tform(inputs[0])) if not isinstance(self.interp, (tuple, list)): interp = [self.interp] * len(inputs) else: interp = self.interp outputs = [] for idx, _input in enumerate(inputs): input_tf = th_affine2d(_input, tform_matrix, mode=interp[idx]) outputs.append(input_tf) return outputs if idx > 1 else outputs[0]
def __call__(self, *inputs): if not isinstance(self.interp, (tuple, list)): interp = [self.interp] * len(inputs) else: interp = self.interp zx, zy = self.value zoom_matrix = th.FloatTensor([[zx, 0, 0], [0, zy, 0], [0, 0, 1]]) if self.lazy: return zoom_matrix else: outputs = [] for idx, _input in enumerate(inputs): input_tf = th_affine2d(_input, zoom_matrix, mode=interp[idx], center=True) outputs.append(input_tf) return outputs if idx > 1 else outputs[0]
def __call__(self, *inputs): if not isinstance(self.interp, (tuple, list)): interp = [self.interp] * len(inputs) else: interp = self.interp theta = (math.pi * self.value) / 180 shear_matrix = th.FloatTensor([[1, -math.sin(theta), 0], [0, math.cos(theta), 0], [0, 0, 1]]) if self.lazy: return shear_matrix else: outputs = [] for idx, _input in enumerate(inputs): input_tf = th_affine2d(_input, shear_matrix, mode=interp[idx], center=True) outputs.append(input_tf) return outputs if idx > 1 else outputs[0]
def __call__(self, *inputs): if not isinstance(self.interp, (tuple, list)): interp = [self.interp] * len(inputs) else: interp = self.interp tx = self.height_range * inputs[0].size(1) ty = self.width_range * inputs[0].size(2) translation_matrix = th.FloatTensor([[1, 0, tx], [0, 1, ty], [0, 0, 1]]) if self.lazy: return translation_matrix else: outputs = [] for idx, _input in enumerate(inputs): input_tf = th_affine2d(_input, translation_matrix, mode=interp[idx], center=True) outputs.append(input_tf) return outputs if idx > 1 else outputs[0]