{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.11","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":5441,"databundleVersionId":38425,"sourceType":"competition"}],"dockerImageVersionId":31041,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","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","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:35:35.093559Z","iopub.execute_input":"2025-07-11T07:35:35.093736Z","iopub.status.idle":"2025-07-11T07:35:36.790169Z","shell.execute_reply.started":"2025-07-11T07:35:35.09372Z","shell.execute_reply":"2025-07-11T07:35:36.789542Z"}},"outputs":[{"name":"stdout","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","output_type":"stream"}],"execution_count":1},{"cell_type":"code","source":"import os\nimport glob\nimport numpy as np\nimport pandas as pd\nfrom PIL import Image\nfrom sklearn.model_selection import train_test_split\nimport torch\nfrom torch.utils.data import Dataset, DataLoader\nfrom torchvision import transforms, models\nimport torch.nn as nn\nimport torch.optim as optim","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:35:36.790836Z","iopub.execute_input":"2025-07-11T07:35:36.791193Z","iopub.status.idle":"2025-07-11T07:35:46.130048Z","shell.execute_reply.started":"2025-07-11T07:35:36.791174Z","shell.execute_reply":"2025-07-11T07:35:46.129515Z"}},"outputs":[],"execution_count":2},{"cell_type":"code","source":"#データセット作成\nclass Dataset(Dataset):\n    def __init__(self, filepaths, labels=None, transform=None):\n        self.filepaths = filepaths\n        self.labels = labels\n        self.transform = transform\n\n    def __len__(self):\n        return len(self.filepaths)\n\n    def __getitem__(self, idx):\n        img_path = self.filepaths[idx]\n        img = Image.open(img_path).convert('RGB')\n        if self.transform:\n            img = self.transform(img)\n        if self.labels is not None:\n            label = self.labels[idx]\n            return img, label\n        else:\n            return img, os.path.basename(img_path)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:35:46.131587Z","iopub.execute_input":"2025-07-11T07:35:46.13192Z","iopub.status.idle":"2025-07-11T07:35:46.136791Z","shell.execute_reply.started":"2025-07-11T07:35:46.131902Z","shell.execute_reply":"2025-07-11T07:35:46.136225Z"}},"outputs":[],"execution_count":3},{"cell_type":"code","source":"# zipファイル展開\nimport zipfile\nimport os\n\n# zipファイルのパス\nzip_dir = \"../input/dogs-vs-cats-redux-kernels-edition/\"\noutput_dir = \"/kaggle/working/\"  # 展開先\n\n# 解凍対象のzipファイル一覧\nzip_files = [\"train.zip\", \"test.zip\"]\n\n# 各zipファイルを展開\nfor zip_file in zip_files:\n    zip_path = os.path.join(zip_dir, zip_file)\n    with zipfile.ZipFile(zip_path, 'r') as zip_ref:\n        zip_ref.extractall(output_dir)\n\n# 展開後のパスを設定\ntrain_dir = os.path.join(output_dir, \"train\")\ntest_dir = os.path.join(output_dir, \"test\")\n\n# 画像ファイルを取得\ntrain_files = glob.glob(os.path.join(train_dir, \"*.jpg\"))\ntest_files = glob.glob(os.path.join(test_dir, \"*.jpg\"))\nprint(f\"ファイル数: {len(train_files)}\")\nprint(f\"ファイル数: {len(test_files)}\")\nlabels = [1 if \"dog\" in os.path.basename(f) else 0 for f in train_files]\n\nprint(f\"train_files: {len(train_files)}\")\nprint(f\"labels: {len(labels)}\")\n\n# train/val分割\ntrain_files, val_files, train_labels, val_labels = train_test_split(\n    train_files, labels, test_size=0.2, random_state=42, stratify=labels\n)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:35:46.137636Z","iopub.execute_input":"2025-07-11T07:35:46.13788Z","iopub.status.idle":"2025-07-11T07:36:00.376734Z","shell.execute_reply.started":"2025-07-11T07:35:46.137858Z","shell.execute_reply":"2025-07-11T07:36:00.376102Z"}},"outputs":[{"name":"stdout","text":"ファイル数: 25000\nファイル数: 12500\ntrain_files: 25000\nlabels: 25000\n","output_type":"stream"}],"execution_count":4},{"cell_type":"code","source":"# 前処理\ntransform = transforms.Compose([\n    transforms.Resize(232),\n    transforms.CenterCrop(224),\n    transforms.ToTensor(),\n    transforms.Normalize(\n        mean=[0.485, 0.456, 0.406], \n        std=[0.229, 0.224, 0.225]\n    )\n])\n\n#DataLoaderの作成\nbatch_size = 32\n\ntrain_dataset = Dataset(train_files, train_labels, transform)\nval_dataset = Dataset(val_files, val_labels, transform)\n\ntrain_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)\nval_loader = DataLoader(val_dataset, batch_size=batch_size)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:36:00.377505Z","iopub.execute_input":"2025-07-11T07:36:00.377769Z","iopub.status.idle":"2025-07-11T07:36:00.383064Z","shell.execute_reply.started":"2025-07-11T07:36:00.377741Z","shell.execute_reply":"2025-07-11T07:36:00.382536Z"}},"outputs":[],"execution_count":5},{"cell_type":"code","source":"# モデル構築・学習準備\nfrom torchvision.models import resnet18, ResNet18_Weights\nfrom torch.optim.lr_scheduler import StepLR\n\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\nweights=ResNet18_Weights.IMAGENET1K_V1\nmodel = resnet18(weights=weights)\n\n# conv1とbn1を固定\nfor param in model.conv1.parameters():\n    param.requires_grad = False\n# layer1とlayer2も固定\nfor param in model.bn1.parameters():\n    param.requires_grad = False\n\nfor param in model.layer1.parameters():\n    param.requires_grad = False\n\nfor param in model.layer2.parameters():\n    param.requires_grad = False\nmodel.fc = nn.Linear(model.fc.in_features, 2)\n\n# transformを定義\ntransform = weights.transforms()\n\nmodel = model.to(device)\n\ncriterion = nn.CrossEntropyLoss()\n#optimizer = optim.Adam(model.fc.parameters(), lr=1e-4)\n# 残りの層だけoptimizerに渡す(学習率を調整)\noptimizer = torch.optim.Adam([\n    #{\"params\": model.layer1.parameters(), \"lr\": 1e-6},\n    #{\"params\": model.layer2.parameters(), \"lr\": 1e-5},\n    {\"params\": model.layer3.parameters(), \"lr\": 1e-7},\n    {\"params\": model.layer4.parameters(), \"lr\": 1e-5},\n    {\"params\": model.fc.parameters(),     \"lr\": 1e-4}\n], weight_decay=1e-4)\n\nscheduler = StepLR(optimizer, step_size=5, gamma=0.1)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:36:00.383886Z","iopub.execute_input":"2025-07-11T07:36:00.384127Z","iopub.status.idle":"2025-07-11T07:36:01.145214Z","shell.execute_reply.started":"2025-07-11T07:36:00.38411Z","shell.execute_reply":"2025-07-11T07:36:01.144663Z"}},"outputs":[{"name":"stderr","text":"Downloading: \"https://download.pytorch.org/models/resnet18-f37072fd.pth\" to /root/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth\n100%|██████████| 44.7M/44.7M [00:00<00:00, 225MB/s]\n","output_type":"stream"}],"execution_count":6},{"cell_type":"code","source":"import torch\nfrom tqdm import tqdm\n\n#num_epochs = 5\n#num_epochs = 10\n\n# version9\nnum_epochs = 30\n#patience = 5\nbest_val_loss = float('inf')\nepochs_no_improve = 0\ndelta = 1e-4\n\n#version10\n#patience = 3\n#version11\n#patience = 5\n#version12\npatience = 3\n\ntrain_losses = []\nval_losses = []\ntrain_accuracies = []\nval_accuracies = []\n\nfor epoch in range(num_epochs):\n    model.train()  # 学習モード\n    running_loss = 0.0\n    correct = 0\n    total = 0\n\n    for images, labels in tqdm(train_loader):\n        images, labels = images.to(device), labels.to(device)\n\n        optimizer.zero_grad()\n        outputs = model(images)\n\n        loss = criterion(outputs, labels)\n        loss.backward()\n        optimizer.step()\n\n        running_loss += loss.item() * images.size(0)\n        \n        # 精度計算\n        _, predicted = torch.max(outputs, 1)\n        correct += (predicted == labels).sum().item()\n        total += labels.size(0)\n        \n    train_epoch_loss = running_loss / total\n    train_epoch_acc = correct / total\n    \n    train_losses.append(train_epoch_loss)\n    train_accuracies.append(train_epoch_acc)\n    \n    print(f\"[{epoch+1}/{num_epochs}] Loss: {train_epoch_loss:.4f} | Accuracy: {train_epoch_acc:.4f}\")\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 images, labels in val_loader:\n            images, labels = images.to(device), labels.to(device)\n\n            outputs = model(images)\n            loss = criterion(outputs, labels)\n            \n            # 予測ラベルを取得\n            _, preds = torch.max(outputs, 1)\n\n            val_loss += loss.item() * images.size(0)  # 合計loss\n            val_correct += (preds == labels).sum().item()\n            val_total += labels.size(0)\n            \n    val_epoch_loss = val_loss / val_total\n    val_epoch_acc = val_correct / val_total\n    \n    val_losses.append(val_epoch_loss)\n    val_accuracies.append(val_epoch_acc)\n    \n    print(f\"→ Val Loss: {val_epoch_loss:.4f} | Val Accuracy: {val_epoch_acc:.4f}\")\n\n    # 学習率の調整\n    #scheduler.step()\n\n    # アーリーストッピングの導入\n    if val_epoch_loss < best_val_loss- delta:\n        best_val_loss = val_epoch_loss\n        epochs_no_improve = 0\n    else:\n        epochs_no_improve += 1\n        if epochs_no_improve >= patience:\n            print(f\"Early stopping at epoch {epoch+1}\")\n            break","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:36:01.145853Z","iopub.execute_input":"2025-07-11T07:36:01.146037Z","iopub.status.idle":"2025-07-11T07:55:33.170049Z","shell.execute_reply.started":"2025-07-11T07:36:01.146022Z","shell.execute_reply":"2025-07-11T07:55:33.169147Z"}},"outputs":[{"name":"stderr","text":"100%|██████████| 625/625 [01:29<00:00,  6.99it/s]\n","output_type":"stream"},{"name":"stdout","text":"[1/30] Loss: 0.0997 | Accuracy: 0.9673\n→ Val Loss: 0.0394 | Val Accuracy: 0.9860\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:26<00:00,  7.25it/s]\n","output_type":"stream"},{"name":"stdout","text":"[2/30] Loss: 0.0471 | Accuracy: 0.9824\n→ Val Loss: 0.0315 | Val Accuracy: 0.9894\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:27<00:00,  7.15it/s]\n","output_type":"stream"},{"name":"stdout","text":"[3/30] Loss: 0.0308 | Accuracy: 0.9887\n→ Val Loss: 0.0321 | Val Accuracy: 0.9888\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:28<00:00,  7.10it/s]\n","output_type":"stream"},{"name":"stdout","text":"[4/30] Loss: 0.0220 | Accuracy: 0.9927\n→ Val Loss: 0.0310 | Val Accuracy: 0.9896\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:28<00:00,  7.08it/s]\n","output_type":"stream"},{"name":"stdout","text":"[5/30] Loss: 0.0141 | Accuracy: 0.9959\n→ Val Loss: 0.0310 | Val Accuracy: 0.9908\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:27<00:00,  7.16it/s]\n","output_type":"stream"},{"name":"stdout","text":"[6/30] Loss: 0.0118 | Accuracy: 0.9959\n→ Val Loss: 0.0313 | Val Accuracy: 0.9894\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:26<00:00,  7.19it/s]\n","output_type":"stream"},{"name":"stdout","text":"[7/30] Loss: 0.0086 | Accuracy: 0.9979\n→ Val Loss: 0.0308 | Val Accuracy: 0.9898\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:26<00:00,  7.22it/s]\n","output_type":"stream"},{"name":"stdout","text":"[8/30] Loss: 0.0051 | Accuracy: 0.9988\n→ Val Loss: 0.0302 | Val Accuracy: 0.9906\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:26<00:00,  7.20it/s]\n","output_type":"stream"},{"name":"stdout","text":"[9/30] Loss: 0.0052 | Accuracy: 0.9984\n→ Val Loss: 0.0328 | Val Accuracy: 0.9898\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:26<00:00,  7.24it/s]\n","output_type":"stream"},{"name":"stdout","text":"[10/30] Loss: 0.0033 | Accuracy: 0.9992\n→ Val Loss: 0.0361 | Val Accuracy: 0.9898\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 625/625 [01:26<00:00,  7.24it/s]\n","output_type":"stream"},{"name":"stdout","text":"[11/30] Loss: 0.0029 | Accuracy: 0.9994\n→ Val Loss: 0.0368 | Val Accuracy: 0.9896\nEarly stopping at epoch 11\n","output_type":"stream"}],"execution_count":7},{"cell_type":"code","source":"# 学習の損失と精度の可視化\nimport matplotlib.pyplot as plt\n\nplt.plot(train_losses, label=\"Train Loss\")\nplt.plot(val_losses, label=\"Val Loss\")\nplt.xlabel(\"Epoch\")\nplt.ylabel(\"Loss\")\nplt.title(\"Loss Curve\")\nplt.legend()\nplt.show()\n\nplt.plot(train_accuracies, label=\"Train Accuracy\")\nplt.plot(val_accuracies, label=\"Val Accuracy\")\nplt.xlabel(\"Epoch\")\nplt.ylabel(\"Accuracy\")\nplt.title(\"Accuracy Curve\")\nplt.legend()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:55:33.171025Z","iopub.execute_input":"2025-07-11T07:55:33.171422Z","iopub.status.idle":"2025-07-11T07:55:33.571453Z","shell.execute_reply.started":"2025-07-11T07:55:33.171389Z","shell.execute_reply":"2025-07-11T07:55:33.570634Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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oqKiAu+9956+bceOHTFw4ECEhYXB1dUViYmJ+OGHHzB16lQAwNmzZzFo0CCMHj0aHTt2hEKhwObNm5GZmYknn3zynvX16dMHK1euxAsvvICgoCCDlaB3796NrVu34s033wQAqFQqPPHEE/j4448hCALatm2LX375pV7zcbp374527dph7ty5qKioMBj+ArTzk1atWoVx48ahe/fuePLJJ9GiRQukpaVh27Zt6Nu3L1asWFHnzyWie5D6MjQiav50l8HfbUtPTxdFURQPHz4sRkVFiQ4ODqKdnZ344IMPivv37zc41ptvvimGh4eLzs7Ooq2trRgUFCS+9dZbYmVlpSiKopiTkyNOmTJFDAoKEu3t7UWVSiVGRESIGzduvO96k5KSxKeeekr08fERraysRBcXF3HQoEHiunXrRLVarW+XnZ0tjhw5UrSzsxNdXFzEf//73+KJEydqvQze3t7+np85d+5cEYDYrl27u7bZtWuXGBUVJapUKtHGxkZs27atOHHiRDExMfG+z42I7o8giqIoWfoiIiIikgDnABEREZHFYQAiIiIii8MARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4XAixFhqNBteuXYOjo+Nd7wdERERETYsoiigqKoKPj0+t9+a7FQNQLa5du2ZwXyIiIiJqPtLT09GqVat7tmEAqoWjoyMA7Q9Qd38iIiIiatoKCwvh6+ur/x6/FwagWuiGvZycnBiAiIiImpn7mb7CSdBERERkcRiAiIiIyOIwABEREZHF4RwgIiIye2q1GlVVVVKXQQ1kZWUFuVxulGMxABERkdkSRREZGRnIz8+XuhQyEmdnZ3h5eTV4nT4GICIiMlu68OPh4QE7OzsubtuMiaKI0tJSZGVlAQC8vb0bdDwGICIiMktqtVofftzc3KQuh4zA1tYWAJCVlQUPD48GDYdxEjQREZkl3ZwfOzs7iSshY9L9fTZ0TpfkAWjlypXw9/eHjY0NIiIikJCQcNe2J0+exMiRI+Hv7w9BELBs2bIGH5OIiMwbh73Mi7H+PiUNQBs2bMDMmTOxcOFCHD58GKGhoYiKitKP792utLQUbdq0wTvvvAMvLy+jHJOIiIgsj6QBaOnSpXjmmWcwadIkdOzYEatXr4adnR2+/PLLWtv37NkT77//Pp588kkolUqjHJOIiMjc+fv733XUxFJJ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\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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\n"},"metadata":{}}],"execution_count":8},{"cell_type":"code","source":"# transforms は学習と同じものを使用\ntest_transform = transform  \n\n# testデータセット作成\nclass TestDataset(torch.utils.data.Dataset):\n    def __init__(self, file_paths, transform=None):\n        self.file_paths = file_paths\n        self.transform = transform\n\n    def __len__(self):\n        return len(self.file_paths)\n\n    def __getitem__(self, idx):\n        img_path = self.file_paths[idx]\n        image = Image.open(img_path).convert(\"RGB\")\n        if self.transform:\n            image = self.transform(image)\n        return image, img_path\n\n# testファイル一覧\ntest_dataset = TestDataset(test_files, transform=test_transform)\ntest_loader = DataLoader(test_dataset, batch_size=32, shuffle=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:55:33.573524Z","iopub.execute_input":"2025-07-11T07:55:33.573788Z","iopub.status.idle":"2025-07-11T07:55:33.579354Z","shell.execute_reply.started":"2025-07-11T07:55:33.573771Z","shell.execute_reply":"2025-07-11T07:55:33.578479Z"}},"outputs":[],"execution_count":9},{"cell_type":"code","source":"# 推論モード\nmodel.eval()\nall_preds = []\nall_ids = []\n\nwith torch.no_grad():\n    for images, paths in tqdm(test_loader):\n        images = images.to(device)\n        outputs = model(images)\n#        _, preds = torch.max(outputs, 1) # ここで0or1分類しているのでsoftmaxで確率に変更する\n        probs = torch.softmax(outputs, dim=1)\n        preds = probs[:, 1].cpu().numpy() # 犬クラスの確率\n        all_preds.extend(preds)\n        all_ids.extend([int(os.path.basename(p).split(\".\")[0]) for p in paths])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:55:33.58011Z","iopub.execute_input":"2025-07-11T07:55:33.58032Z","iopub.status.idle":"2025-07-11T07:56:27.1366Z","shell.execute_reply.started":"2025-07-11T07:55:33.580304Z","shell.execute_reply":"2025-07-11T07:56:27.135982Z"}},"outputs":[{"name":"stderr","text":"100%|██████████| 391/391 [00:53<00:00,  7.30it/s]\n","output_type":"stream"}],"execution_count":10},{"cell_type":"code","source":"#CSVファイル作成\n# idとlabelをDataFrameに\nsubmission_df = pd.DataFrame({\n    \"id\": all_ids,\n    \"label\": all_preds\n})\n\nsubmission_df = submission_df.sort_values(\"id\").reset_index(drop=True)\nsubmission_df.to_csv(\"/kaggle/working/submission.csv\", index=False)\n# チェック\nprint(submission_df.dtypes)\nprint(submission_df.head())\nprint(submission_df[\"label\"].min(), submission_df[\"label\"].max())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-11T07:56:27.137248Z","iopub.execute_input":"2025-07-11T07:56:27.137474Z","iopub.status.idle":"2025-07-11T07:56:27.215864Z","shell.execute_reply.started":"2025-07-11T07:56:27.13745Z","shell.execute_reply":"2025-07-11T07:56:27.215283Z"}},"outputs":[{"name":"stdout","text":"id         int64\nlabel    float32\ndtype: object\n   id         label\n0   1  1.000000e+00\n1   2  9.999992e-01\n2   3  9.999996e-01\n3   4  9.999433e-01\n4   5  2.694330e-08\n8.01950859407609e-18 1.0\n","output_type":"stream"}],"execution_count":11}]}