{"cells":[{"cell_type":"code","execution_count":1,"id":"84170154","metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","execution":{"iopub.execute_input":"2025-07-18T06:49:08.082848Z","iopub.status.busy":"2025-07-18T06:49:08.082605Z","iopub.status.idle":"2025-07-18T06:49:09.651089Z","shell.execute_reply":"2025-07-18T06:49:09.650253Z"},"papermill":{"duration":1.574707,"end_time":"2025-07-18T06:49:09.652359","exception":false,"start_time":"2025-07-18T06:49:08.077652","status":"completed"},"tags":[]},"outputs":[{"name":"stdout","output_type":"stream","text":["/kaggle/input/dogs-vs-cats-redux-kernels-edition/sample_submission.csv\n","/kaggle/input/dogs-vs-cats-redux-kernels-edition/train.zip\n","/kaggle/input/dogs-vs-cats-redux-kernels-edition/test.zip\n"]}],"source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session"},{"cell_type":"code","execution_count":2,"id":"ed580ffb","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:09.66047Z","iopub.status.busy":"2025-07-18T06:49:09.65995Z","iopub.status.idle":"2025-07-18T06:49:21.092983Z","shell.execute_reply":"2025-07-18T06:49:21.09238Z"},"papermill":{"duration":11.438278,"end_time":"2025-07-18T06:49:21.094358","exception":false,"start_time":"2025-07-18T06:49:09.65608","status":"completed"},"tags":[]},"outputs":[],"source":"import pandas as pd\nimport os, glob, time, copy, zipfile\nfrom PIL import Image\nfrom sklearn.model_selection import train_test_split\nfrom tqdm import tqdm\nimport torch\nimport torch.nn as nn\nimport torch.optim as optim\nimport torch.utils.data as data\nimport torch.nn.functional as F\nfrom torchvision import models, transforms\nimport matplotlib.pyplot as plt"},{"cell_type":"markdown","id":"68afdcf5","metadata":{"papermill":{"duration":0.003092,"end_time":"2025-07-18T06:49:21.101188","exception":false,"start_time":"2025-07-18T06:49:21.098096","status":"completed"},"tags":[]},"source":"## ハイパーパラメータの設定"},{"cell_type":"code","execution_count":3,"id":"3b1dd2b9","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:21.108521Z","iopub.status.busy":"2025-07-18T06:49:21.108161Z","iopub.status.idle":"2025-07-18T06:49:21.181269Z","shell.execute_reply":"2025-07-18T06:49:21.180694Z"},"papermill":{"duration":0.078055,"end_time":"2025-07-18T06:49:21.182352","exception":false,"start_time":"2025-07-18T06:49:21.104297","status":"completed"},"tags":[]},"outputs":[],"source":"size = 224\nmean = (0.485, 0.456, 0.406)\nstd = (0.229, 0.224, 0.225)\nbatch_size = 32\nnum_epoch = 25\nlearning_rate = 0.0001\npatience = 5\ndevice = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")"},{"cell_type":"markdown","id":"17d11da4","metadata":{"papermill":{"duration":0.00313,"end_time":"2025-07-18T06:49:21.188935","exception":false,"start_time":"2025-07-18T06:49:21.185805","status":"completed"},"tags":[]},"source":"## 画像の前処理クラス\n"},{"cell_type":"code","execution_count":4,"id":"0bfb273f","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:21.196767Z","iopub.status.busy":"2025-07-18T06:49:21.196162Z","iopub.status.idle":"2025-07-18T06:49:21.201312Z","shell.execute_reply":"2025-07-18T06:49:21.200594Z"},"papermill":{"duration":0.010231,"end_time":"2025-07-18T06:49:21.202386","exception":false,"start_time":"2025-07-18T06:49:21.192155","status":"completed"},"tags":[]},"outputs":[],"source":"class ImageTransform():\n    def __init__(self, resize, mean, std):\n        self.data_transform = {\n            'train': transforms.Compose([\n                transforms.Resize((resize, resize)),\n                transforms.RandomHorizontalFlip(),\n                transforms.RandomRotation(10),\n                transforms.ColorJitter(brightness=0.2, contrast=0.2),\n                transforms.ToTensor(),\n                transforms.Normalize(mean, std)\n            ]),\n            'val': transforms.Compose([\n                transforms.Resize((resize, resize)),\n                transforms.ToTensor(),\n                transforms.Normalize(mean, std)\n            ])\n        }\n    \n    def __call__(self, img, phase):\n        return self.data_transform[phase](img)"},{"cell_type":"markdown","id":"da3e21a7","metadata":{"papermill":{"duration":0.003062,"end_time":"2025-07-18T06:49:21.208696","exception":false,"start_time":"2025-07-18T06:49:21.205634","status":"completed"},"tags":[]},"source":"## データセットクラス"},{"cell_type":"code","execution_count":5,"id":"6670fda0","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:21.217012Z","iopub.status.busy":"2025-07-18T06:49:21.216795Z","iopub.status.idle":"2025-07-18T06:49:21.221389Z","shell.execute_reply":"2025-07-18T06:49:21.22081Z"},"papermill":{"duration":0.009669,"end_time":"2025-07-18T06:49:21.222585","exception":false,"start_time":"2025-07-18T06:49:21.212916","status":"completed"},"tags":[]},"outputs":[],"source":"class DogCatDataset(data.Dataset):\n    def __init__(self, file_list, labels, transform=None, phase='train'):\n        self.file_list = file_list\n        self.labels = labels\n        self.transform = transform\n        self.phase = phase\n\n    def __len__(self):\n        return len(self.file_list)\n\n    def __getitem__(self, index):\n        img_path = self.file_list[index]\n        img = Image.open(img_path).convert(\"RGB\")\n        img = self.transform(img, self.phase)\n        label = self.labels[index]\n        return img, label"},{"cell_type":"markdown","id":"33ecfb43","metadata":{"papermill":{"duration":0.003108,"end_time":"2025-07-18T06:49:21.228931","exception":false,"start_time":"2025-07-18T06:49:21.225823","status":"completed"},"tags":[]},"source":"## データをリセット\nコマンドで初期化させる\n"},{"cell_type":"code","execution_count":6,"id":"156c9865","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:21.236631Z","iopub.status.busy":"2025-07-18T06:49:21.235983Z","iopub.status.idle":"2025-07-18T06:49:21.496841Z","shell.execute_reply":"2025-07-18T06:49:21.495803Z"},"papermill":{"duration":0.266193,"end_time":"2025-07-18T06:49:21.498315","exception":false,"start_time":"2025-07-18T06:49:21.232122","status":"completed"},"tags":[]},"outputs":[],"source":"!rm -rf ./data\n!rm -f ./best_model.pth"},{"cell_type":"markdown","id":"2ba92912","metadata":{"papermill":{"duration":0.002955,"end_time":"2025-07-18T06:49:21.50466","exception":false,"start_time":"2025-07-18T06:49:21.501705","status":"completed"},"tags":[]},"source":"## データの解凍とラベル付け\n読み込み→解凍→ラベルつけ→学習・検証データを8:2で分割"},{"cell_type":"code","execution_count":7,"id":"88411ec4","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:21.511772Z","iopub.status.busy":"2025-07-18T06:49:21.511522Z","iopub.status.idle":"2025-07-18T06:49:45.181427Z","shell.execute_reply":"2025-07-18T06:49:45.18062Z"},"papermill":{"duration":23.675303,"end_time":"2025-07-18T06:49:45.182996","exception":false,"start_time":"2025-07-18T06:49:21.507693","status":"completed"},"tags":[]},"outputs":[],"source":"# データ読み込みとラベル付け\nbase_dir = '../input/dogs-vs-cats-redux-kernels-edition'\ntrain_dir = './data/train'\ntest_dir = './data/test'\n\nos.makedirs('./data', exist_ok=True)\n\nwith zipfile.ZipFile(os.path.join(base_dir, 'train.zip')) as train_zip:\n    train_zip.extractall('./data')\nwith zipfile.ZipFile(os.path.join(base_dir, 'test.zip')) as test_zip:\n    test_zip.extractall('./data')\n\n# すべての画像パスを取得\nall_list = glob.glob(os.path.join(train_dir, '*.jpg'))\ntest_list = glob.glob(os.path.join(test_dir, '*.jpg'))\n\n# ラベル（画像ファイル名に cat or dog を含む）\ndef get_label(file_list):\n    labels = []\n    for path in file_list:\n        filename = os.path.basename(path)\n        if 'dog' in filename:\n            labels.append(1)\n        else:\n            labels.append(0)\n    return labels\n\nall_labels = get_label(all_list)\n\n\ntrain_list, val_list, train_labels, val_labels = train_test_split(\n    all_list, all_labels,\n    test_size=0.2,\n    random_state=42,\n    stratify=all_labels\n)"},{"cell_type":"code","execution_count":8,"id":"1c779e2a","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:45.190483Z","iopub.status.busy":"2025-07-18T06:49:45.190246Z","iopub.status.idle":"2025-07-18T06:49:45.194675Z","shell.execute_reply":"2025-07-18T06:49:45.194016Z"},"papermill":{"duration":0.009222,"end_time":"2025-07-18T06:49:45.195745","exception":false,"start_time":"2025-07-18T06:49:45.186523","status":"completed"},"tags":[]},"outputs":[{"name":"stdout","output_type":"stream","text":["Train: 20000 枚\n","Val:   5000 枚\n","Test:  12500 枚\n"]}],"source":"print(f\"Train: {len(train_list)} 枚\")\nprint(f\"Val:   {len(val_list)} 枚\")\nprint(f\"Test:  {len(test_list)} 枚\")"},{"cell_type":"markdown","id":"06496f76","metadata":{"papermill":{"duration":0.00298,"end_time":"2025-07-18T06:49:45.202611","exception":false,"start_time":"2025-07-18T06:49:45.199631","status":"completed"},"tags":[]},"source":"## データセットとデータローダの作成"},{"cell_type":"code","execution_count":9,"id":"1263ee5f","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:45.209829Z","iopub.status.busy":"2025-07-18T06:49:45.209615Z","iopub.status.idle":"2025-07-18T06:49:45.217989Z","shell.execute_reply":"2025-07-18T06:49:45.217222Z"},"papermill":{"duration":0.013219,"end_time":"2025-07-18T06:49:45.218993","exception":false,"start_time":"2025-07-18T06:49:45.205774","status":"completed"},"tags":[]},"outputs":[{"name":"stderr","output_type":"stream","text":["/usr/local/lib/python3.11/dist-packages/torch/utils/data/dataloader.py:624: UserWarning: This DataLoader will create 6 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n","  warnings.warn(\n"]}],"source":"transform = ImageTransform(size, mean, std)\n\ntrain_dataset = DogCatDataset(\n    train_list,\n    train_labels,\n    transform,\n    phase='train'\n)\n\nval_dataset = DogCatDataset(\n    val_list,\n    val_labels,\n    transform,\n    phase='val'\n)\n\ntrain_loader = data.DataLoader(\n    train_dataset,\n    batch_size=batch_size,\n    shuffle=True,\n    num_workers=6,\n    pin_memory=True\n)\n\nval_loader = data.DataLoader(\n    val_dataset,\n    batch_size=batch_size,\n    shuffle=False,\n    num_workers=6,\n    pin_memory=True\n)"},{"cell_type":"markdown","id":"1542eac1","metadata":{"papermill":{"duration":0.003127,"end_time":"2025-07-18T06:49:45.225322","exception":false,"start_time":"2025-07-18T06:49:45.222195","status":"completed"},"tags":[]},"source":"## モデルや変数の定義\n中盤までの層の重みを更新しない"},{"cell_type":"code","execution_count":10,"id":"87b1169b","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:45.232296Z","iopub.status.busy":"2025-07-18T06:49:45.232096Z","iopub.status.idle":"2025-07-18T06:49:46.376594Z","shell.execute_reply":"2025-07-18T06:49:46.375994Z"},"papermill":{"duration":1.149481,"end_time":"2025-07-18T06:49:46.377995","exception":false,"start_time":"2025-07-18T06:49:45.228514","status":"completed"},"tags":[]},"outputs":[{"name":"stderr","output_type":"stream","text":["/usr/local/lib/python3.11/dist-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n","  warnings.warn(\n","/usr/local/lib/python3.11/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet34_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet34_Weights.DEFAULT` to get the most up-to-date weights.\n","  warnings.warn(msg)\n","Downloading: \"https://download.pytorch.org/models/resnet34-b627a593.pth\" to /root/.cache/torch/hub/checkpoints/resnet34-b627a593.pth\n","100%|██████████| 83.3M/83.3M [00:00<00:00, 194MB/s]\n"]}],"source":"# ResNet18の読み込み（ImageNetで事前学習済み）\nmodel = models.resnet34(pretrained=True)\n\n# 全てのパラメータを一旦固定（requires_grad=False）\nfor param in model.parameters():\n    param.requires_grad = False\n\n# ✅ layer3, layer4 のみ微調整\nfor param in model.layer3.parameters():\n    param.requires_grad = True\nfor param in model.layer4.parameters():\n    param.requires_grad = True\n\n# fc層（全結合）を2クラス分類用に置き換え\nmodel.fc = nn.Linear(model.fc.in_features, 2)\n\n# モデルをデバイスに送る\nmodel = model.to(device)\n\n# 損失関数\ncriterion = nn.CrossEntropyLoss()\n\n# ✅ 最適化対象：layer3, layer4, fc\nparams_to_update = (\n    list(model.layer3.parameters()) +\n    list(model.layer4.parameters()) +\n    list(model.fc.parameters())\n)\noptimizer = optim.Adam(params_to_update, lr=0.0002)\n\n# 学習率スケジューラー（5エポックごとに半分に）\nscheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.5)"},{"cell_type":"markdown","id":"690dd7c2","metadata":{"papermill":{"duration":0.004062,"end_time":"2025-07-18T06:49:46.386409","exception":false,"start_time":"2025-07-18T06:49:46.382347","status":"completed"},"tags":[]},"source":"## 学習\n"},{"cell_type":"code","execution_count":11,"id":"61c5f547","metadata":{"execution":{"iopub.execute_input":"2025-07-18T06:49:46.394552Z","iopub.status.busy":"2025-07-18T06:49:46.394309Z","iopub.status.idle":"2025-07-18T07:00:30.696849Z","shell.execute_reply":"2025-07-18T07:00:30.695801Z"},"papermill":{"duration":644.445739,"end_time":"2025-07-18T07:00:30.83577","exception":false,"start_time":"2025-07-18T06:49:46.390031","status":"completed"},"tags":[]},"outputs":[{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:51<00:00, 12.11it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [1/25] Train Loss: 0.0767, Train Acc: 0.9698 | Val Loss: 0.0378, Val Acc: 0.9848\n","✅ Best model updated and saved!\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:49<00:00, 12.56it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [2/25] Train Loss: 0.0485, Train Acc: 0.9825 | Val Loss: 0.0332, Val Acc: 0.9870\n","✅ Best model updated and saved!\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:49<00:00, 12.73it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [3/25] Train Loss: 0.0353, Train Acc: 0.9868 | Val Loss: 0.0325, Val Acc: 0.9892\n","✅ Best model updated and saved!\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:49<00:00, 12.75it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [4/25] Train Loss: 0.0333, Train Acc: 0.9876 | Val Loss: 0.0384, Val Acc: 0.9870\n","⏳ No improvement... [1/5]\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:49<00:00, 12.57it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [5/25] Train Loss: 0.0236, Train Acc: 0.9908 | Val Loss: 0.0347, Val Acc: 0.9892\n","⏳ No improvement... [2/5]\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:49<00:00, 12.65it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [6/25] Train Loss: 0.0146, Train Acc: 0.9952 | Val Loss: 0.0259, Val Acc: 0.9912\n","✅ Best model updated and saved!\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:48<00:00, 12.77it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [7/25] Train Loss: 0.0090, Train Acc: 0.9971 | Val Loss: 0.0340, Val Acc: 0.9892\n","⏳ No improvement... [1/5]\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:49<00:00, 12.70it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [8/25] Train Loss: 0.0105, Train Acc: 0.9968 | Val Loss: 0.0300, Val Acc: 0.9894\n","⏳ No improvement... [2/5]\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:48<00:00, 12.78it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [9/25] Train Loss: 0.0079, Train Acc: 0.9978 | Val Loss: 0.0302, Val Acc: 0.9904\n","⏳ No improvement... [3/5]\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:49<00:00, 12.65it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [10/25] Train Loss: 0.0095, Train Acc: 0.9968 | Val Loss: 0.0340, Val Acc: 0.9882\n","⏳ No improvement... [4/5]\n"]},{"name":"stderr","output_type":"stream","text":["100%|██████████| 625/625 [00:49<00:00, 12.63it/s]\n"]},{"name":"stdout","output_type":"stream","text":["Epoch [11/25] Train Loss: 0.0035, Train Acc: 0.9987 | Val Loss: 0.0368, Val Acc: 0.9886\n","⏳ No improvement... [5/5]\n","🛑 Early stopping triggered.\n"]}],"source":"best_acc = 0.0\nearly_stop_counter = 0\n\n# 損失と精度を記録するリスト\ntrain_losses = []\nval_losses = []\ntrain_accuracies = []\nval_accuracies = []\n\nfor epoch in range(num_epoch):\n    model.train()\n    train_loss = 0.0\n    train_correct = 0\n    train_total = 0\n\n    for inputs, labels in tqdm(train_loader):\n        inputs = inputs.to(device)\n        labels = labels.to(device)\n\n        optimizer.zero_grad()\n        outputs = model(inputs)\n        loss = criterion(outputs, labels)\n        loss.backward()\n        optimizer.step()\n\n        train_loss += loss.item()\n        _, predicted = torch.max(outputs, 1)\n        train_correct += (predicted == labels).sum().item()\n        train_total += labels.size(0)\n\n    train_acc = train_correct / train_total\n    avg_train_loss = train_loss / len(train_loader)\n\n    # === 検証フェーズ ===\n    model.eval()\n    val_loss = 0.0\n    val_correct = 0\n    val_total = 0\n\n    with torch.no_grad():\n        for inputs, labels in val_loader:\n            inputs = inputs.to(device)\n            labels = labels.to(device)\n\n            outputs = model(inputs)\n            loss = criterion(outputs, labels)\n\n            val_loss += loss.item()\n            _, predicted = torch.max(outputs, 1)\n            val_correct += (predicted == labels).sum().item()\n            val_total += labels.size(0)\n\n    val_acc = val_correct / val_total\n    avg_val_loss = val_loss / len(val_loader)\n\n    print(f'Epoch [{epoch+1}/{num_epoch}] '\n          f'Train Loss: {avg_train_loss:.4f}, Train Acc: {train_acc:.4f} | '\n          f'Val Loss: {avg_val_loss:.4f}, Val Acc: {val_acc:.4f}')\n    \n    # 損失と精度を記録\n    train_losses.append(avg_train_loss)\n    val_losses.append(avg_val_loss)\n    train_accuracies.append(train_acc)\n    val_accuracies.append(val_acc)\n\n    if val_acc > best_acc:\n        best_acc = val_acc\n        early_stop_counter = 0  # 改善したのでリセット\n        torch.save(model.state_dict(), './best_model.pth')\n        print('✅ Best model updated and saved!')\n    else:\n        early_stop_counter += 1\n        print(f'⏳ No improvement... [{early_stop_counter}/{patience}]')\n        if early_stop_counter >= patience:\n            print('🛑 Early stopping triggered.')\n            break\n    #学習率を調整\n    scheduler.step()"},{"cell_type":"markdown","id":"4dee3096","metadata":{"papermill":{"duration":0.137458,"end_time":"2025-07-18T07:00:31.160527","exception":false,"start_time":"2025-07-18T07:00:31.023069","status":"completed"},"tags":[]},"source":"## ロスと精度の可視化"},{"cell_type":"code","execution_count":12,"id":"45e34ada","metadata":{"execution":{"iopub.execute_input":"2025-07-18T07:00:31.436783Z","iopub.status.busy":"2025-07-18T07:00:31.435875Z","iopub.status.idle":"2025-07-18T07:00:31.901282Z","shell.execute_reply":"2025-07-18T07:00:31.900576Z"},"papermill":{"duration":0.606608,"end_time":"2025-07-18T07:00:31.902816","exception":false,"start_time":"2025-07-18T07:00:31.296208","status":"completed"},"tags":[]},"outputs":[{"data":{"image/png":"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D+Li4nBxcXlsHQghhDC2dOlSunbtirW1NX369GH+/Pn8/fffRt2RTPks12q1vPjii4SHh9O7d29GjRpFYmIiYWFhnDx5MltSaorMzExCQkJo3LgxX3zxheFm96pVq0hJSeGtt96idOnSHDhwgDlz5nDjxg1WrVplWP/48eM0adIEKysrXn/9dSpUqMClS5f4/fff+eSTT2jevDnlypVj6dKldOnSJVu9+Pn5PbIL1u+//46trS09e/bM8X1fX18aN27Mtm3bSE1NpW7dulSsWJGVK1fSv39/o7IrVqygZMmShISEABAdHc1zzz1nuBnu5ubGn3/+yeDBg0lISGD06NFG60+dOhVra2vGjBlDeno61tbWj6zbtLS0HK8JnJ2djda9f/8+7du3p2fPnvTp04eVK1fy1ltvYW1tzaBBgwBITU2lefPmXLx4keHDh+Pr68uqVasYMGAAcXFxjBo1yrC9wYMHs3jxYtq1a8drr71GZmYmu3fv5q+//qJu3bqGcnv27GHNmjUMHToUJycnvvrqK7p160ZkZCSlS5cG4M033+TXX39l+PDhVK1albt377Jnzx7OnDlD7dq1H3n8ohhRhBAmW7RokQIof//990PLdO7cWbG2tlYuXbpkWHbr1i3FyclJadq0qWFZcHCw0qFDh4du5/79+wqgfP7557mK8ejRowqgjBo16pHlatSooZQqVcrwumHDhkqdOnWMyhw4cEABlB9//FFRFEXR6XRKQECAEhISouh0OkO5lJQUxdfXV2ndurVh2UcffaQASp8+fUyKe/v27Qrw0J/bt28bymYtO3jwoGHZtWvXFFtbW6VLly6GZab+LiZOnKgAypo1a7LFlXWcWfFVqVJFSU9PN7w/e/ZsBVBOnDihKIqiHDlyRAGUVatWmXTcQgghHu3gwYMKoISFhSmKov9cLlu2bLbvOVM+yxcuXKgAysyZMx9aJuvzfvv27UbvX7lyRQGURYsWGZb1799fAZT3338/2/ZSUlKyLZs2bZqiUqmUa9euGZY1bdpUcXJyMlr2YDyKoijjxo1TbGxslLi4OMOyO3fuKJaWlspHH32UbT8PKlGihBIcHPzIMiNHjlQA5fjx44b9WVlZKffu3TOUSU9PV0qUKKEMGjTIsGzw4MGKp6enEhsba7S93r17Ky4uLoY6yKrTihUr5lgvOXnUNcEvv/xi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HwArCxXdapflzWZ+VHiG52EW4lHMOpCatbU1derUITw83LBMp9MRHh5Ow4YNc1ynYcOGRuVB32w0p/I//PADderUITg4OG8Dz2OdanoD8PuxW+h0ipmjEUIUOiqV/olzQfxY2f/7/1wOdNOzZ0/UajXLli3jxx9/ZNCgQYZkeO/evXTq1IlXX32V4OBgKlasyPnz5/OsiqpUqcL169e5fv26Ydnp06eJi4szevpdqVIl3n77bbZs2ULXrl1ZtGiR4b1y5crx5ptvsmbNGt555x2+++67PItPFFKmnFsPnhN5+VPIzq8ffviB3r17c/ToUaOf3r17GwZUq1GjBrt3785xHAInJyfKly9vGENBFC86ncLmU1G8NHcvAxf9zaFr97G2VNOvoQ87xrbg0241JOEW4hHM3rw8NDSU/v37U7duXerXr8+sWbNITk5m4MCBgL7fn7e3N9OmTQP0TQCbNWvGjBkz6NChA8uXL+fgwYN8++23RttNSEhg1apVzJgxo8CPKbdeCCyDo40lN+NSORR5n3oV5Gm3EKLocXR0pFevXowbN46EhAQGDBhgeC8gIIBff/2Vffv2UbJkSWbOnEl0dLRRQmwKrVbL0aNHjZbZ2NjQqlUrgoKCeOWVV5g1axaZmZkMHTqUZs2aUbduXVJTUxk7dizdu3fH19eXGzdu8Pfffxumkhw9ejTt2rWjUqVK3L9/n+3bt1OlSsH0oxfCFPl5fsXExPD777+zfv16qlevbvRev3796NKlC/fu3WP48OHMmTOH3r17M27cOFxcXPjrr7+oX78+AQEBvP/++4SGhuLu7k67du1ITExk7969D20xIgo/rU5hw4nbzNt2kXPR+jEs7KwsePW58gxpUpEyzg/vvimE+JfZk+5evXoRExPDxIkTiYqKombNmmzatMkwWFpkZKRRk65GjRqxbNkyJkyYwPjx4wkICGDdunXZviSWL1+Ooij06dOnQI/nSdhaWRBSzYPVh2/w29GbknQLIYqswYMH88MPP9C+fXvDgGUAEyZM4PLly4SEhGBvb8/rr79O586diY+Pz9X2k5KSqFWrltEyPz8/Ll68yG+//caIESNo2rQparWatm3bMmfOHAAsLCy4e/cu/fr1Izo6GldXV7p27WoYRFOr1TJs2DBu3LiBs7Mzbdu25csvv3zK2hAib+XX+fXjjz/i4OBA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56L4e3D+7uHLDrNhhMzfLYQQ5hISEmL4v7+/P2fPnuXevXuULFky35sIz549myFDhhAYqO//6+fnx8CBA42ao69cuZKlS5eybNkyqlWrxtGjRxk9ejReXl70798fgN69exvKBwUFUaNGDfz8/NixYwctW7bMcd/Tpk1j8uTJ2ZZv2bIFe3v7Jz4m68xEKt9eS4vY7ajRokPNVbeWnPPoTMY9J9gS/sTbLkySNfDVKQuiUlW42Sq87H2f3dvCnnh7YWFPvu6zRurKdFJXppO6Ml1e1FVKSopJ5Z4o6W7evDmxsbEkJCQY9bV6/fXXn+oLThQt/52/e+yvx/hG5u8WQogCp9FosLOz4+jRo1SvXt2wvFSpUrnelqurKxYWFkRHRxstj46OxsPDI8d13NzcWLduHWlpady9excvLy/ef/99o2btY8eO5f333zck1kFBQVy7do1p06YZku7/qlixIq6urly8ePGhSfe4ceMIDQ01vE5ISKBcuXK0adMGZ2fnXB37g9T7v8bixFYAMv3aoLSaTDnXAMo98RYLn5SMTPovPkRUajzuTjYsH1KfsiXtnmhbGo2GsLAwWrdujZWV3IB/FKkr00ldmU7qynR5WVdZrase54mS7tTUVBRFMSTc165dY+3atVSpUsXoTrup5s2bx+eff05UVBTBwcHMmTPnkU/MV61axYcffsjVq1cJCAjgs88+o3379jmWffPNN/nmm2/48ssvGT16dK5jE4/24PzdWf27B8n83UIIUaCsrKwoX758nszFbW1tTZ06dQgPD6dz584A6HQ6wsPDGT58+CPXtbW1xdvbG41Gw+rVq+nZs6fhvZSUFNRq4z7CFhYW6HQPb8J848YN7t69i6en50PL2NjYGMaZeZCVldXTXUw99ya6yAgidDWo32tssbuIzcjUMWLFEY5ej8fFzoqfXmuAb5mnH3X9qev9GSJ1ZTqpK9NJXZkuL+rK1PWfaISMTp068eOPPwIQFxdHgwYNmDFjBp07d2b+/Pm52lZupyXZt28fffr0YfDgwRw5coTOnTvTuXNnTp48ma3s2rVr+euvv/Dy8sr9QQqTBZV14YMO+vm7p8n83UIIYRYffPAB48eP5969e0+9rdDQUL777juWLFnCmTNneOutt0hOTmbgwIEA9OvXj3HjxhnK79+/nzVr1nD58mV2795N27Zt0el0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mczMTAYPHgzAwIEDqVatGhMmTABg5MiRdO7cmYkTJ9KzZ08+/fRT1qxZw7Rp0wCwWCyMGjWKl19+maioKGrXrs3YsWOJiIjIT+xFRERERERESoLpSXe/fv1IS0tj3LhxJCcn07x5cxYtWpS/EFpSUhJW6587m7Vv3565c+cyZswYnn32WaKiooiLi6Nx48b5ZZ566ikyMzN5+OGHOXHiBB07dmTRokX4+PiU+P2JiIiIiIhI+WV60g0wYsSIiw4nX7p06QXH+vTpQ58+fS56PYvFwosvvsiLL75YVCFeNW9vb8aPH19gzrgUTnXlOtWV61RXrlNduU51VT7o79l1qivXqa5cp7pynerKdWbUlcWpPUpEREREREREioX18kVERERERERE5Goo6RYREREREREpJkq6RURERERERIqJku5iNGXKFGrVqoWPjw9t2rRh1apVZofkliZMmMCNN95IQEAAISEh9OrVix07dpgdltv717/+lb9FnhTu0KFD3HfffVSpUgVfX1+aNGnCmjVrzA7L7djtdsaOHUvt2rXx9fUlMjKSl156CS35Ab/88gu33XYbERERWCwW4uLiCrzudDoZN24c4eHh+Pr6Eh0dza5du8wJVoqU2vDLU/t99dSGX57acNeoDb84d2rDlXQXk3nz5hEbG8v48eNZt24dzZo1IyYmhtTUVLNDczs///wzw4cPZ8WKFcTHx5OXl0e3bt3IzMw0OzS3tXr1at5//32aNm1qdihu6/jx43To0AFPT0++//57tm7dysSJE6lUqZLZobmd1157jffee4933nmHbdu28dprr/H666/z9ttvmx2a6TIzM2nWrBlTpkwp9PXXX3+dt956i6lTp7Jy5Ur8/f2JiYkhOzu7hCOVoqQ23DVqv6+O2vDLUxvuOrXhF+dWbbhTikXr1q2dw4cPz39ut9udERERzgkTJpgYVemQmprqBJw///yz2aG4pVOnTjmjoqKc8fHxzs6dOztHjhxpdkhu6emnn3Z27NjR7DBKhZ49ezqHDBlS4Nhdd93lHDBggEkRuSfA+eWXX+Y/dzgczrCwMOcbb7yRf+zEiRNOb29v5yeffGJChFJU1IZfHbXfl6c23DVqw12nNtw1Zrfh6ukuBrm5uaxdu5bo6Oj8Y1arlejoaBITE02MrHQ4efIkAJUrVzY5Evc0fPhwevbsWeD3Sy709ddf06pVK/r06UNISAgtWrTggw8+MDsst9S+fXsSEhLYuXMnABs3bmTZsmXceuutJkfm3vbt20dycnKBf4tBQUG0adNG/9eXYmrDr57a78tTG+4ateGuUxt+dUq6Dfco8isK6enp2O12QkNDCxwPDQ1l+/btJkVVOjgcDkaNGkWHDh1o3Lix2eG4nU8//ZR169axevVqs0Nxe3v37uW9994jNjaWZ599ltWrV/PYY4/h5eXFoEGDzA7PrTzzzDNkZGRQv359bDYbdrudV155hQEDBpgdmltLTk4GKPT/+vOvSemjNvzqqP2+PLXhrlMb7jq14VenpNtwJd3iVoYPH87mzZtZtmyZ2aG4nYMHDzJy5Eji4+Px8fExOxy353A4aNWqFa+++ioALVq0YPPmzUydOlUN9v/47LPP+Pjjj5k7dy6NGjViw4YNjBo1ioiICNWViLhE7felqQ2/MmrDXac2vHTQ8PJiEBwcjM1mIyUlpcDxlJQUwsLCTIrK/Y0YMYJvv/2Wn376ieuuu87scNzO2rVrSU1N5YYbbsDDwwMPDw9+/vln3nrrLTw8PLDb7WaH6FbCw8Np2LBhgWMNGjQgKSnJpIjc15NPPskzzzxD//79adKkCffffz+PP/44EyZMMDs0t3b+/3P9X1+2qA2/cmq/L09t+JVRG+46teFXp6TbcCXdxcDLy4uWLVuSkJCQf8zhcJCQkEC7du1MjMw9OZ1ORowYwZdffsmPP/5I7dq1zQ7JLXXp0oXff/+dDRs25D9atWrFgAED2LBhAzabzewQ3UqHDh0u2Lpm586d1KxZ06SI3FdWVhZWa8HmwGaz4XA4TIqodKhduzZhYWEF/q/PyMhg5cqV+r++FFMb7jq1365TG35l1Ia7Tm341SnpNlzDy4tJbGwsgwYNolWrVrRu3ZrJkyeTmZnJ4MGDzQ7N7QwfPpy5c+fy1VdfERAQkD+PIigoCF9fX5Ojcx8BAQEXzJPz9/enSpUqmj9XiMcff5z27dvz6quv0rdvX1atWsW0adOYNm2a2aG5ndtuu41XXnmFGjVq0KhRI9avX8+kSZMYMmSI2aGZ7vTp0+zevTv/+b59+9iwYQOVK1emRo0ajBo1ipdffpmoqChq167N2LFjiYiIoFevXuYFLddMbbhr1H67Tm34lVEb7jq14RfnVm14ka+HLvnefvttZ40aNZxeXl7O1q1bO1esWGF2SG4JKPQxc+ZMs0Nze9pu5NK++eYbZ+PGjZ3e3t7O+vXrO6dNm2Z2SG4pIyPDOXLkSGeNGjWcPj4+zjp16jife+45Z05Ojtmhme6nn34q9P+nQYMGOZ1OY8uRsWPHOkNDQ53e3t7OLl26OHfs2GFu0FIk1IZfntrva6M2/NLUhrtGbfjFuVMbbnE6nc6iT+VFRERERERERHO6RURERERERIqJkm4RERERERGRYqKkW0RERERERKSYKOkWERERERERKSZKukVERERERESKiZJuERERERERkWKipFtERERERESkmCjpFhERERERESkmSrpFxHQWi4W4uDizwxAREZErpDZc5PKUdIuUcw888AAWi+WCR/fu3c0OTURERC5BbbhI6eBhdgAiYr7u3bszc+bMAse8vb1NikZERERcpTZcxP2pp1tE8Pb2JiwsrMCjUqVKgDFs7L333uPWW2/F19eXOnXq8Pnnnxc4//fff+eWW27B19eXKlWq8PDDD3P69OkCZWbMmEGjRo3w9vYmPDycESNGFHg9PT2dO++8Ez8/P6Kiovj666+L96ZFRETKALXhIu5PSbeIXNbYsWPp3bs3GzduZMCAAfTv359t27YBkJmZSUxMDJUqVWL16tXMnz+fJUuWFGiQ33vvPYYPH87DDz/M77//ztdff03dunULvMcLL7xA37592bRpEz169GDAgAEcO3asRO9TRESkrFEbLuIGnCJSrg0aNMhps9mc/v7+BR6vvPKK0+l0OgHnI488UuCcNm3aOIcNG+Z0Op3OadOmOStVquQ8ffp0/uvfffed02q1OpOTk51Op9MZERHhfO655y4aA+AcM2ZM/vPTp087Aef3339fZPcpIiJS1qgNFykdNKdbRLj55pt57733ChyrXLly/s/t2rUr8Fq7du3YsGEDANu2baNZs2b4+/vnv96hQwccDgc7duzAYrFw+PBhunTpcskYmjZtmv+zv78/gYGBpKamXu0tiYiIlAtqw0Xcn5JuEcHf3/+CoWJFxdfX16Vynp6eBZ5bLBYcDkdxhCQiIlJmqA0XcX+a0y0il7VixYoLnjdo0ACABg0asHHjRjIzM/Nf/+2337BardSrV4+AgABq1apFQkJCicYsIiIiasNF3IF6ukWEnJwckpOTCxzz8PAgODgYgPnz59OqVSs6duzIxx9/zKpVq5g+fToAAwYMYPz48QwaNIjnn3+etLQ0/vnPf3L//fcTGhoKwPPPP88jjzxCSEgIt956K6dOneK3337jn//8Z8neqIiISBmjNlzE/SnpFhEWLVpEeHh4gWP16tVj+/btgLEq6aeffsqjjz5KeHg4n3zyCQ0bNgTAz8+PH374gZEjR3LjjTfi5+dH7969mTRpUv61Bg0aRHZ2Nv/5z3944oknCA4O5u677y65GxQRESmj1IaLuD+L0+l0mh2EiLgvi8XCl19+Sa9evcwORURERK6A2nAR96A53SIiIiIiIiLFREm3iIiIiIiISDHR8HIRERERERGRYqKebhEREREREZFioqRbREREREREpJgo6RYREREREREpJkq6RURERERERIqJkm4RERERERGRYqKkW0RERERERKSYKOkWERERERERKSZKukVERERERESKiZJuERERERERkWLy/5Se2fkwEYjjAAAAAElFTkSuQmCC\n","text/plain":["<Figure size 1000x400 with 2 Axes>"]},"metadata":{},"output_type":"display_data"}],"source":"import matplotlib.pyplot as plt\n\n# === 損失の推移グラフ ===\nplt.figure(figsize=(10, 4))\nplt.subplot(1, 2, 1)\nplt.plot(train_losses, label='Train Loss')\nplt.plot(val_losses, label='Val Loss')\nplt.xlabel('Epoch')\nplt.ylabel('Loss')\nplt.title('Loss Over Epochs')\nplt.legend()\nplt.grid()\n\n# === 精度の推移グラフ ===\nplt.subplot(1, 2, 2)\nplt.plot(train_accuracies, label='Train Acc')\nplt.plot(val_accuracies, label='Val Acc')\nplt.xlabel('Epoch')\nplt.ylabel('Accuracy')\nplt.title('Accuracy Over Epochs')\nplt.legend()\nplt.grid()\n\nplt.tight_layout()\nplt.show()"},{"cell_type":"markdown","id":"78c93d3f","metadata":{"papermill":{"duration":0.138188,"end_time":"2025-07-18T07:00:32.180217","exception":false,"start_time":"2025-07-18T07:00:32.042029","status":"completed"},"tags":[]},"source":"## 推論\n"},{"cell_type":"code","execution_count":13,"id":"a1940271","metadata":{"execution":{"iopub.execute_input":"2025-07-18T07:00:32.459292Z","iopub.status.busy":"2025-07-18T07:00:32.458998Z","iopub.status.idle":"2025-07-18T07:02:10.45727Z","shell.execute_reply":"2025-07-18T07:02:10.456581Z"},"papermill":{"duration":98.139922,"end_time":"2025-07-18T07:02:10.458508","exception":false,"start_time":"2025-07-18T07:00:32.318586","status":"completed"},"tags":[]},"outputs":[{"name":"stderr","output_type":"stream","text":["100%|██████████| 12500/12500 [01:37<00:00, 127.78it/s]\n"]},{"name":"stdout","output_type":"stream","text":["✅ 推論完了（確率で出力）submission.csv を作成しました。\n"]}],"source":"# モデルの重みを読み込む（念のため）\nmodel.load_state_dict(torch.load('./best_model.pth'))\nmodel.eval()\n\n# 予測結果を保存するリスト\nresults = []\n\n# 画像の前処理（バリデーションと同じ）\ntransform = ImageTransform(size, mean, std)\n\nfor path in tqdm(test_list):\n    img = Image.open(path).convert(\"RGB\")\n    img = transform(img, phase='val')\n    img = img.unsqueeze(0)  # バッチ次元を追加 (1, 3, H, W)\n    img = img.to(device)\n\n    with torch.no_grad():\n        outputs = model(img)  # shape: [1, 2]\n        probs = torch.softmax(outputs, dim=1)  # shape: [1, 2]\n        dog_prob = probs[0][1].item()  # 犬（クラス1）の確率だけ取得\n\n    # ファイル名（例: 1234.jpg）と予測確率（0〜1）\n    id = os.path.basename(path).split('.')[0]\n    results.append([int(id), dog_prob])\n\n# DataFrameとしてCSVに保存\ndf = pd.DataFrame(results, columns=['id', 'label'])\ndf.sort_values('id', inplace=True)\ndf.to_csv('submission.csv', index=False)\n\nprint(\"✅ 推論完了（確率で出力）submission.csv を作成しました。\")"}],"metadata":{"kaggle":{"accelerator":"gpu","dataSources":[{"databundleVersionId":38425,"sourceId":5441,"sourceType":"competition"}],"dockerImageVersionId":31040,"isGpuEnabled":true,"isInternetEnabled":true,"language":"python","sourceType":"notebook"},"kernelspec":{"display_name":"Python 3","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"},"papermill":{"default_parameters":{},"duration":790.524959,"end_time":"2025-07-18T07:02:14.121939","environment_variables":{},"exception":null,"input_path":"__notebook__.ipynb","output_path":"__notebook__.ipynb","parameters":{},"start_time":"2025-07-18T06:49:03.59698","version":"2.6.0"}},"nbformat":4,"nbformat_minor":5}