Python 3.8.11 (default, Aug 3 2021, 15:09:35)
Type "copyright", "credits" or "license" for more information.
IPython 7.22.0 -- An enhanced Interactive Python.
Restarting kernel...
In [1]: runfile('/home/min/a/tibrayev/RESEARCH/active_fable/fable_v2_falcon/FALcon_collect_samples_cub_imagenet.py', wdir='/home/min/a/tibrayev/RESEARCH/active_fable/fable_v2_falcon')
/home/min/a/tibrayev/miniconda3/envs/torch_1.9_torchvision_10.0/lib/python3.8/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
conv1.weight
bn1.weight
bn1.bias
bn1.running_mean
bn1.running_var
bn1.num_batches_tracked
layer1.0.conv1.weight
layer1.0.bn1.weight
layer1.0.bn1.bias
layer1.0.bn1.running_mean
layer1.0.bn1.running_var
layer1.0.bn1.num_batches_tracked
layer1.0.conv2.weight
layer1.0.bn2.weight
layer1.0.bn2.bias
layer1.0.bn2.running_mean
layer1.0.bn2.running_var
layer1.0.bn2.num_batches_tracked
layer1.0.conv3.weight
layer1.0.bn3.weight
layer1.0.bn3.bias
layer1.0.bn3.running_mean
layer1.0.bn3.running_var
layer1.0.bn3.num_batches_tracked
layer1.0.downsample.0.weight
layer1.0.downsample.1.weight
layer1.0.downsample.1.bias
layer1.0.downsample.1.running_mean
layer1.0.downsample.1.running_var
layer1.0.downsample.1.num_batches_tracked
layer1.1.conv1.weight
layer1.1.bn1.weight
layer1.1.bn1.bias
layer1.1.bn1.running_mean
layer1.1.bn1.running_var
layer1.1.bn1.num_batches_tracked
layer1.1.conv2.weight
layer1.1.bn2.weight
layer1.1.bn2.bias
layer1.1.bn2.running_mean
layer1.1.bn2.running_var
layer1.1.bn2.num_batches_tracked
layer1.1.conv3.weight
layer1.1.bn3.weight
layer1.1.bn3.bias
layer1.1.bn3.running_mean
layer1.1.bn3.running_var
layer1.1.bn3.num_batches_tracked
layer1.2.conv1.weight
layer1.2.bn1.weight
layer1.2.bn1.bias
layer1.2.bn1.running_mean
layer1.2.bn1.running_var
layer1.2.bn1.num_batches_tracked
layer1.2.conv2.weight
layer1.2.bn2.weight
layer1.2.bn2.bias
layer1.2.bn2.running_mean
layer1.2.bn2.running_var
layer1.2.bn2.num_batches_tracked
layer1.2.conv3.weight
layer1.2.bn3.weight
layer1.2.bn3.bias
layer1.2.bn3.running_mean
layer1.2.bn3.running_var
layer1.2.bn3.num_batches_tracked
layer2.0.conv1.weight
layer2.0.bn1.weight
layer2.0.bn1.bias
layer2.0.bn1.running_mean
layer2.0.bn1.running_var
layer2.0.bn1.num_batches_tracked
layer2.0.conv2.weight
layer2.0.bn2.weight
layer2.0.bn2.bias
layer2.0.bn2.running_mean
layer2.0.bn2.running_var
layer2.0.bn2.num_batches_tracked
layer2.0.conv3.weight
layer2.0.bn3.weight
layer2.0.bn3.bias
layer2.0.bn3.running_mean
layer2.0.bn3.running_var
layer2.0.bn3.num_batches_tracked
layer2.0.downsample.0.weight
layer2.0.downsample.1.weight
layer2.0.downsample.1.bias
layer2.0.downsample.1.running_mean
layer2.0.downsample.1.running_var
layer2.0.downsample.1.num_batches_tracked
layer2.1.conv1.weight
layer2.1.bn1.weight
layer2.1.bn1.bias
layer2.1.bn1.running_mean
layer2.1.bn1.running_var
layer2.1.bn1.num_batches_tracked
layer2.1.conv2.weight
layer2.1.bn2.weight
layer2.1.bn2.bias
layer2.1.bn2.running_mean
layer2.1.bn2.running_var
layer2.1.bn2.num_batches_tracked
layer2.1.conv3.weight
layer2.1.bn3.weight
layer2.1.bn3.bias
layer2.1.bn3.running_mean
layer2.1.bn3.running_var
layer2.1.bn3.num_batches_tracked
layer2.2.conv1.weight
layer2.2.bn1.weight
layer2.2.bn1.bias
layer2.2.bn1.running_mean
layer2.2.bn1.running_var
layer2.2.bn1.num_batches_tracked
layer2.2.conv2.weight
layer2.2.bn2.weight
layer2.2.bn2.bias
layer2.2.bn2.running_mean
layer2.2.bn2.running_var
layer2.2.bn2.num_batches_tracked
layer2.2.conv3.weight
layer2.2.bn3.weight
layer2.2.bn3.bias
layer2.2.bn3.running_mean
layer2.2.bn3.running_var
layer2.2.bn3.num_batches_tracked
layer2.3.conv1.weight
layer2.3.bn1.weight
layer2.3.bn1.bias
layer2.3.bn1.running_mean
layer2.3.bn1.running_var
layer2.3.bn1.num_batches_tracked
layer2.3.conv2.weight
layer2.3.bn2.weight
layer2.3.bn2.bias
layer2.3.bn2.running_mean
layer2.3.bn2.running_var
layer2.3.bn2.num_batches_tracked
layer2.3.conv3.weight
layer2.3.bn3.weight
layer2.3.bn3.bias
layer2.3.bn3.running_mean
layer2.3.bn3.running_var
layer2.3.bn3.num_batches_tracked
layer3.0.conv1.weight
layer3.0.bn1.weight
layer3.0.bn1.bias
layer3.0.bn1.running_mean
layer3.0.bn1.running_var
layer3.0.bn1.num_batches_tracked
layer3.0.conv2.weight
layer3.0.bn2.weight
layer3.0.bn2.bias
layer3.0.bn2.running_mean
layer3.0.bn2.running_var
layer3.0.bn2.num_batches_tracked
layer3.0.conv3.weight
layer3.0.bn3.weight
layer3.0.bn3.bias
layer3.0.bn3.running_mean
layer3.0.bn3.running_var
layer3.0.bn3.num_batches_tracked
layer3.0.downsample.0.weight
layer3.0.downsample.1.weight
layer3.0.downsample.1.bias
layer3.0.downsample.1.running_mean
layer3.0.downsample.1.running_var
layer3.0.downsample.1.num_batches_tracked
layer3.1.conv1.weight
layer3.1.bn1.weight
layer3.1.bn1.bias
layer3.1.bn1.running_mean
layer3.1.bn1.running_var
layer3.1.bn1.num_batches_tracked
layer3.1.conv2.weight
layer3.1.bn2.weight
layer3.1.bn2.bias
layer3.1.bn2.running_mean
layer3.1.bn2.running_var
layer3.1.bn2.num_batches_tracked
layer3.1.conv3.weight
layer3.1.bn3.weight
layer3.1.bn3.bias
layer3.1.bn3.running_mean
layer3.1.bn3.running_var
layer3.1.bn3.num_batches_tracked
layer3.2.conv1.weight
layer3.2.bn1.weight
layer3.2.bn1.bias
layer3.2.bn1.running_mean
layer3.2.bn1.running_var
layer3.2.bn1.num_batches_tracked
layer3.2.conv2.weight
layer3.2.bn2.weight
layer3.2.bn2.bias
layer3.2.bn2.running_mean
layer3.2.bn2.running_var
layer3.2.bn2.num_batches_tracked
layer3.2.conv3.weight
layer3.2.bn3.weight
layer3.2.bn3.bias
layer3.2.bn3.running_mean
layer3.2.bn3.running_var
layer3.2.bn3.num_batches_tracked
layer3.3.conv1.weight
layer3.3.bn1.weight
layer3.3.bn1.bias
layer3.3.bn1.running_mean
layer3.3.bn1.running_var
layer3.3.bn1.num_batches_tracked
layer3.3.conv2.weight
layer3.3.bn2.weight
layer3.3.bn2.bias
layer3.3.bn2.running_mean
layer3.3.bn2.running_var
layer3.3.bn2.num_batches_tracked
layer3.3.conv3.weight
layer3.3.bn3.weight
layer3.3.bn3.bias
layer3.3.bn3.running_mean
layer3.3.bn3.running_var
layer3.3.bn3.num_batches_tracked
layer3.4.conv1.weight
layer3.4.bn1.weight
layer3.4.bn1.bias
layer3.4.bn1.running_mean
layer3.4.bn1.running_var
layer3.4.bn1.num_batches_tracked
layer3.4.conv2.weight
layer3.4.bn2.weight
layer3.4.bn2.bias
layer3.4.bn2.running_mean
layer3.4.bn2.running_var
layer3.4.bn2.num_batches_tracked
layer3.4.conv3.weight
layer3.4.bn3.weight
layer3.4.bn3.bias
layer3.4.bn3.running_mean
layer3.4.bn3.running_var
layer3.4.bn3.num_batches_tracked
layer3.5.conv1.weight
layer3.5.bn1.weight
layer3.5.bn1.bias
layer3.5.bn1.running_mean
layer3.5.bn1.running_var
layer3.5.bn1.num_batches_tracked
layer3.5.conv2.weight
layer3.5.bn2.weight
layer3.5.bn2.bias
layer3.5.bn2.running_mean
layer3.5.bn2.running_var
layer3.5.bn2.num_batches_tracked
layer3.5.conv3.weight
layer3.5.bn3.weight
layer3.5.bn3.bias
layer3.5.bn3.running_mean
layer3.5.bn3.running_var
layer3.5.bn3.num_batches_tracked
layer4.0.conv1.weight
layer4.0.bn1.weight
layer4.0.bn1.bias
layer4.0.bn1.running_mean
layer4.0.bn1.running_var
layer4.0.bn1.num_batches_tracked
layer4.0.conv2.weight
layer4.0.bn2.weight
layer4.0.bn2.bias
layer4.0.bn2.running_mean
layer4.0.bn2.running_var
layer4.0.bn2.num_batches_tracked
layer4.0.conv3.weight
layer4.0.bn3.weight
layer4.0.bn3.bias
layer4.0.bn3.running_mean
layer4.0.bn3.running_var
layer4.0.bn3.num_batches_tracked
layer4.0.downsample.0.weight
layer4.0.downsample.1.weight
layer4.0.downsample.1.bias
layer4.0.downsample.1.running_mean
layer4.0.downsample.1.running_var
layer4.0.downsample.1.num_batches_tracked
layer4.1.conv1.weight
layer4.1.bn1.weight
layer4.1.bn1.bias
layer4.1.bn1.running_mean
layer4.1.bn1.running_var
layer4.1.bn1.num_batches_tracked
layer4.1.conv2.weight
layer4.1.bn2.weight
layer4.1.bn2.bias
layer4.1.bn2.running_mean
layer4.1.bn2.running_var
layer4.1.bn2.num_batches_tracked
layer4.1.conv3.weight
layer4.1.bn3.weight
layer4.1.bn3.bias
layer4.1.bn3.running_mean
layer4.1.bn3.running_var
layer4.1.bn3.num_batches_tracked
layer4.2.conv1.weight
layer4.2.bn1.weight
layer4.2.bn1.bias
layer4.2.bn1.running_mean
layer4.2.bn1.running_var
layer4.2.bn1.num_batches_tracked
layer4.2.conv2.weight
layer4.2.bn2.weight
layer4.2.bn2.bias
layer4.2.bn2.running_mean
layer4.2.bn2.running_var
layer4.2.bn2.num_batches_tracked
layer4.2.conv3.weight
layer4.2.bn3.weight
layer4.2.bn3.bias
layer4.2.bn3.running_mean
layer4.2.bn3.running_var
layer4.2.bn3.num_batches_tracked
fc.weight
fc.bias
Classification model:
ResNet(
(conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
(maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
(layer1): Sequential(
(0): Bottleneck(
(conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
(downsample): Sequential(
(0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): Bottleneck(
(conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
(2): Bottleneck(
(conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
)
(layer2): Sequential(
(0): Bottleneck(
(conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
(downsample): Sequential(
(0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): Bottleneck(
(conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
(2): Bottleneck(
(conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
(3): Bottleneck(
(conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
)
(layer3): Sequential(
(0): Bottleneck(
(conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
(downsample): Sequential(
(0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): Bottleneck(
(conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
(2): Bottleneck(
(conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
(3): Bottleneck(
(conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
(4): Bottleneck(
(conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
(5): Bottleneck(
(conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
)
(layer4): Sequential(
(0): Bottleneck(
(conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
(downsample): Sequential(
(0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): Bottleneck(
(conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
(2): Bottleneck(
(conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
)
(avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
(fc): Linear(in_features=2048, out_features=200, bias=True)
)
Selected VGG configuration (vgg11) was loaded from checkpoint: ./results/cub/wsol_method_PSOL/trained_on_trainval_split_evaluated_on_test_split/arch_vgg11_pretrained_init_normalization_none_seed_16/model.pth
FALcon (localization) model:
VGG(
(features): Sequential(
(0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(1): ReLU(inplace=True)
(2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(3): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(4): ReLU(inplace=True)
(5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(6): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(7): ReLU(inplace=True)
(8): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(9): ReLU(inplace=True)
(10): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(11): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(12): ReLU(inplace=True)
(13): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(14): ReLU(inplace=True)
(15): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(16): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(17): ReLU(inplace=True)
(18): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(19): ReLU(inplace=True)
(20): AdaptiveAvgPool2d(output_size=(1, 1))
)
(fovea_control): Sequential(
(0): Linear(in_features=512, out_features=256, bias=True)
(1): ReLU(inplace=True)
(2): Linear(in_features=256, out_features=128, bias=True)
(3): ReLU(inplace=True)
(4): Linear(in_features=128, out_features=4, bias=True)
)
(saccade_control): Sequential(
(0): Linear(in_features=512, out_features=256, bias=True)
(1): ReLU(inplace=True)
(2): Linear(in_features=256, out_features=1, bias=True)
)
)
/home/min/a/tibrayev/miniconda3/envs/torch_1.9_torchvision_10.0/lib/python3.8/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at /opt/conda/conda-bld/pytorch_1623448278899/work/c10/core/TensorImpl.h:1156.)
return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)
100/5794 requested samples processed!
200/5794 requested samples processed!
300/5794 requested samples processed!
400/5794 requested samples processed!
500/5794 requested samples processed!
600/5794 requested samples processed!
700/5794 requested samples processed!
800/5794 requested samples processed!
900/5794 requested samples processed!
1000/5794 requested samples processed!
1100/5794 requested samples processed!
1200/5794 requested samples processed!
1300/5794 requested samples processed!
1400/5794 requested samples processed!
1500/5794 requested samples processed!
1600/5794 requested samples processed!
1700/5794 requested samples processed!
1800/5794 requested samples processed!
1900/5794 requested samples processed!
2000/5794 requested samples processed!
2100/5794 requested samples processed!
2200/5794 requested samples processed!
2300/5794 requested samples processed!
2400/5794 requested samples processed!
2500/5794 requested samples processed!
2600/5794 requested samples processed!
2700/5794 requested samples processed!
2800/5794 requested samples processed!
2900/5794 requested samples processed!
3000/5794 requested samples processed!
3100/5794 requested samples processed!
3200/5794 requested samples processed!
3300/5794 requested samples processed!
3400/5794 requested samples processed!
3500/5794 requested samples processed!
3600/5794 requested samples processed!
3700/5794 requested samples processed!
3800/5794 requested samples processed!
3900/5794 requested samples processed!
4000/5794 requested samples processed!
4100/5794 requested samples processed!
4200/5794 requested samples processed!
4300/5794 requested samples processed!
4400/5794 requested samples processed!
4500/5794 requested samples processed!
4600/5794 requested samples processed!
4700/5794 requested samples processed!
4800/5794 requested samples processed!
4900/5794 requested samples processed!
5000/5794 requested samples processed!
5100/5794 requested samples processed!
5200/5794 requested samples processed!
5300/5794 requested samples processed!
5400/5794 requested samples processed!
5500/5794 requested samples processed!
5600/5794 requested samples processed!
5700/5794 requested samples processed!
5794/5794 requested samples processed!
In [2]: config_3_copy
Out[2]:
{'seed': 16,
'dataset': 'cub',
'dataset_dir': '/home/nano01/a/tibrayev/CUB_200-2011_raw',
'num_classes': 200,
'in_num_channels': 3,
'full_res_img_size': (256, 256),
'correct_imbalance': False,
'selected_attributes': ['all'],
'num_attributes': 312,
'gt_bbox_dir': None,
'wsol_method': 'PSOL',
'pseudo_bbox_dir': '../PSOL/results/CUB_train_set/predicted_bounding_boxes/psol_predicted_bounding_boxes.txt',
'loader_type': 'test',
'cls_model_name': 'resnet50',
'cls_pretrained': True,
'cls_ckpt_dir': '../PSOL/results/PSOL/CUB/checkpoint_classification_cub_ddt_resnet50_99.pth.tar',
'save_dir': './results/cub/wsol_method_PSOL/trained_on_trainval_split_evaluated_on_test_split/arch_vgg11_pretrained_init_normalization_none_seed_16/',
'model_name': 'vgg11',
'initialize': 'resume',
'ckpt_dir': './results/cub/wsol_method_PSOL/trained_on_trainval_split_evaluated_on_test_split/arch_vgg11_pretrained_init_normalization_none_seed_16/model.pth',
'batch_size_eval': 50,
'init_factual': 'pretrained',
'downsampling': 'M',
'fc1': 256,
'fc2': 128,
'dropout': 0.5,
'norm': 'none',
'init_weights': True,
'adaptive_avg_pool_out': (1, 1),
'saccade_fc1': 256,
'saccade_dropout': False,
'num_glimpses': 16,
'fovea_control_neurons': 4,
'glimpse_size_grid': (40, 40),
'glimpse_size_init': (40, 40),
'glimpse_size_fixed': (96, 96),
'glimpse_size_step': (20, 20),
'glimpse_change_th': 0.5,
'iou_th': 0.5,
'ratio_wrong_init_glimpses': 0.5,
'switch_location_th': 0.2,
'objectness_based_nms_th': 0.5,
'confidence_based_nms_th': 0.5}
In [3]: len(collected_samples)
Out[3]: 5794
In [4]: ## For WSOL results: Top 1 predictions
In [5]: acc_correct_class = 0
...: acc_localization = 0
...: acc_class_localized = 0
...: total_samples = 0
...: for sample_id, sample_stats in collected_samples.items():
...: target_bbox = sample_stats["gt_bboxes"]
...: target_class = sample_stats["gt_labels"]
...:
...: # collect WSOL results statistics
...: total_samples += 1
...:
...: is_correct_label = []
...: is_correct_box = []
...: cnt_predictions = 0
...: for prediction in sample_stats["predictions"]:
...: for t_class, t_bbox in zip(target_class, target_bbox):
...: if prediction["prediction_label"] == t_class:
...: is_correct_label.append(True)
...: else:
...: is_correct_label.append(False)
...: iou = region_iou(prediction["final_glimpse_loc_and_dim"], t_bbox.unsqueeze(0))
...: if (iou >= 0.5).item():
...: is_correct_box.append(True)
...: else:
...: is_correct_box.append(False)
...: cnt_predictions += 1
...: if cnt_predictions == 1: # limit the number of predictions per image
...: break
...:
...: is_correct_label = torch.tensor(is_correct_label)
...: is_correct_box = torch.tensor(is_correct_box)
...: acc_correct_class += torch.any(is_correct_label).sum().item()
...: acc_localization += torch.any(is_correct_box).sum().item()
...: acc_class_localized += torch.any(torch.logical_and(is_correct_label, is_correct_box)).sum().item()
...: print("TEST (WSOL) STATS: Top-1 Cls: {:.4f} [{}/{}] | GT Loc: {:.4f} [{}/{}] | Top-1 Loc: {:.4f} [{}/{}]\n".format(
...: (100.*acc_correct_class/total_samples), acc_correct_class, total_samples,
...: (100.*acc_localization/total_samples), acc_localization, total_samples,
...: (100.*acc_class_localized/total_samples), acc_class_localized, total_samples))
TEST (WSOL) STATS: Top-1 Cls: 70.4522 [4082/5794] | GT Loc: 88.2982 [5116/5794] | Top-1 Loc: 62.8236 [3640/5794]
In [6]: ## For WSOL results: Top 3 predictions
In [7]: acc_correct_class = 0
...: acc_localization = 0
...: acc_class_localized = 0
...: total_samples = 0
...: for sample_id, sample_stats in collected_samples.items():
...: target_bbox = sample_stats["gt_bboxes"]
...: target_class = sample_stats["gt_labels"]
...:
...: # collect WSOL results statistics
...: total_samples += 1
...:
...: is_correct_label = []
...: is_correct_box = []
...: cnt_predictions = 0
...: for prediction in sample_stats["predictions"]:
...: for t_class, t_bbox in zip(target_class, target_bbox):
...: if prediction["prediction_label"] == t_class:
...: is_correct_label.append(True)
...: else:
...: is_correct_label.append(False)
...: iou = region_iou(prediction["final_glimpse_loc_and_dim"], t_bbox.unsqueeze(0))
...: if (iou >= 0.5).item():
...: is_correct_box.append(True)
...: else:
...: is_correct_box.append(False)
...: cnt_predictions += 1
...: if cnt_predictions == 3: # limit the number of predictions per image
...: break
...:
...: is_correct_label = torch.tensor(is_correct_label)
...: is_correct_box = torch.tensor(is_correct_box)
...: acc_correct_class += torch.any(is_correct_label).sum().item()
...: acc_localization += torch.any(is_correct_box).sum().item()
...: acc_class_localized += torch.any(torch.logical_and(is_correct_label, is_correct_box)).sum().item()
...: print("TEST (WSOL) STATS: Top-1 Cls: {:.4f} [{}/{}] | GT Loc: {:.4f} [{}/{}] | Top-1 Loc: {:.4f} [{}/{}]\n".format(
...: (100.*acc_correct_class/total_samples), acc_correct_class, total_samples,
...: (100.*acc_localization/total_samples), acc_localization, total_samples,
...: (100.*acc_class_localized/total_samples), acc_class_localized, total_samples))
TEST (WSOL) STATS: Top-1 Cls: 70.6938 [4096/5794] | GT Loc: 89.3511 [5177/5794] | Top-1 Loc: 63.4967 [3679/5794]
In [8]: ## For WSOL results: Top 5 predictions
In [9]: acc_correct_class = 0
...: acc_localization = 0
...: acc_class_localized = 0
...: total_samples = 0
...: for sample_id, sample_stats in collected_samples.items():
...: target_bbox = sample_stats["gt_bboxes"]
...: target_class = sample_stats["gt_labels"]
...:
...: # collect WSOL results statistics
...: total_samples += 1
...:
...: is_correct_label = []
...: is_correct_box = []
...: cnt_predictions = 0
...: for prediction in sample_stats["predictions"]:
...: for t_class, t_bbox in zip(target_class, target_bbox):
...: if prediction["prediction_label"] == t_class:
...: is_correct_label.append(True)
...: else:
...: is_correct_label.append(False)
...: iou = region_iou(prediction["final_glimpse_loc_and_dim"], t_bbox.unsqueeze(0))
...: if (iou >= 0.5).item():
...: is_correct_box.append(True)
...: else:
...: is_correct_box.append(False)
...: cnt_predictions += 1
...: if cnt_predictions == 5: # limit the number of predictions per image
...: break
...:
...: is_correct_label = torch.tensor(is_correct_label)
...: is_correct_box = torch.tensor(is_correct_box)
...: acc_correct_class += torch.any(is_correct_label).sum().item()
...: acc_localization += torch.any(is_correct_box).sum().item()
...: acc_class_localized += torch.any(torch.logical_and(is_correct_label, is_correct_box)).sum().item()
...: print("TEST (WSOL) STATS: Top-1 Cls: {:.4f} [{}/{}] | GT Loc: {:.4f} [{}/{}] | Top-1 Loc: {:.4f} [{}/{}]\n".format(
...: (100.*acc_correct_class/total_samples), acc_correct_class, total_samples,
...: (100.*acc_localization/total_samples), acc_localization, total_samples,
...: (100.*acc_class_localized/total_samples), acc_class_localized, total_samples))
TEST (WSOL) STATS: Top-1 Cls: 70.6938 [4096/5794] | GT Loc: 89.3511 [5177/5794] | Top-1 Loc: 63.4967 [3679/5794]
In [10]: ## For WSOL results: Unlimited predictions
In [11]: acc_correct_class = 0
...: acc_localization = 0
...: acc_class_localized = 0
...: total_samples = 0
...: for sample_id, sample_stats in collected_samples.items():
...: target_bbox = sample_stats["gt_bboxes"]
...: target_class = sample_stats["gt_labels"]
...:
...: # collect WSOL results statistics
...: total_samples += 1
...:
...: is_correct_label = []
...: is_correct_box = []
...: cnt_predictions = 0
...: for prediction in sample_stats["predictions"]:
...: for t_class, t_bbox in zip(target_class, target_bbox):
...: if prediction["prediction_label"] == t_class:
...: is_correct_label.append(True)
...: else:
...: is_correct_label.append(False)
...: iou = region_iou(prediction["final_glimpse_loc_and_dim"], t_bbox.unsqueeze(0))
...: if (iou >= 0.5).item():
...: is_correct_box.append(True)
...: else:
...: is_correct_box.append(False)
...: cnt_predictions += 1
...: #if cnt_predictions == 5: # limit the number of predictions per image
...: # break
...:
...: is_correct_label = torch.tensor(is_correct_label)
...: is_correct_box = torch.tensor(is_correct_box)
...: acc_correct_class += torch.any(is_correct_label).sum().item()
...: acc_localization += torch.any(is_correct_box).sum().item()
...: acc_class_localized += torch.any(torch.logical_and(is_correct_label, is_correct_box)).sum().item()
...: print("TEST (WSOL) STATS: Top-1 Cls: {:.4f} [{}/{}] | GT Loc: {:.4f} [{}/{}] | Top-1 Loc: {:.4f} [{}/{}]\n".format(
...: (100.*acc_correct_class/total_samples), acc_correct_class, total_samples,
...: (100.*acc_localization/total_samples), acc_localization, total_samples,
...: (100.*acc_class_localized/total_samples), acc_class_localized, total_samples))
TEST (WSOL) STATS: Top-1 Cls: 70.6938 [4096/5794] | GT Loc: 89.3511 [5177/5794] | Top-1 Loc: 63.4967 [3679/5794]
In [12]: