Python torch.nn.functional.pad() Examples
The following are 30
code examples of torch.nn.functional.pad().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
torch.nn.functional
, or try the search function
.
Example #1
Source File: pytorch_i3d.py From deep-smoke-machine with BSD 3-Clause "New" or "Revised" License | 6 votes |
def forward(self, x): # compute 'same' padding (batch, channel, t, h, w) = x.size() #print t,h,w out_t = np.ceil(float(t) / float(self.stride[0])) out_h = np.ceil(float(h) / float(self.stride[1])) out_w = np.ceil(float(w) / float(self.stride[2])) #print out_t, out_h, out_w pad_t = self.compute_pad(0, t) pad_h = self.compute_pad(1, h) pad_w = self.compute_pad(2, w) #print pad_t, pad_h, pad_w pad_t_f = pad_t // 2 pad_t_b = pad_t - pad_t_f pad_h_f = pad_h // 2 pad_h_b = pad_h - pad_h_f pad_w_f = pad_w // 2 pad_w_b = pad_w - pad_w_f pad = (pad_w_f, pad_w_b, pad_h_f, pad_h_b, pad_t_f, pad_t_b) #print x.size() #print pad x = F.pad(x, pad) return super(MaxPool3dSamePadding, self).forward(x)
Example #2
Source File: i3d_torch_charades_test.py From timeception with GNU General Public License v3.0 | 6 votes |
def forward(self, x): # compute 'same' padding (batch, channel, t, h, w) = x.size() # print t,h,w out_t = np.ceil(float(t) / float(self.stride[0])) out_h = np.ceil(float(h) / float(self.stride[1])) out_w = np.ceil(float(w) / float(self.stride[2])) # print out_t, out_h, out_w pad_t = self.compute_pad(0, t) pad_h = self.compute_pad(1, h) pad_w = self.compute_pad(2, w) # print pad_t, pad_h, pad_w pad_t_f = pad_t // 2 pad_t_b = pad_t - pad_t_f pad_h_f = pad_h // 2 pad_h_b = pad_h - pad_h_f pad_w_f = pad_w // 2 pad_w_b = pad_w - pad_w_f pad = (pad_w_f, pad_w_b, pad_h_f, pad_h_b, pad_t_f, pad_t_b) # print x.size() # print pad x = F.pad(x, pad) return super(MaxPool3dSamePadding, self).forward(x)
Example #3
Source File: deform_conv.py From mmdetection with Apache License 2.0 | 6 votes |
def forward(self, x, offset): # To fix an assert error in deform_conv_cuda.cpp:128 # input image is smaller than kernel input_pad = ( x.size(2) < self.kernel_size[0] or x.size(3) < self.kernel_size[1]) if input_pad: pad_h = max(self.kernel_size[0] - x.size(2), 0) pad_w = max(self.kernel_size[1] - x.size(3), 0) x = F.pad(x, (0, pad_w, 0, pad_h), 'constant', 0).contiguous() offset = F.pad(offset, (0, pad_w, 0, pad_h), 'constant', 0).contiguous() out = deform_conv(x, offset, self.weight, self.stride, self.padding, self.dilation, self.groups, self.deformable_groups) if input_pad: out = out[:, :, :out.size(2) - pad_h, :out.size(3) - pad_w].contiguous() return out
Example #4
Source File: pytorch_utils.py From deep-smoke-machine with BSD 3-Clause "New" or "Revised" License | 6 votes |
def padding3d(tensor, filter, mode=str('constant')): """ Input shape (BN, C, T, H, W) """ it, ih, iw = tensor.shape[2:] ft, fh, fw = filter.shape pt = max(0, (it - 1) + (ft - 1) + 1 - it) ph = max(0, (ih - 1) + (fh - 1) + 1 - ih) pw = max(0, (iw - 1) + (fw - 1) + 1 - iw) oddt = (pt % 2 != 0) oddh = (ph % 2 != 0) oddw = (pw % 2 != 0) if any([oddt, oddh, oddw]): pad = [0, int(oddt), 0, int(oddh), 0, int(oddw)] tensor = F.pad(tensor, pad, mode=mode) padding = (pt // 2, ph // 2, pw // 2) tensor = F.conv3d(tensor, filter, padding=padding) return tensor
Example #5
Source File: BEV_Unet.py From PolarSeg with BSD 3-Clause "New" or "Revised" License | 6 votes |
def forward(self, x1, x2): x1 = self.up(x1) # input is CHW diffY = x2.size()[2] - x1.size()[2] diffX = x2.size()[3] - x1.size()[3] x1 = F.pad(x1, (diffX // 2, diffX - diffX//2, diffY // 2, diffY - diffY//2)) # for padding issues, see # https://github.com/HaiyongJiang/U-Net-Pytorch-Unstructured-Buggy/commit/0e854509c2cea854e247a9c615f175f76fbb2e3a # https://github.com/xiaopeng-liao/Pytorch-UNet/commit/8ebac70e633bac59fc22bb5195e513d5832fb3bd x = torch.cat([x2, x1], dim=1) x = self.conv(x) return x
Example #6
Source File: i3d_torch_charades.py From timeception with GNU General Public License v3.0 | 6 votes |
def forward(self, x): # compute 'same' padding (batch, channel, t, h, w) = x.size() # print t,h,w out_t = np.ceil(float(t) / float(self.stride[0])) out_h = np.ceil(float(h) / float(self.stride[1])) out_w = np.ceil(float(w) / float(self.stride[2])) # print out_t, out_h, out_w pad_t = self.compute_pad(0, t) pad_h = self.compute_pad(1, h) pad_w = self.compute_pad(2, w) # print pad_t, pad_h, pad_w pad_t_f = pad_t // 2 pad_t_b = pad_t - pad_t_f pad_h_f = pad_h // 2 pad_h_b = pad_h - pad_h_f pad_w_f = pad_w // 2 pad_w_b = pad_w - pad_w_f pad = (pad_w_f, pad_w_b, pad_h_f, pad_h_b, pad_t_f, pad_t_b) # print x.size() # print pad x = F.pad(x, pad) return super(MaxPool3dSamePadding, self).forward(x)
Example #7
Source File: Modules.py From GST-Tacotron with MIT License | 6 votes |
def max_pool1d(inputs, kernel_size, stride=1, padding='same'): ''' inputs: [N, T, C] outputs: [N, T // stride, C] ''' inputs = inputs.transpose(1, 2) # [N, C, T] if padding == 'same': left = (kernel_size - 1) // 2 right = (kernel_size - 1) - left pad = (left, right) else: pad = (0, 0) inputs = F.pad(inputs, pad) outputs = F.max_pool1d(inputs, kernel_size, stride) # [N, C, T] outputs = outputs.transpose(1, 2) # [N, T, C] return outputs
Example #8
Source File: ResNet2015.py From Pytorch-Networks with MIT License | 6 votes |
def __init__(self,in_dim,out_dim,stride=1,op="A"): super(BasicBlock,self).__init__() self.subconv_1 = nn.Sequential( nn.Conv2d(in_dim,out_dim,3,stride,1,bias=False), nn.BatchNorm2d(out_dim), nn.ReLU(inplace=True),) self.subconv_2 = nn.Sequential( nn.Conv2d(out_dim,out_dim,3,1,1,bias=False), nn.BatchNorm2d(out_dim)) if in_dim == out_dim and stride == 1: self.downsample = nn.Sequential() elif op == 'A': self.downsample =LambdaLayer(lambda x: F.pad(x[:, :, ::2, ::2], (0, 0, 0, 0, out_dim//4, out_dim//4), "constant", 0)) elif op == 'B': self.downsample = nn.Sequential( nn.Conv2d(in_dim,out_dim,1,stride,0,bias=False), nn.BatchNorm2d(out_dim), ) else: raise ValueError
Example #9
Source File: i3d_torch_charades_test.py From timeception with GNU General Public License v3.0 | 6 votes |
def __init__(self, in_channels, output_channels, kernel_shape=(1, 1, 1), stride=(1, 1, 1), padding=0, activation_fn=F.relu, use_batch_norm=True, use_bias=False, name='unit_3d'): """Initializes Unit3D module.""" super(Unit3D, self).__init__() self._output_channels = output_channels self._kernel_shape = kernel_shape self._stride = stride self._use_batch_norm = use_batch_norm self._activation_fn = activation_fn self._use_bias = use_bias self.name = name self.padding = padding # we always want padding to be 0 here. We will dynamically pad based on input size in forward function self.conv3d = nn.Conv3d(in_channels=in_channels, out_channels=self._output_channels, kernel_size=self._kernel_shape, stride=self._stride, padding=0, bias=self._use_bias) if self._use_batch_norm: self.bn = nn.BatchNorm3d(self._output_channels, eps=0.001, momentum=0.01)
Example #10
Source File: i3d_torch_charades.py From deep-smoke-machine with BSD 3-Clause "New" or "Revised" License | 6 votes |
def forward(self, x): # compute 'same' padding (batch, channel, t, h, w) = x.size() # print t,h,w out_t = np.ceil(float(t) / float(self.stride[0])) out_h = np.ceil(float(h) / float(self.stride[1])) out_w = np.ceil(float(w) / float(self.stride[2])) # print out_t, out_h, out_w pad_t = self.compute_pad(0, t) pad_h = self.compute_pad(1, h) pad_w = self.compute_pad(2, w) # print pad_t, pad_h, pad_w pad_t_f = pad_t // 2 pad_t_b = pad_t - pad_t_f pad_h_f = pad_h // 2 pad_h_b = pad_h - pad_h_f pad_w_f = pad_w // 2 pad_w_b = pad_w - pad_w_f pad = (pad_w_f, pad_w_b, pad_h_f, pad_h_b, pad_t_f, pad_t_b) # print x.size() # print pad x = F.pad(x, pad) return super(MaxPool3dSamePadding, self).forward(x)
Example #11
Source File: i3d_torch_charades_test.py From deep-smoke-machine with BSD 3-Clause "New" or "Revised" License | 6 votes |
def forward(self, x): # compute 'same' padding (batch, channel, t, h, w) = x.size() # print t,h,w out_t = np.ceil(float(t) / float(self.stride[0])) out_h = np.ceil(float(h) / float(self.stride[1])) out_w = np.ceil(float(w) / float(self.stride[2])) # print out_t, out_h, out_w pad_t = self.compute_pad(0, t) pad_h = self.compute_pad(1, h) pad_w = self.compute_pad(2, w) # print pad_t, pad_h, pad_w pad_t_f = pad_t // 2 pad_t_b = pad_t - pad_t_f pad_h_f = pad_h // 2 pad_h_b = pad_h - pad_h_f pad_w_f = pad_w // 2 pad_w_b = pad_w - pad_w_f pad = (pad_w_f, pad_w_b, pad_h_f, pad_h_b, pad_t_f, pad_t_b) # print x.size() # print pad x = F.pad(x, pad) return super(MaxPool3dSamePadding, self).forward(x)
Example #12
Source File: 3DCNN.py From Pytorch-Networks with MIT License | 6 votes |
def __init__(self,in_dim,out_dim,stride=1,op="A"): super(BasicBlock,self).__init__() self.subconv_1 = nn.Sequential( nn.Conv2d(in_dim,out_dim,3,stride,1,bias=False), nn.BatchNorm2d(out_dim), nn.ReLU(inplace=True),) self.subconv_2 = nn.Sequential( nn.Conv2d(out_dim,out_dim,3,1,1,bias=False), nn.BatchNorm2d(out_dim)) if in_dim == out_dim and stride == 1: self.downsample = nn.Sequential() elif op == 'A': self.downsample =LambdaLayer(lambda x: F.pad(x[:, :, ::2, ::2], (0, 0, 0, 0, out_dim//4, out_dim//4), "constant", 0)) else: self.downsample = nn.Sequential( nn.Conv2d(in_dim,out_dim,1,stride,0,bias=False), nn.BatchNorm2d(out_dim), )
Example #13
Source File: i3d_torch_charades_test.py From deep-smoke-machine with BSD 3-Clause "New" or "Revised" License | 6 votes |
def __init__(self, in_channels, output_channels, kernel_shape=(1, 1, 1), stride=(1, 1, 1), padding=0, activation_fn=F.relu, use_batch_norm=True, use_bias=False, name='unit_3d'): """Initializes Unit3D module.""" super(Unit3D, self).__init__() self._output_channels = output_channels self._kernel_shape = kernel_shape self._stride = stride self._use_batch_norm = use_batch_norm self._activation_fn = activation_fn self._use_bias = use_bias self.name = name self.padding = padding # we always want padding to be 0 here. We will dynamically pad based on input size in forward function self.conv3d = nn.Conv3d(in_channels=in_channels, out_channels=self._output_channels, kernel_size=self._kernel_shape, stride=self._stride, padding=0, bias=self._use_bias) if self._use_batch_norm: self.bn = nn.BatchNorm3d(self._output_channels, eps=0.001, momentum=0.01)
Example #14
Source File: eval_utils.py From ACAN with MIT License | 6 votes |
def pad_image(image, target_size): """ Parameters ---------- image : numpy.ndarray shape [batch_size, c, h, w] target_size : tuple or list Description ----------- Pad an image up to the target size. """ rows_missing = target_size[0] - image.shape[2] cols_missing = target_size[1] - image.shape[3] padded_img = F.pad(image, (0, cols_missing, 0, rows_missing), 'constant') return padded_img
Example #15
Source File: i3d_torch_charades.py From deep-smoke-machine with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __init__(self, in_channels, output_channels, kernel_shape=(1, 1, 1), stride=(1, 1, 1), padding=0, activation_fn=F.relu, use_batch_norm=True, use_bias=False, name='unit_3d'): """Initializes Unit3D module.""" super(Unit3D, self).__init__() self._output_channels = output_channels self._kernel_shape = kernel_shape self._stride = stride self._use_batch_norm = use_batch_norm self._activation_fn = activation_fn self._use_bias = use_bias self.name = name self.padding = padding self.conv3d = nn.Conv3d(in_channels=in_channels, out_channels=self._output_channels, kernel_size=self._kernel_shape, stride=self._stride, padding=0, # we always want padding to be 0 here. We will dynamically pad based on input size in forward function bias=self._use_bias) if self._use_batch_norm: self.bn = nn.BatchNorm3d(self._output_channels, eps=0.001, momentum=0.01)
Example #16
Source File: pytorch_i3d.py From deep-smoke-machine with BSD 3-Clause "New" or "Revised" License | 5 votes |
def forward(self, x): # compute 'same' padding (batch, channel, t, h, w) = x.size() #print t,h,w out_t = np.ceil(float(t) / float(self._stride[0])) out_h = np.ceil(float(h) / float(self._stride[1])) out_w = np.ceil(float(w) / float(self._stride[2])) #print out_t, out_h, out_w pad_t = self.compute_pad(0, t) pad_h = self.compute_pad(1, h) pad_w = self.compute_pad(2, w) #print pad_t, pad_h, pad_w pad_t_f = pad_t // 2 pad_t_b = pad_t - pad_t_f pad_h_f = pad_h // 2 pad_h_b = pad_h - pad_h_f pad_w_f = pad_w // 2 pad_w_b = pad_w - pad_w_f pad = (pad_w_f, pad_w_b, pad_h_f, pad_h_b, pad_t_f, pad_t_b) #print x.size() #print pad x = F.pad(x, pad) #print x.size() x = self.conv3d(x) if self._use_batch_norm: x = self.bn(x) if self._activation_fn is not None: x = self._activation_fn(x) return x
Example #17
Source File: submodule.py From DSMnet with Apache License 2.0 | 5 votes |
def __init__(self, inplanes, planes, stride, downsample, pad, dilation): super(BasicBlock, self).__init__() self.conv1 = nn.Sequential(convbn(inplanes, planes, 3, stride, pad, dilation), nn.ReLU(inplace=True)) self.conv2 = convbn(planes, planes, 3, 1, pad, dilation) self.downsample = downsample self.stride = stride
Example #18
Source File: submodule.py From DSMnet with Apache License 2.0 | 5 votes |
def convbn_3d(in_planes, out_planes, kernel_size, stride, pad): return nn.Sequential(nn.Conv3d(in_planes, out_planes, kernel_size=kernel_size, padding=pad, stride=stride,bias=False), nn.BatchNorm3d(out_planes))
Example #19
Source File: submodule.py From DSMnet with Apache License 2.0 | 5 votes |
def convbn(in_planes, out_planes, kernel_size, stride, pad, dilation): return nn.Sequential(nn.Conv2d(in_planes, out_planes, kernel_size=kernel_size, stride=stride, padding=dilation, dilation = dilation, bias=False), nn.BatchNorm2d(out_planes))
Example #20
Source File: dataset.py From EMANet with GNU General Public License v3.0 | 5 votes |
def _get_item(self, image_id): image_path = osp.join(self.data_root, 'JPEGImages', image_id + '.jpg') label_path = osp.join(self.data_root, 'SegmentationClassAug', image_id + '.png') image, label = fetch(image_path, label_path) image, label = scale(image, label) image, label = pad(image, label) image, label = crop(image, label) image, label = flip(image, label) return image[0], label[0, 0].long()
Example #21
Source File: dataset.py From EMANet with GNU General Public License v3.0 | 5 votes |
def pad_inf(image, label=None): h, w = image.size()[-2:] stride = settings.STRIDE pad_h = (stride + 1 - h % stride) % stride pad_w = (stride + 1 - w % stride) % stride if pad_h > 0 or pad_w > 0: image = F.pad(image, (0, pad_w, 0, pad_h), mode='constant', value=0.) if label is not None: label = F.pad(label, (0, pad_w, 0, pad_h), mode='constant', value=settings.IGNORE_LABEL) return image, label
Example #22
Source File: dataset.py From EMANet with GNU General Public License v3.0 | 5 votes |
def pad(image, label=None): h, w = image.size()[-2:] crop_size = settings.CROP_SIZE pad_h = max(crop_size - h, 0) pad_w = max(crop_size - w, 0) if pad_h > 0 or pad_w > 0: image = F.pad(image, (0, pad_w, 0, pad_h), mode='constant', value=0.) if label is not None: label = F.pad(label, (0, pad_w, 0, pad_h), mode='constant', value=settings.IGNORE_LABEL) return image, label
Example #23
Source File: unet_utils.py From SpaceNetExploration with MIT License | 5 votes |
def forward(self, inputs1, inputs2): outputs2 = self.up(inputs2) offset = outputs2.size()[2] - inputs1.size()[2] padding = 2 * [offset // 2, offset // 2] outputs1 = F.pad(inputs1, padding) return self.conv(torch.cat([outputs1, outputs2], 1))
Example #24
Source File: Nets.py From Hierarchical-Sentiment with MIT License | 5 votes |
def _reorder_sent(self,sents,sent_order): sents = F.pad(sents,(0,0,1,0)) #adds a 0 to the top revs = sents[sent_order.view(-1)] revs = revs.view(sent_order.size(0),sent_order.size(1),sents.size(1)) return revs
Example #25
Source File: fcn8s.py From cycada_release with BSD 2-Clause "Simplified" License | 5 votes |
def forward(self, x): input = x x = F.pad(x, (99, 99, 99, 99), mode='constant', value=0) intermediates = {} fts_to_save = {16: 'pool3', 23: 'pool4'} for i, module in enumerate(self.vgg): x = module(x) if i in fts_to_save: intermediates[fts_to_save[i]] = x ft_to_save = 5 # Dropout before classifier last_ft = {} for i, module in enumerate(self.vgg_head): x = module(x) if i == ft_to_save: last_ft = x _, _, h, w = x.size() upscore2 = self.upscore2(x) pool4 = intermediates['pool4'] score_pool4 = self.score_pool4(0.01 * pool4) score_pool4c = _crop(score_pool4, upscore2, offset=5) fuse_pool4 = upscore2 + score_pool4c upscore_pool4 = self.upscore_pool4(fuse_pool4) pool3 = intermediates['pool3'] score_pool3 = self.score_pool3(0.0001 * pool3) score_pool3c = _crop(score_pool3, upscore_pool4, offset=9) fuse_pool3 = upscore_pool4 + score_pool3c upscore8 = self.upscore8(fuse_pool3) score = _crop(upscore8, input, offset=31) if self.output_last_ft: return score, last_ft else: return score
Example #26
Source File: unet_utils.py From UnsupervisedGeometryAwareRepresentationLearning with GNU General Public License v3.0 | 5 votes |
def forward(self, inputs1, inputs2): outputs2 = self.up(inputs2) offset = outputs2.size()[2] - inputs1.size()[2] padding = 2 * [offset // 2, offset // 2] outputs1 = F.pad(inputs1, padding) return self.conv(torch.cat([outputs1, outputs2], 1))
Example #27
Source File: unet_utils.py From UnsupervisedGeometryAwareRepresentationLearning with GNU General Public License v3.0 | 5 votes |
def forward(self, inputs1, inputs2): outputs2 = self.up(inputs2) offset = outputs2.size()[2] - inputs1.size()[2] padding = 2 * [offset // 2, offset // 2] outputs1 = F.pad(inputs1, padding) return self.conv(torch.cat([outputs1, outputs2], 1))
Example #28
Source File: i3d.py From PyTorchConv3D with Apache License 2.0 | 5 votes |
def forward(self, x): # compute 'same' padding (batch, channel, t, h, w) = x.size() out_t = np.ceil(float(t) / float(self._stride[0])) out_h = np.ceil(float(h) / float(self._stride[1])) out_w = np.ceil(float(w) / float(self._stride[2])) pad_t = self.compute_pad(0, t) pad_h = self.compute_pad(1, h) pad_w = self.compute_pad(2, w) pad_t_f = pad_t // 2 pad_t_b = pad_t - pad_t_f pad_h_f = pad_h // 2 pad_h_b = pad_h - pad_h_f pad_w_f = pad_w // 2 pad_w_b = pad_w - pad_w_f pad = (pad_w_f, pad_w_b, pad_h_f, pad_h_b, pad_t_f, pad_t_b) x = F.pad(x, pad) x = self.conv3d(x) if self._use_batch_norm: x = self.bn(x) if self._activation_fn is not None: x = self._activation_fn(x, inplace=True) return x #################################################################### ####################################################################
Example #29
Source File: fpn.py From seamseg with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _global_pooling(self, x): pooling_size = (min(try_index(self.pooling_size, 0), x.shape[2]), min(try_index(self.pooling_size, 1), x.shape[3])) padding = ( (pooling_size[1] - 1) // 2, (pooling_size[1] - 1) // 2 if pooling_size[1] % 2 == 1 else (pooling_size[1] - 1) // 2 + 1, (pooling_size[0] - 1) // 2, (pooling_size[0] - 1) // 2 if pooling_size[0] % 2 == 1 else (pooling_size[0] - 1) // 2 + 1 ) pool = functional.avg_pool2d(x, pooling_size, stride=1) pool = functional.pad(pool, pad=padding, mode="replicate") return pool
Example #30
Source File: rational_quadratic.py From nsf with MIT License | 5 votes |
def unconstrained_rational_quadratic_spline(inputs, unnormalized_widths, unnormalized_heights, unnormalized_derivatives, inverse=False, tails='linear', tail_bound=1., min_bin_width=DEFAULT_MIN_BIN_WIDTH, min_bin_height=DEFAULT_MIN_BIN_HEIGHT, min_derivative=DEFAULT_MIN_DERIVATIVE): inside_interval_mask = (inputs >= -tail_bound) & (inputs <= tail_bound) outside_interval_mask = ~inside_interval_mask outputs = torch.zeros_like(inputs) logabsdet = torch.zeros_like(inputs) if tails == 'linear': unnormalized_derivatives = F.pad(unnormalized_derivatives, pad=(1, 1)) constant = np.log(np.exp(1 - min_derivative) - 1) unnormalized_derivatives[..., 0] = constant unnormalized_derivatives[..., -1] = constant outputs[outside_interval_mask] = inputs[outside_interval_mask] logabsdet[outside_interval_mask] = 0 else: raise RuntimeError('{} tails are not implemented.'.format(tails)) outputs[inside_interval_mask], logabsdet[inside_interval_mask] = rational_quadratic_spline( inputs=inputs[inside_interval_mask], unnormalized_widths=unnormalized_widths[inside_interval_mask, :], unnormalized_heights=unnormalized_heights[inside_interval_mask, :], unnormalized_derivatives=unnormalized_derivatives[inside_interval_mask, :], inverse=inverse, left=-tail_bound, right=tail_bound, bottom=-tail_bound, top=tail_bound, min_bin_width=min_bin_width, min_bin_height=min_bin_height, min_derivative=min_derivative ) return outputs, logabsdet