Python torch.nn.AdaptiveAvgPool3d() Examples
The following are 30
code examples of torch.nn.AdaptiveAvgPool3d().
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: r3d.py From GAN_Review with MIT License | 6 votes |
def __init__(self, block, layers, num_classes=400, num_channels=3, decomposed=True): self.inplanes = 64 super(R3D, self).__init__() self.decomposed = decomposed self.conv1 = make_conv(num_channels, 64, middle_planes=45, kernel_size=(3, 7, 7), stride=(1, 2, 2), decomposed=decomposed) self.bn1 = nn.BatchNorm3d(64) self.relu = nn.ReLU(inplace=True) # self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) self.layer1 = self._make_layer(block, 64, layers[0]) self.layer2 = self._make_layer(block, 128, layers[1], downsample=True) self.layer3 = self._make_layer(block, 256, layers[2], downsample=True) self.layer4 = self._make_layer(block, 512, layers[3], downsample=True) self.avgpool = nn.AdaptiveAvgPool3d((1, 1, 1)) self.fc = nn.Linear(512 * block.expansion, num_classes) for m in self.modules(): if isinstance(m, nn.Conv3d): torch.nn.init.kaiming_normal_(m.weight, nonlinearity='relu') elif isinstance(m, nn.BatchNorm2d): m.weight.data.fill_(1) m.bias.data.zero_()
Example #2
Source File: slowfast_spatial_temporal_module.py From mmaction with Apache License 2.0 | 6 votes |
def __init__(self, adaptive_pool=True, spatial_type='avg', spatial_size=1, temporal_size=1): super(SlowFastSpatialTemporalModule, self).__init__() self.adaptive_pool = adaptive_pool assert spatial_type in ['avg'] self.spatial_type = spatial_type self.spatial_size = spatial_size if not isinstance(spatial_size, int) else (spatial_size, spatial_size) self.temporal_size = temporal_size self.pool_size = (self.temporal_size, ) + self.spatial_size if self.adaptive_pool: if self.spatial_type == 'avg': self.op = nn.AdaptiveAvgPool3d(self.pool_size) else: raise NotImplementedError
Example #3
Source File: skunit.py From Magic-VNet with MIT License | 6 votes |
def __init__(self, channels, branch=2, ratio=4, stride=1, groups=1, min_channels=32, norm_type=nn.BatchNorm3d, act_type=nn.ReLU): super(SKConv3d, self).__init__() dim = max(channels // ratio, min_channels) self.branch = branch self.convs = nn.ModuleList([]) for i in range(branch): self.convs.append( ConvBnAct3d(channels, channels, kernel_size=3 + i * 2, padding=i + 1, stride=stride, groups=groups, norm_type=norm_type, act_type=act_type) ) self.avg_pool = nn.AdaptiveAvgPool3d(1) self.fc = nn.Linear(channels, dim) self.fcs = nn.ModuleList([]) for i in range(branch): self.fcs.append(nn.Linear(dim, channels)) self.softmax = nn.Softmax(dim=1)
Example #4
Source File: utils.py From Attention-Gated-Networks with MIT License | 6 votes |
def __init__(self, in_size, out_size, is_batchnorm): super(UnetGatingSignal3, self).__init__() self.fmap_size = (4, 4, 4) if is_batchnorm: self.conv1 = nn.Sequential(nn.Conv3d(in_size, in_size//2, (1,1,1), (1,1,1), (0,0,0)), nn.BatchNorm3d(in_size//2), nn.ReLU(inplace=True), nn.AdaptiveAvgPool3d(output_size=self.fmap_size), ) self.fc1 = nn.Linear(in_features=(in_size//2) * self.fmap_size[0] * self.fmap_size[1] * self.fmap_size[2], out_features=out_size, bias=True) else: self.conv1 = nn.Sequential(nn.Conv3d(in_size, in_size//2, (1,1,1), (1,1,1), (0,0,0)), nn.ReLU(inplace=True), nn.AdaptiveAvgPool3d(output_size=self.fmap_size), ) self.fc1 = nn.Linear(in_features=(in_size//2) * self.fmap_size[0] * self.fmap_size[1] * self.fmap_size[2], out_features=out_size, bias=True) # initialise the blocks for m in self.children(): init_weights(m, init_type='kaiming')
Example #5
Source File: models.py From STE-NVAN with MIT License | 6 votes |
def __init__(self,non_layers=[0,1,1,1],stripes=[16,16,16,16],non_type='normal',temporal=None): super(Resnet50_NL,self).__init__() original = models.resnet50(pretrained=True).state_dict() if non_type == 'normal': self.backbone = res.ResNet_Video_nonlocal(last_stride=1,non_layers=non_layers) elif non_type == 'stripe': self.backbone = res.ResNet_Video_nonlocal_stripe(last_stride = 1, non_layers=non_layers, stripes=stripes) elif non_type == 'hr': self.backbone = res.ResNet_Video_nonlocal_hr(last_stride = 1, non_layers=non_layers, stripes=stripes) elif non_type == 'stripe_hr': self.backbone = res.ResNet_Video_nonlocal_stripe_hr(last_stride = 1, non_layers=non_layers, stripes=stripes) for key in original: if key.find('fc') != -1: continue self.backbone.state_dict()[key].copy_(original[key]) del original self.temporal = temporal if self.temporal == 'Done': self.avgpool = nn.AdaptiveAvgPool3d(1)
Example #6
Source File: S3D_G.py From action-recognition-models-pytorch with MIT License | 6 votes |
def __init__(self,in_channel,out_channel): super(S3D_G_block, self).__init__() # out_channel=[1x1x1,3x3x3_reduce,3x3x3,3x3x3_reduce,3x3x3,pooling_reduce] self.branch1 = BasicConv3d(in_channel,out_channel[0], kernel_size=(3,1,1), stride=1, padding=(1,0,0)) self.branch2 = nn.Sequential( BasicConv3d(in_channel, out_channel[1], kernel_size=1, stride=1), BasicConv3d(out_channel[1], out_channel[1],kernel_size=(1,3,3), stride=1, padding=(0,1,1)), BasicConv3d(out_channel[1], out_channel[2], kernel_size=(3, 1, 1), stride=1, padding=(1, 0, 0)) ) self.branch3 = nn.Sequential( BasicConv3d(in_channel, out_channel[3], kernel_size=1, stride=1), BasicConv3d(out_channel[3], out_channel[3], kernel_size=(1, 3, 3), stride=1, padding= (0, 1, 1)), BasicConv3d(out_channel[3], out_channel[4], kernel_size=(3, 1, 1), stride=1, padding=(1, 0, 0)) ) self.branch4 = nn.Sequential( nn.MaxPool3d(kernel_size=3,stride=1,padding=1), BasicConv3d(in_channel, out_channel[5], kernel_size=(3,1,1), stride=1,padding=(1,0,0)) ) self.squeeze = nn.AdaptiveAvgPool3d(1) # we replace weight matrix with 1D conv to reduce the para self.excitation = nn.Conv1d(1, 1, (3,1,1), stride=1,padding=(1,0,0)) self.sigmoid=nn.Sigmoid()
Example #7
Source File: r3d_nl.py From GAN_Review with MIT License | 6 votes |
def __init__(self, block, layers, num_classes=400, num_channels=3, decomposed=True): self.inplanes = 64 super(R3D, self).__init__() self.decomposed = decomposed self.conv1 = make_conv(num_channels, 64, middle_planes=45, kernel_size=(3, 7, 7), stride=(1, 2, 2), decomposed=decomposed) self.bn1 = nn.BatchNorm3d(64) self.relu = nn.ReLU(inplace=True) # self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) self.layer1 = self._make_layer(block, 64, layers[0]) self.layer2 = self._make_layer(block, 128, layers[1], downsample=True) self.layer3 = self._make_layer(block, 256, layers[2], downsample=True) self.layer4 = self._make_layer(block, 512, layers[3], downsample=True) self.avgpool = nn.AdaptiveAvgPool3d((1, 1, 1)) self.fc = nn.Linear(512 * block.expansion, num_classes) for m in self.modules(): if isinstance(m, nn.Conv3d): torch.nn.init.kaiming_normal_(m.weight, nonlinearity='relu') elif isinstance(m, nn.BatchNorm2d): m.weight.data.fill_(1) m.bias.data.zero_()
Example #8
Source File: slowfast.py From pretorched-x with MIT License | 6 votes |
def slow_path(self, input, lateral): x = self.slow_conv1(input) x = self.slow_bn1(x) x = self.slow_relu(x) x = self.slow_maxpool(x) x = torch.cat([x, lateral[0]], dim=1) x = self.slow_res2(x) x = torch.cat([x, lateral[1]], dim=1) x = self.slow_res3(x) x = torch.cat([x, lateral[2]], dim=1) x = self.slow_res4(x) x = torch.cat([x, lateral[3]], dim=1) x = self.slow_res5(x) x = nn.AdaptiveAvgPool3d(1)(x) x = x.view(-1, x.size(1)) return x
Example #9
Source File: slowfast_my.py From GAN_Review with MIT License | 6 votes |
def SlowPath(self, input, lateral): x = self.slow_conv1(input) x = self.slow_bn1(x) x = self.slow_relu(x) x = self.slow_maxpool(x) x = torch.cat([x, lateral[0]],dim=1) x = self.slow_res2(x) x = torch.cat([x, lateral[1]],dim=1) x = self.slow_res3(x) x = torch.cat([x, lateral[2]],dim=1) x = self.slow_res4(x) x = torch.cat([x, lateral[3]],dim=1) x = self.slow_res5(x) #x = nn.AdaptiveAvgPool3d(1)(x) #x = x.view(-1, x.size(1)) return x
Example #10
Source File: slowfast.py From pretorched-x with MIT License | 6 votes |
def forward(self, input): x = self.input_transform(input) x = self.conv1(x) x = self.bn1(x) x = self.relu(x) x = self.maxpool(x) x = self.res2(x) x = self.res3(x) x = self.res4(x) x = self.res5(x) x = nn.AdaptiveAvgPool3d(1)(x) x = x.view(-1, x.size(1)) x = self.dropout(x) x = self.last_linear(x) return x
Example #11
Source File: slowfast.py From pretorched-x with MIT License | 6 votes |
def forward(self, input, lateral): x = self.conv1(input) x = self.bn1(x) x = self.relu(x) x = self.maxpool(x) x = torch.cat([x, lateral[0]], dim=1) x = self.res2(x) x = torch.cat([x, lateral[1]], dim=1) x = self.res3(x) x = torch.cat([x, lateral[2]], dim=1) x = self.res4(x) x = torch.cat([x, lateral[3]], dim=1) x = self.res5(x) x = nn.AdaptiveAvgPool3d(1)(x) x = x.view(-1, x.size(1)) return x
Example #12
Source File: wideresnet3D.py From pretorched-x with MIT License | 6 votes |
def __init__(self, block, layers, k=1, shortcut_type='B', num_classes=400): self.inplanes = 64 super(WideResNet, self).__init__() self.conv1 = nn.Conv3d(3, 64, kernel_size=7, stride=(1, 2, 2), padding=(3, 3, 3), bias=False) self.bn1 = nn.BatchNorm3d(64) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool3d(kernel_size=(3, 3, 3), stride=2, padding=1) self.layer1 = self._make_layer(block, 64 * k, layers[0], shortcut_type) self.layer2 = self._make_layer(block, 128 * k, layers[1], shortcut_type, stride=2) self.layer3 = self._make_layer(block, 256 * k, layers[2], shortcut_type, stride=2) self.layer4 = self._make_layer(block, 512 * k, layers[3], shortcut_type, stride=2) self.avgpool = nn.AdaptiveAvgPool3d(1) self.fc = nn.Linear(512 * k * block.expansion, num_classes) for m in self.modules(): if isinstance(m, nn.Conv3d): nn.init.kaiming_normal_(m.weight, mode='fan_out') elif isinstance(m, nn.BatchNorm3d): m.weight.data.fill_(1) m.bias.data.zero_()
Example #13
Source File: nonlocalnet.py From pretorched-x with MIT License | 6 votes |
def __init__(self, block, layers, nonlocal_layers, shortcut_type='A', num_classes=339): self.inplanes = 64 super().__init__() self.conv1 = nn.Conv3d(3, 64, kernel_size=7, stride=(1, 2, 2), padding=(3, 3, 3), bias=False) self.bn1 = nn.BatchNorm3d(64) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool3d(kernel_size=(3, 3, 3), stride=2, padding=1) self.layer1 = self._make_layer(block, 64, layers[0], nonlocal_layers[0], shortcut_type) self.layer2 = self._make_layer(block, 128, layers[1], nonlocal_layers[1], shortcut_type, stride=2) self.layer3 = self._make_layer(block, 256, layers[2], nonlocal_layers[2], shortcut_type, stride=2) self.layer4 = self._make_layer(block, 512, layers[3], nonlocal_layers[3], shortcut_type, stride=2) self.avgpool = nn.AdaptiveAvgPool3d(1) self.last_linear = nn.Linear(512 * block.expansion, num_classes) self.init_weights()
Example #14
Source File: resnext3D.py From pretorched-x with MIT License | 6 votes |
def __init__(self, block, layers, shortcut_type='B', cardinality=32, num_classes=400): self.inplanes = 64 super(ResNeXt3D, self).__init__() self.conv1 = nn.Conv3d(3, 64, kernel_size=7, stride=(1, 2, 2), padding=(3, 3, 3), bias=False) self.bn1 = nn.BatchNorm3d(64) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool3d(kernel_size=(3, 3, 3), stride=2, padding=1) self.layer1 = self._make_layer(block, 128, layers[0], shortcut_type, cardinality) self.layer2 = self._make_layer(block, 256, layers[1], shortcut_type, cardinality, stride=2) self.layer3 = self._make_layer(block, 512, layers[2], shortcut_type, cardinality, stride=2) self.layer4 = self._make_layer(block, 1024, layers[3], shortcut_type, cardinality, stride=2) self.avgpool = nn.AdaptiveAvgPool3d(1) self.fc = nn.Linear(cardinality * 32 * block.expansion, num_classes) for m in self.modules(): if isinstance(m, nn.Conv3d): m.weight = nn.init.kaiming_normal(m.weight, mode='fan_out') elif isinstance(m, nn.BatchNorm3d): m.weight.data.fill_(1) m.bias.data.zero_()
Example #15
Source File: squeeze_and_excitation_3D.py From squeeze_and_excitation with MIT License | 5 votes |
def __init__(self, num_channels, reduction_ratio=2): """ :param num_channels: No of input channels :param reduction_ratio: By how much should the num_channels should be reduced """ super(ChannelSELayer3D, self).__init__() self.avg_pool = nn.AdaptiveAvgPool3d(1) num_channels_reduced = num_channels // reduction_ratio self.reduction_ratio = reduction_ratio self.fc1 = nn.Linear(num_channels, num_channels_reduced, bias=True) self.fc2 = nn.Linear(num_channels_reduced, num_channels, bias=True) self.relu = nn.ReLU() self.sigmoid = nn.Sigmoid()
Example #16
Source File: R3D_model.py From pytorch-video-recognition with MIT License | 5 votes |
def __init__(self, layer_sizes, block_type=SpatioTemporalResBlock): super(R3DNet, self).__init__() # first conv, with stride 1x2x2 and kernel size 3x7x7 self.conv1 = SpatioTemporalConv(3, 64, [3, 7, 7], stride=[1, 2, 2], padding=[1, 3, 3]) # output of conv2 is same size as of conv1, no downsampling needed. kernel_size 3x3x3 self.conv2 = SpatioTemporalResLayer(64, 64, 3, layer_sizes[0], block_type=block_type) # each of the final three layers doubles num_channels, while performing downsampling # inside the first block self.conv3 = SpatioTemporalResLayer(64, 128, 3, layer_sizes[1], block_type=block_type, downsample=True) self.conv4 = SpatioTemporalResLayer(128, 256, 3, layer_sizes[2], block_type=block_type, downsample=True) self.conv5 = SpatioTemporalResLayer(256, 512, 3, layer_sizes[3], block_type=block_type, downsample=True) # global average pooling of the output self.pool = nn.AdaptiveAvgPool3d(1)
Example #17
Source File: R2Plus1D_model.py From pytorch-video-recognition with MIT License | 5 votes |
def __init__(self, layer_sizes, block_type=SpatioTemporalResBlock): super(R2Plus1DNet, self).__init__() # first conv, with stride 1x2x2 and kernel size 1x7x7 self.conv1 = SpatioTemporalConv(3, 64, (1, 7, 7), stride=(1, 2, 2), padding=(0, 3, 3), first_conv=True) # output of conv2 is same size as of conv1, no downsampling needed. kernel_size 3x3x3 self.conv2 = SpatioTemporalResLayer(64, 64, 3, layer_sizes[0], block_type=block_type) # each of the final three layers doubles num_channels, while performing downsampling # inside the first block self.conv3 = SpatioTemporalResLayer(64, 128, 3, layer_sizes[1], block_type=block_type, downsample=True) self.conv4 = SpatioTemporalResLayer(128, 256, 3, layer_sizes[2], block_type=block_type, downsample=True) self.conv5 = SpatioTemporalResLayer(256, 512, 3, layer_sizes[3], block_type=block_type, downsample=True) # global average pooling of the output self.pool = nn.AdaptiveAvgPool3d(1)
Example #18
Source File: simple_spatial_temporal_module.py From mmaction with Apache License 2.0 | 5 votes |
def __init__(self, spatial_type='avg', spatial_size=7, temporal_size=1): super(SimpleSpatialTemporalModule, self).__init__() assert spatial_type in ['avg', 'max'] self.spatial_type = spatial_type self.spatial_size = spatial_size if spatial_size != -1: self.spatial_size = (spatial_size, spatial_size) self.temporal_size = temporal_size assert not (self.spatial_size == -1) ^ (self.temporal_size == -1) if self.temporal_size == -1 and self.spatial_size == -1: self.pool_size = (1, 1, 1) if self.spatial_type == 'avg': self.pool_func = nn.AdaptiveAvgPool3d(self.pool_size) if self.spatial_type == 'max': self.pool_func = nn.AdaptiveMaxPool3d(self.pool_size) else: self.pool_size = (self.temporal_size, ) + self.spatial_size if self.spatial_type == 'avg': self.pool_func = nn.AvgPool3d(self.pool_size, stride=1, padding=0) if self.spatial_type == 'max': self.pool_func = nn.MaxPool3d(self.pool_size, stride=1, padding=0)
Example #19
Source File: flops_counter.py From Efficient-Segmentation-Networks with MIT License | 5 votes |
def is_supported_instance(module): if isinstance(module, (torch.nn.Conv1d, torch.nn.Conv2d, torch.nn.Conv3d, torch.nn.ReLU, torch.nn.PReLU, torch.nn.ELU, \ torch.nn.LeakyReLU, torch.nn.ReLU6, torch.nn.Linear, \ torch.nn.MaxPool2d, torch.nn.AvgPool2d, torch.nn.BatchNorm2d, \ torch.nn.Upsample, nn.AdaptiveMaxPool2d, nn.AdaptiveAvgPool2d, \ torch.nn.MaxPool1d, torch.nn.AvgPool1d, torch.nn.BatchNorm1d, \ nn.AdaptiveMaxPool1d, nn.AdaptiveAvgPool1d, \ nn.ConvTranspose2d, torch.nn.BatchNorm3d, torch.nn.MaxPool3d, torch.nn.AvgPool3d, nn.AdaptiveMaxPool3d, nn.AdaptiveAvgPool3d)): return True return False
Example #20
Source File: models.py From moments_models with BSD 2-Clause "Simplified" License | 5 votes |
def __init__(self, block, layers, shortcut_type='B', num_classes=339): self.inplanes = 64 super(ResNet3D, self).__init__() self.conv1 = self.Conv3d(3, 64, kernel_size=7, stride=(1, 2, 2), padding=(3, 3, 3), bias=False) self.bn1 = nn.BatchNorm3d(64) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool3d(kernel_size=(3, 3, 3), stride=2, padding=1) self.layer1 = self._make_layer(block, 64, layers[0], shortcut_type) self.layer2 = self._make_layer(block, 128, layers[1], shortcut_type, stride=2) self.layer3 = self._make_layer(block, 256, layers[2], shortcut_type, stride=2) self.layer4 = self._make_layer(block, 512, layers[3], shortcut_type, stride=2) self.avgpool = nn.AdaptiveAvgPool3d(1) self.fc = nn.Linear(512 * block.expansion, num_classes) self.init_weights()
Example #21
Source File: squeeze_excitation.py From Magic-VNet with MIT License | 5 votes |
def __init__(self, num_channels, reduction_ratio=2, act_type=nn.ReLU): """ :param num_channels: No of input channels :param reduction_ratio: By how much should the num_channels should be reduced """ super(ChannelSELayer3D, self).__init__() self.avg_pool = nn.AdaptiveAvgPool3d(1) num_channels_reduced = num_channels // reduction_ratio self.reduction_ratio = reduction_ratio self.fc1 = nn.Linear(num_channels, num_channels_reduced, bias=True) self.fc2 = nn.Linear(num_channels_reduced, num_channels, bias=True) self.act = act_type() self.sigmoid = nn.Sigmoid()
Example #22
Source File: layers_se.py From DeepSEED-3D-ConvNets-for-Pulmonary-Nodule-Detection with MIT License | 5 votes |
def __init__(self, channel, reduction=16): super(SELayer, self).__init__() self.avg_pool = nn.AdaptiveAvgPool3d(1) self.fc = nn.Sequential( nn.Linear(channel, channel // reduction), nn.ReLU(inplace=True), nn.Linear(channel // reduction, channel), nn.Sigmoid() )
Example #23
Source File: layers_se.py From DeepSEED-3D-ConvNets-for-Pulmonary-Nodule-Detection with MIT License | 5 votes |
def __init__(self, channel, reduction=16): super(SELayer, self).__init__() self.avg_pool = nn.AdaptiveAvgPool3d(1) self.fc = nn.Sequential( nn.Linear(channel, channel // reduction), nn.ReLU(inplace=True), nn.Linear(channel // reduction, channel), nn.Sigmoid() )
Example #24
Source File: pre_act_resnet_3d.py From GAN_Review with MIT License | 5 votes |
def __init__(self, block, layers, sample_size, sample_duration, shortcut_type='B', num_classes=400): self.inplanes = 64 super(PreActivationResNet, self).__init__() self.conv1 = nn.Conv3d( 3, 64, kernel_size=(7, 7, 7), stride=(2, 2, 2), padding=(1, 3, 3), bias=False) self.bn1 = nn.BatchNorm3d(64) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool3d(kernel_size=(3, 3, 3), stride=2, padding=1) self.layer1 = self._make_layer(block, 64, layers[0], shortcut_type) self.layer2 = self._make_layer( block, 128, layers[1], shortcut_type, stride=2) self.layer3 = self._make_layer( block, 256, layers[2], shortcut_type, stride=2) self.layer4 = self._make_layer( block, 512, layers[3], shortcut_type, stride=2) last_duration = int(math.ceil(sample_duration / 16)) last_size = int(math.ceil(sample_size / 32)) self.avgpool = nn.AdaptiveAvgPool3d(1) self.fc = nn.Linear(512 * block.expansion, num_classes) for m in self.modules(): if isinstance(m, nn.Conv3d): m.weight = nn.init.kaiming_normal(m.weight, mode='fan_out') elif isinstance(m, nn.BatchNorm3d): m.weight.data.fill_(1) m.bias.data.zero_()
Example #25
Source File: slowfast_my.py From GAN_Review with MIT License | 5 votes |
def FastPath(self, input): lateral = [] x = self.fast_conv1(input) x = self.fast_bn1(x) x = self.fast_relu(x) pool1 = self.fast_maxpool(x) lateral_p = self.lateral_p1(pool1) lateral.append(lateral_p) res2 = self.fast_res2(pool1) lateral_res2 = self.lateral_res2(res2) lateral.append(lateral_res2) res3 = self.fast_res3(res2) lateral_res3 = self.lateral_res3(res3) lateral.append(lateral_res3) res4 = self.fast_res4(res3) lateral_res4 = self.lateral_res4(res4) lateral.append(lateral_res4) x = self.fast_res5(res4) b, c, t, h, w = x.size() x = x.permute(0, 1, 3, 4, 2).contiguous().view(b, c*h*w, t) x = nn.AdaptiveAvgPool1d(1)(x) x = x.view(b, c, h, w).unsqueeze(2) #x = nn.AdaptiveAvgPool3d(1)(res5) #x = x.view(-1, x.size(1)) return x, lateral
Example #26
Source File: network.py From R2Plus1D-PyTorch with MIT License | 5 votes |
def __init__(self, layer_sizes, block_type=SpatioTemporalResBlock): super(R2Plus1DNet, self).__init__() # first conv, with stride 1x2x2 and kernel size 3x7x7 self.conv1 = SpatioTemporalConv(3, 64, [3, 7, 7], stride=[1, 2, 2], padding=[1, 3, 3]) # output of conv2 is same size as of conv1, no downsampling needed. kernel_size 3x3x3 self.conv2 = SpatioTemporalResLayer(64, 64, 3, layer_sizes[0], block_type=block_type) # each of the final three layers doubles num_channels, while performing downsampling # inside the first block self.conv3 = SpatioTemporalResLayer(64, 128, 3, layer_sizes[1], block_type=block_type, downsample=True) self.conv4 = SpatioTemporalResLayer(128, 256, 3, layer_sizes[2], block_type=block_type, downsample=True) self.conv5 = SpatioTemporalResLayer(256, 512, 3, layer_sizes[3], block_type=block_type, downsample=True) # global average pooling of the output self.pool = nn.AdaptiveAvgPool3d(1)
Example #27
Source File: hidden_for_roi2.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def forward(self,fast_input,slow_input): fast_output=self.fast_res5(fast_input) slow_output=self.slow_res5(slow_input) x1 = nn.AdaptiveAvgPool3d(1)(fast_output) x2 = nn.AdaptiveAvgPool3d(1)(slow_output) x1 = x1.view(-1, x1.size(1)) x2 = x2.view(-1, x2.size(1)) x = torch.cat([x1, x2], dim=1) return x
Example #28
Source File: slowfast.py From pretorched-x with MIT License | 5 votes |
def forward(self, input): x = self.input_transform(input) x = self.conv1(x) x = self.bn1(x) x = self.relu(x) pool1 = self.maxpool(x) res2 = self.res2(pool1) res3 = self.res3(res2) res4 = self.res4(res3) res5 = self.res5(res4) x = nn.AdaptiveAvgPool3d(1)(res5) x = x.view(-1, x.size(1)) x = self.dropout(x) x = self.last_linear(x) return x
Example #29
Source File: slowfast.py From pretorched-x with MIT License | 5 votes |
def fast_path(self, input): lateral = [] x = self.fast_conv1(input) x = self.fast_bn1(x) x = self.fast_relu(x) pool1 = self.fast_maxpool(x) lateral_p = self.lateral_p1(pool1) lateral.append(lateral_p) res2 = self.fast_res2(pool1) lateral_res2 = self.lateral_res2(res2) lateral.append(lateral_res2) res3 = self.fast_res3(res2) lateral_res3 = self.lateral_res3(res3) lateral.append(lateral_res3) res4 = self.fast_res4(res3) lateral_res4 = self.lateral_res4(res4) lateral.append(lateral_res4) res5 = self.fast_res5(res4) x = nn.AdaptiveAvgPool3d(1)(res5) x = x.view(-1, x.size(1)) return x, lateral
Example #30
Source File: resnet3D.py From pretorched-x with MIT License | 5 votes |
def __init__(self, block, layers, shortcut_type='B', num_classes=339): self.inplanes = 64 super(ResNet3D, self).__init__() self.conv1 = self.Conv3d(3, 64, kernel_size=7, stride=(1, 2, 2), padding=(3, 3, 3), bias=False) self.bn1 = nn.BatchNorm3d(64) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool3d(kernel_size=(3, 3, 3), stride=2, padding=1) self.layer1 = self._make_layer(block, 64, layers[0], shortcut_type) self.layer2 = self._make_layer(block, 128, layers[1], shortcut_type, stride=2) self.layer3 = self._make_layer(block, 256, layers[2], shortcut_type, stride=2) self.layer4 = self._make_layer(block, 512, layers[3], shortcut_type, stride=2) self.avgpool = nn.AdaptiveAvgPool3d(1) self.fc = nn.Linear(512 * block.expansion, num_classes) self.init_weights()