Python torch.nn.ReplicationPad1d() Examples
The following are 4
code examples of torch.nn.ReplicationPad1d().
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
, or try the search function
.
Example #1
Source File: nn_transformer.py From Self-Supervised-Speech-Pretraining-and-Representation-Learning with MIT License | 6 votes |
def upsample(self, x, input_len): # Compute padding to compromise the downsample loss left_over = input_len % self.dr if left_over % 2 == 0: left_pad = left_over // 2 right_pad = left_pad else: left_pad = left_over // 2 right_pad = left_over // 2 + 1 x = self.tile_representations(x) # padding x = x.permute(0, 2, 1).contiguous() # (B, T, D) -> (B, D, T) padding = nn.ReplicationPad1d((left_pad, right_pad)) x = padding(x) x = x.permute(0, 2, 1).contiguous() # (B, D, T) -> (B, T, D) return x
Example #2
Source File: wav2vec.py From fairseq with MIT License | 4 votes |
def __init__( self, conv_layers, embed, dropout, skip_connections, residual_scale, non_affine_group_norm, conv_bias, zero_pad, activation, ): super().__init__() def block(n_in, n_out, k, stride): # padding dims only really make sense for stride = 1 ka = k // 2 kb = ka - 1 if k % 2 == 0 else ka pad = ( ZeroPad1d(ka + kb, 0) if zero_pad else nn.ReplicationPad1d((ka + kb, 0)) ) return nn.Sequential( pad, nn.Conv1d(n_in, n_out, k, stride=stride, bias=conv_bias), nn.Dropout(p=dropout), norm_block(False, n_out, affine=not non_affine_group_norm), activation, ) in_d = embed self.conv_layers = nn.ModuleList() self.residual_proj = nn.ModuleList() for dim, k, stride in conv_layers: if in_d != dim and skip_connections: self.residual_proj.append(nn.Conv1d(in_d, dim, 1, bias=False)) else: self.residual_proj.append(None) self.conv_layers.append(block(in_d, dim, k, stride)) in_d = dim self.conv_layers = nn.Sequential(*self.conv_layers) self.skip_connections = skip_connections self.residual_scale = math.sqrt(residual_scale)
Example #3
Source File: wav2vec.py From attn2d with MIT License | 4 votes |
def __init__( self, conv_layers, embed, dropout, skip_connections, residual_scale, non_affine_group_norm, conv_bias, zero_pad, activation, ): super().__init__() def block(n_in, n_out, k, stride): # padding dims only really make sense for stride = 1 ka = k // 2 kb = ka - 1 if k % 2 == 0 else ka pad = ( ZeroPad1d(ka + kb, 0) if zero_pad else nn.ReplicationPad1d((ka + kb, 0)) ) return nn.Sequential( pad, nn.Conv1d(n_in, n_out, k, stride=stride, bias=conv_bias), nn.Dropout(p=dropout), norm_block(False, n_out, affine=not non_affine_group_norm), activation, ) in_d = embed self.conv_layers = nn.ModuleList() self.residual_proj = nn.ModuleList() for dim, k, stride in conv_layers: if in_d != dim and skip_connections: self.residual_proj.append(nn.Conv1d(in_d, dim, 1, bias=False)) else: self.residual_proj.append(None) self.conv_layers.append(block(in_d, dim, k, stride)) in_d = dim self.conv_layers = nn.Sequential(*self.conv_layers) self.skip_connections = skip_connections self.residual_scale = math.sqrt(residual_scale)
Example #4
Source File: nn_transformer.py From Self-Supervised-Speech-Pretraining-and-Representation-Learning with MIT License | 4 votes |
def _forward(self, x): if self.permute_input: x = x.permute(1, 0, 2).contiguous() # (T, B, D) -> (B, T, D) input_len = x.shape[0] else: input_len = x.shape[1] # Compute padding to compromise the downsample loss left_over = input_len % self.dr if left_over % 2 == 0: left_pad = left_over // 2 right_pad = left_pad else: left_pad = left_over // 2 right_pad = left_over // 2 + 1 # Model forwarding spec_stacked, pos_enc, attn_mask = self.process_input_data(x) # x shape: (B, T, D) x = self.model(spec_stacked, pos_enc, attn_mask, output_all_encoded_layers=self.weighted_sum or self.select_layer != -1) # (B, T, D) or # (N, B, T, D) # Apply weighted sum if self.weighted_sum: if type(x) is list: x = torch.stack(x) softmax_weight = nn.functional.softmax(self.weight, dim=-1) B, T, D = x.shape[1], x.shape[2], x.shape[3] x = x.reshape(self.num_layers, -1) x = torch.matmul(softmax_weight, x).reshape(B, T, D) # Select a specific layer elif self.select_layer != -1: x = x[self.select_layer] if self.spec_aug and not self.spec_aug_prev and self.model.training: x = spec_augment(x, mask_T=70, mask_F=86, num_T=2, num_F=2, p=1.0) # (B, T, D) # If using a downsampling model, apply tile and padding if x.shape[1] != input_len: x = self.tile_representations(x) # padding x = x.permute(0, 2, 1).contiguous() # (B, T, D) -> (B, D, T) padding = nn.ReplicationPad1d((left_pad, right_pad)) x = padding(x) if self.permute_input: x = x.permute(2, 0, 1).contiguous() # (B, D, T) -> (T, B, D) else: x = x.permute(0, 2, 1).contiguous() # (B, D, T) -> (B, T, D) # If not using a downsampling model, permute to output elif self.permute_input: x = x.permute(1, 0, 2).contiguous() # (B, T, D) -> (T, B, D) # else: (B, T, D) return x