1953 lines
115 KiB
Plaintext
1953 lines
115 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"tensor(0.8943)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import torch\n",
|
||
"import torch.nn as nn\n",
|
||
"import torch.nn.functional as F\n",
|
||
"\n",
|
||
"# 假設有3個類別\n",
|
||
"num_classes = 3\n",
|
||
"batch_size = 4\n",
|
||
"\n",
|
||
"# 模擬模型輸出 (未經softmax)\n",
|
||
"# 輸出形狀應為 [batch_size, num_classes]\n",
|
||
"predictions = torch.randn(batch_size, num_classes)\n",
|
||
"\n",
|
||
"# 模擬真實標籤,假設為one-hot編碼\n",
|
||
"# 形狀為 [batch_size, num_classes]\n",
|
||
"targets_one_hot = torch.tensor([\n",
|
||
" [1, 0, 0],\n",
|
||
" [0, 1, 0],\n",
|
||
" [0, 0, 1],\n",
|
||
" [0, 1, 0]\n",
|
||
"], dtype=torch.float32)\n",
|
||
"\n",
|
||
"# 將one-hot編碼的標籤轉換為類別索引\n",
|
||
"# 形狀為 [batch_size]\n",
|
||
"targets = torch.argmax(targets_one_hot, dim=1)\n",
|
||
"\n",
|
||
"# 定義損失函數\n",
|
||
"criterion = nn.CrossEntropyLoss()\n",
|
||
"\n",
|
||
"# 計算損失\n",
|
||
"loss = criterion(predictions, targets)\n",
|
||
"print(loss)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"tensor([[-0.2698, 0.7174, -0.2358],\n",
|
||
" [ 1.4976, -1.1554, 3.3826],\n",
|
||
" [-0.8067, 1.1254, 1.9788],\n",
|
||
" [ 1.3467, 0.7573, -1.5764]])"
|
||
]
|
||
},
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"predictions"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"tensor([0, 1, 2, 1])"
|
||
]
|
||
},
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"targets"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"<generator object <genexpr> at 0x7fd0786385f0>\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(x for x in range(1, 76))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import torch\n",
|
||
"import torch.nn as nn\n",
|
||
"import torch.optim as optim\n",
|
||
"import torchvision.transforms as transforms\n",
|
||
"from torchvision import models\n",
|
||
"import timm\n",
|
||
"\n",
|
||
"\n",
|
||
"class ModifiedXception(nn.Module):\n",
|
||
" def __init__(self, num_classes):\n",
|
||
" super(ModifiedXception, self).__init__()\n",
|
||
" \n",
|
||
" # 加載 Xception 預訓練模型,去掉最後一層 (fc 層)\n",
|
||
" self.base_model = timm.create_model(\n",
|
||
" 'xception', \n",
|
||
" pretrained=True, \n",
|
||
" features_only=True, # 只保留特徵提取部分\n",
|
||
" out_indices=[3] # 選擇特徵層索引(根據模型結構)\n",
|
||
" )\n",
|
||
" \n",
|
||
" # 自定義分類頭\n",
|
||
" self.custom_head = nn.Sequential(\n",
|
||
" nn.AdaptiveAvgPool2d(1), # Global Average Pooling,\n",
|
||
" nn.Flatten(),\n",
|
||
" nn.Linear(728, 368), # Xception 輸出特徵維度為2048\n",
|
||
" nn.ReLU(), # 可選激活函數\n",
|
||
" nn.Linear(368, num_classes),\n",
|
||
" nn.Sigmoid()\n",
|
||
" )\n",
|
||
"\n",
|
||
" # self.base_model.fc = nn.Identity() # 移除原來的 fully connected 層\n",
|
||
" \n",
|
||
" # # 新增全局平均池化層、隱藏層和輸出層\n",
|
||
" # self.global_avg_pool = nn.AdaptiveAvgPool2d(1) # 全局平均池化\n",
|
||
" # self.hidden_layer = nn.Linear(2048, 1370) # 隱藏層,輸入大小取決於 Xception 的輸出大小\n",
|
||
" # self.output_layer = nn.Linear(1370, 2) # 輸出層,依據分類數目設定\n",
|
||
" \n",
|
||
" # # 激活函數與 dropout\n",
|
||
" # self.relu = nn.ReLU()\n",
|
||
" # self.dropout = nn.Dropout(0.6)\n",
|
||
"\n",
|
||
" def forward(self, x):\n",
|
||
" x = self.base_model(x) # Xception 主體\n",
|
||
" return x\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/opt/conda/lib/python3.11/site-packages/timm/models/_factory.py:126: UserWarning: Mapping deprecated model name xception to current legacy_xception.\n",
|
||
" model = create_fn(\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"{'num_chs': 64, 'reduction': 2, 'module': 'act2', 'index': 0}\n",
|
||
"{'num_chs': 128, 'reduction': 4, 'module': 'block2.rep.0', 'index': 1}\n",
|
||
"{'num_chs': 256, 'reduction': 8, 'module': 'block3.rep.0', 'index': 2}\n",
|
||
"{'num_chs': 728, 'reduction': 16, 'module': 'block12.rep.0', 'index': 3}\n",
|
||
"{'num_chs': 2048, 'reduction': 32, 'module': 'act4', 'index': 4}\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"def construct_model():\n",
|
||
" '''決定我這次訓練要用哪個model'''\n",
|
||
" cnn_model = ModifiedXception(3)\n",
|
||
"\n",
|
||
" if torch.cuda.device_count() > 1:\n",
|
||
" cnn_model = nn.DataParallel(cnn_model)\n",
|
||
"\n",
|
||
" cnn_model = cnn_model.to(torch.device('cuda' if torch.cuda.is_available() else 'cpu'))\n",
|
||
" return cnn_model\n",
|
||
"\n",
|
||
"model = construct_model()\n",
|
||
"a = model.base_model.feature_info\n",
|
||
"\n",
|
||
"for b in a:\n",
|
||
" print(b)\n",
|
||
"\n",
|
||
"# last = a[-1]\n",
|
||
"# last_conv_name = last['module'] # 這通常是 PyTorch Module 的名稱\n",
|
||
"\n",
|
||
"# last_layer = dict(model.base_model.named_modules()).get(last_conv_name)\n",
|
||
"# print(f\"最後的卷積層: {last_layer}\")\n",
|
||
"\n",
|
||
"# print(last_conv_name)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" ModifiedXception(\n",
|
||
" (base_model): FeatureHookNet(\n",
|
||
" (body): Xception(\n",
|
||
" (conv1): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), bias=False)\n",
|
||
" (bn1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act1): ReLU(inplace=True)\n",
|
||
" (conv2): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), bias=False)\n",
|
||
" (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act2): ReLU(inplace=True)\n",
|
||
" (block1): Block(\n",
|
||
" (skip): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=64, bias=False)\n",
|
||
" (pointwise): Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (2): ReLU(inplace=True)\n",
|
||
" (3): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (4): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (5): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block2): Block(\n",
|
||
" (skip): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block3): Block(\n",
|
||
" (skip): Conv2d(256, 728, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block4): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block5): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block6): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block7): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block8): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block9): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block10): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block11): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block12): Block(\n",
|
||
" (skip): Conv2d(728, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (conv3): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(1024, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1024, bias=False)\n",
|
||
" (pointwise): Conv2d(1024, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (bn3): BatchNorm2d(1536, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act3): ReLU(inplace=True)\n",
|
||
" (conv4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)\n",
|
||
" (pointwise): Conv2d(1536, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (bn4): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act4): ReLU(inplace=True)\n",
|
||
" (global_pool): SelectAdaptivePool2d(pool_type=avg, flatten=Flatten(start_dim=1, end_dim=-1))\n",
|
||
" (fc): Identity()\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (custom_head): Sequential(\n",
|
||
" (0): AdaptiveAvgPool2d(output_size=1)\n",
|
||
" (1): Flatten(start_dim=1, end_dim=-1)\n",
|
||
" (2): Linear(in_features=728, out_features=368, bias=True)\n",
|
||
" (3): ReLU()\n",
|
||
" (4): Linear(in_features=368, out_features=3, bias=True)\n",
|
||
" (5): Sigmoid()\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model FeatureHookNet(\n",
|
||
" (body): Xception(\n",
|
||
" (conv1): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), bias=False)\n",
|
||
" (bn1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act1): ReLU(inplace=True)\n",
|
||
" (conv2): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), bias=False)\n",
|
||
" (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act2): ReLU(inplace=True)\n",
|
||
" (block1): Block(\n",
|
||
" (skip): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=64, bias=False)\n",
|
||
" (pointwise): Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (2): ReLU(inplace=True)\n",
|
||
" (3): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (4): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (5): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block2): Block(\n",
|
||
" (skip): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block3): Block(\n",
|
||
" (skip): Conv2d(256, 728, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block4): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block5): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block6): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block7): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block8): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block9): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block10): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block11): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block12): Block(\n",
|
||
" (skip): Conv2d(728, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (conv3): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(1024, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1024, bias=False)\n",
|
||
" (pointwise): Conv2d(1024, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (bn3): BatchNorm2d(1536, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act3): ReLU(inplace=True)\n",
|
||
" (conv4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)\n",
|
||
" (pointwise): Conv2d(1536, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (bn4): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act4): ReLU(inplace=True)\n",
|
||
" (global_pool): SelectAdaptivePool2d(pool_type=avg, flatten=Flatten(start_dim=1, end_dim=-1))\n",
|
||
" (fc): Identity()\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body Xception(\n",
|
||
" (conv1): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), bias=False)\n",
|
||
" (bn1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act1): ReLU(inplace=True)\n",
|
||
" (conv2): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), bias=False)\n",
|
||
" (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act2): ReLU(inplace=True)\n",
|
||
" (block1): Block(\n",
|
||
" (skip): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=64, bias=False)\n",
|
||
" (pointwise): Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (2): ReLU(inplace=True)\n",
|
||
" (3): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (4): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (5): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block2): Block(\n",
|
||
" (skip): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block3): Block(\n",
|
||
" (skip): Conv2d(256, 728, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block4): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block5): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block6): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block7): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block8): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block9): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block10): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block11): Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (block12): Block(\n",
|
||
" (skip): Conv2d(728, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" (conv3): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(1024, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1024, bias=False)\n",
|
||
" (pointwise): Conv2d(1024, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (bn3): BatchNorm2d(1536, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act3): ReLU(inplace=True)\n",
|
||
" (conv4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)\n",
|
||
" (pointwise): Conv2d(1536, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (bn4): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (act4): ReLU(inplace=True)\n",
|
||
" (global_pool): SelectAdaptivePool2d(pool_type=avg, flatten=Flatten(start_dim=1, end_dim=-1))\n",
|
||
" (fc): Identity()\n",
|
||
")\n",
|
||
"base_model.body.conv1 Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), bias=False)\n",
|
||
"base_model.body.bn1 BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.act1 ReLU(inplace=True)\n",
|
||
"base_model.body.conv2 Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.bn2 BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.act2 ReLU(inplace=True)\n",
|
||
"base_model.body.block1 Block(\n",
|
||
" (skip): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=64, bias=False)\n",
|
||
" (pointwise): Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (2): ReLU(inplace=True)\n",
|
||
" (3): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (4): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (5): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block1.skip Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
"base_model.body.block1.skipbn BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block1.rep Sequential(\n",
|
||
" (0): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=64, bias=False)\n",
|
||
" (pointwise): Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (2): ReLU(inplace=True)\n",
|
||
" (3): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (4): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (5): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
")\n",
|
||
"base_model.body.block1.rep.0 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=64, bias=False)\n",
|
||
" (pointwise): Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block1.rep.0.conv1 Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=64, bias=False)\n",
|
||
"base_model.body.block1.rep.0.pointwise Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block1.rep.1 BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block1.rep.2 ReLU(inplace=True)\n",
|
||
"base_model.body.block1.rep.3 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block1.rep.3.conv1 Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
"base_model.body.block1.rep.3.pointwise Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block1.rep.4 BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block1.rep.5 MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
"base_model.body.block2 Block(\n",
|
||
" (skip): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block2.skip Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
"base_model.body.block2.skipbn BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block2.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
")\n",
|
||
"base_model.body.block2.rep.0 ReLU()\n",
|
||
"base_model.body.block2.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
" (pointwise): Conv2d(128, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block2.rep.1.conv1 Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)\n",
|
||
"base_model.body.block2.rep.1.pointwise Conv2d(128, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block2.rep.2 BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block2.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block2.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block2.rep.4.conv1 Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
"base_model.body.block2.rep.4.pointwise Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block2.rep.5 BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block2.rep.6 MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
"base_model.body.block3 Block(\n",
|
||
" (skip): Conv2d(256, 728, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block3.skip Conv2d(256, 728, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
"base_model.body.block3.skipbn BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block3.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
")\n",
|
||
"base_model.body.block3.rep.0 ReLU()\n",
|
||
"base_model.body.block3.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
" (pointwise): Conv2d(256, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block3.rep.1.conv1 Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256, bias=False)\n",
|
||
"base_model.body.block3.rep.1.pointwise Conv2d(256, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block3.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block3.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block3.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block3.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block3.rep.4.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block3.rep.5 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block3.rep.6 MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
"base_model.body.block4 Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block4.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
")\n",
|
||
"base_model.body.block4.rep.0 ReLU()\n",
|
||
"base_model.body.block4.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block4.rep.1.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block4.rep.1.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block4.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block4.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block4.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block4.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block4.rep.4.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block4.rep.5 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block4.rep.6 ReLU(inplace=True)\n",
|
||
"base_model.body.block4.rep.7 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block4.rep.7.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block4.rep.7.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block4.rep.8 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block5 Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block5.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
")\n",
|
||
"base_model.body.block5.rep.0 ReLU()\n",
|
||
"base_model.body.block5.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block5.rep.1.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block5.rep.1.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block5.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block5.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block5.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block5.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block5.rep.4.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block5.rep.5 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block5.rep.6 ReLU(inplace=True)\n",
|
||
"base_model.body.block5.rep.7 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block5.rep.7.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block5.rep.7.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block5.rep.8 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block6 Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block6.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
")\n",
|
||
"base_model.body.block6.rep.0 ReLU()\n",
|
||
"base_model.body.block6.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block6.rep.1.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block6.rep.1.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block6.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block6.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block6.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block6.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block6.rep.4.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block6.rep.5 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block6.rep.6 ReLU(inplace=True)\n",
|
||
"base_model.body.block6.rep.7 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block6.rep.7.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block6.rep.7.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block6.rep.8 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block7 Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block7.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
")\n",
|
||
"base_model.body.block7.rep.0 ReLU()\n",
|
||
"base_model.body.block7.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block7.rep.1.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block7.rep.1.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block7.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block7.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block7.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block7.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block7.rep.4.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block7.rep.5 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block7.rep.6 ReLU(inplace=True)\n",
|
||
"base_model.body.block7.rep.7 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block7.rep.7.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block7.rep.7.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block7.rep.8 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block8 Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block8.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
")\n",
|
||
"base_model.body.block8.rep.0 ReLU()\n",
|
||
"base_model.body.block8.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block8.rep.1.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block8.rep.1.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block8.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block8.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block8.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block8.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block8.rep.4.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block8.rep.5 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block8.rep.6 ReLU(inplace=True)\n",
|
||
"base_model.body.block8.rep.7 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block8.rep.7.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block8.rep.7.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block8.rep.8 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block9 Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block9.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
")\n",
|
||
"base_model.body.block9.rep.0 ReLU()\n",
|
||
"base_model.body.block9.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block9.rep.1.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block9.rep.1.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block9.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block9.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block9.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block9.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block9.rep.4.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block9.rep.5 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block9.rep.6 ReLU(inplace=True)\n",
|
||
"base_model.body.block9.rep.7 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block9.rep.7.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block9.rep.7.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block9.rep.8 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block10 Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block10.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
")\n",
|
||
"base_model.body.block10.rep.0 ReLU()\n",
|
||
"base_model.body.block10.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block10.rep.1.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block10.rep.1.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block10.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block10.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block10.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block10.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block10.rep.4.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block10.rep.5 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block10.rep.6 ReLU(inplace=True)\n",
|
||
"base_model.body.block10.rep.7 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block10.rep.7.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block10.rep.7.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block10.rep.8 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block11 Block(\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block11.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): ReLU(inplace=True)\n",
|
||
" (7): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (8): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
")\n",
|
||
"base_model.body.block11.rep.0 ReLU()\n",
|
||
"base_model.body.block11.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block11.rep.1.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block11.rep.1.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block11.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block11.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block11.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block11.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block11.rep.4.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block11.rep.5 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block11.rep.6 ReLU(inplace=True)\n",
|
||
"base_model.body.block11.rep.7 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block11.rep.7.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block11.rep.7.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block11.rep.8 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block12 Block(\n",
|
||
" (skip): Conv2d(728, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
" (skipbn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (rep): Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
" )\n",
|
||
")\n",
|
||
"base_model.body.block12.skip Conv2d(728, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
|
||
"base_model.body.block12.skipbn BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block12.rep Sequential(\n",
|
||
" (0): ReLU()\n",
|
||
" (1): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (2): BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (3): ReLU(inplace=True)\n",
|
||
" (4): SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
" )\n",
|
||
" (5): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
" (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
")\n",
|
||
"base_model.body.block12.rep.0 ReLU()\n",
|
||
"base_model.body.block12.rep.1 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block12.rep.1.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block12.rep.1.pointwise Conv2d(728, 728, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block12.rep.2 BatchNorm2d(728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block12.rep.3 ReLU(inplace=True)\n",
|
||
"base_model.body.block12.rep.4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
" (pointwise): Conv2d(728, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.block12.rep.4.conv1 Conv2d(728, 728, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=728, bias=False)\n",
|
||
"base_model.body.block12.rep.4.pointwise Conv2d(728, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.block12.rep.5 BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.block12.rep.6 MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
|
||
"base_model.body.conv3 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(1024, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1024, bias=False)\n",
|
||
" (pointwise): Conv2d(1024, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.conv3.conv1 Conv2d(1024, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1024, bias=False)\n",
|
||
"base_model.body.conv3.pointwise Conv2d(1024, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.bn3 BatchNorm2d(1536, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.act3 ReLU(inplace=True)\n",
|
||
"base_model.body.conv4 SeparableConv2d(\n",
|
||
" (conv1): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)\n",
|
||
" (pointwise): Conv2d(1536, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
")\n",
|
||
"base_model.body.conv4.conv1 Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)\n",
|
||
"base_model.body.conv4.pointwise Conv2d(1536, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
|
||
"base_model.body.bn4 BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
|
||
"base_model.body.act4 ReLU(inplace=True)\n",
|
||
"base_model.body.global_pool SelectAdaptivePool2d(pool_type=avg, flatten=Flatten(start_dim=1, end_dim=-1))\n",
|
||
"base_model.body.global_pool.pool AdaptiveAvgPool2d(output_size=1)\n",
|
||
"base_model.body.global_pool.flatten Flatten(start_dim=1, end_dim=-1)\n",
|
||
"base_model.body.fc Identity()\n",
|
||
"custom_head Sequential(\n",
|
||
" (0): AdaptiveAvgPool2d(output_size=1)\n",
|
||
" (1): Flatten(start_dim=1, end_dim=-1)\n",
|
||
" (2): Linear(in_features=728, out_features=368, bias=True)\n",
|
||
" (3): ReLU()\n",
|
||
" (4): Linear(in_features=368, out_features=3, bias=True)\n",
|
||
" (5): Sigmoid()\n",
|
||
")\n",
|
||
"custom_head.0 AdaptiveAvgPool2d(output_size=1)\n",
|
||
"custom_head.1 Flatten(start_dim=1, end_dim=-1)\n",
|
||
"custom_head.2 Linear(in_features=728, out_features=368, bias=True)\n",
|
||
"custom_head.3 ReLU()\n",
|
||
"custom_head.4 Linear(in_features=368, out_features=3, bias=True)\n",
|
||
"custom_head.5 Sigmoid()\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"for c in model.named_modules():\n",
|
||
" print(c)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"Conv2d(1536, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)"
|
||
]
|
||
},
|
||
"execution_count": 23,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"model.base_model.body.conv4.pointwise"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[(array([0, 2, 3, 4, 5, 6]), array([1, 7])), (array([0, 1, 2, 4, 5, 7]), array([3, 6])), (array([0, 1, 3, 4, 6, 7]), array([2, 5])), (array([0, 1, 2, 3, 5, 6, 7]), array([4])), (array([1, 2, 3, 4, 5, 6, 7]), array([0]))]\n",
|
||
"0 [0 2 3 4 5 6] [1 7]\n",
|
||
"1 [0 1 3 4 6 7] [2 5]\n",
|
||
"2 [1 2 4 5 6 7] [0 3]\n",
|
||
"3 [0 1 2 3 5 6 7] [4]\n",
|
||
"4 [0 1 2 3 4 5 7] [6]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.model_selection import KFold\n",
|
||
"\n",
|
||
"k = KFold(n_splits = 5, shuffle = True)\n",
|
||
"a = [1, 2, 3, 4 ,5, 6,7, 8]\n",
|
||
"\n",
|
||
"for d, (b, c) in enumerate(k.split(a)):\n",
|
||
" print(d, b, c)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from torch.utils.data import Subset, DataLoader, Dataset\n",
|
||
"\n",
|
||
"class ListDataset(Dataset):\n",
|
||
" def __init__(self, data_list, labels_list, status):\n",
|
||
" self.data = data_list\n",
|
||
" self.labels = labels_list\n",
|
||
" self.status = status\n",
|
||
"\n",
|
||
" def __len__(self):\n",
|
||
" return len(self.data)\n",
|
||
"\n",
|
||
" def __getitem__(self, idx):\n",
|
||
" sample = self.data[idx] \n",
|
||
"\n",
|
||
" if self.status:\n",
|
||
" from Image_Process.Image_Generator import Image_generator\n",
|
||
" ImageGenerator = Image_generator(\"\", \"\", 12)\n",
|
||
" Transform = ImageGenerator.Generator_Content(5)\n",
|
||
" sample = Transform(sample)\n",
|
||
"\n",
|
||
" label = self.labels[idx]\n",
|
||
" return sample, label\n",
|
||
"\n",
|
||
"k = KFold(n_splits = 5, shuffle = True)\n",
|
||
"a = [1, 2, 3, 4 ,5, 6,7, 8]\n",
|
||
"label = [10, 20, 30, 40, 50,60, 70, 80]\n",
|
||
"\n",
|
||
"f = ListDataset(a, label, True)\n",
|
||
"\n",
|
||
"for d, (b, c) in enumerate(k.split(a)):\n",
|
||
" # Create training and validation subsets for this fold\n",
|
||
" train_subset = torch.utils.data.Subset(training_dataset, train_idx)\n",
|
||
" val_subset = torch.utils.data.Subset(training_dataset, val_idx)\n",
|
||
"\n"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "base",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.11.11"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|