{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":21669,"databundleVersionId":1692278,"sourceType":"competition"}],"dockerImageVersionId":31193,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import os\nimport random\nimport copy\nimport csv\n\nimport numpy as np\nimport pandas as pd\nimport librosa\n\nfrom concurrent.futures import ThreadPoolExecutor\n\nimport torch\nimport torch.nn as nn\nfrom torch.utils.data import Dataset, DataLoader\n\nfrom torchvision.models import resnet50\n\nfrom skimage.transform import resize\nfrom skimage import exposure, util\n\nfrom sklearn.model_selection import KFold\n\ndevice = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n\nNUM_CLASSES = 24\nSR = 48000\nCLIP_SECONDS = 10\nCLIP_SAMPLES = CLIP_SECONDS * SR\n\nLEARNING_RATE = 1e-4\nEPOCHS = 20\nN_FOLDS = 5\n\ntrain_csv_path = \"/kaggle/input/rfcx-species-audio-detection/train_tp.csv\"\ntrain_audio_dir = \"/kaggle/input/rfcx-species-audio-detection/train\"\ntest_audio_dir = \"/kaggle/input/rfcx-species-audio-detection/test\"\nsample_sub_path = \"/kaggle/input/rfcx-species-audio-detection/sample_submission.csv\"","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-12-15T18:54:44.055107Z","iopub.execute_input":"2025-12-15T18:54:44.055264Z","iopub.status.idle":"2025-12-15T18:54:53.846389Z","shell.execute_reply.started":"2025-12-15T18:54:44.055249Z","shell.execute_reply":"2025-12-15T18:54:53.845567Z"}},"outputs":[],"execution_count":1},{"cell_type":"code","source":"train_df = pd.read_csv(train_csv_path)\n\nf_min = train_df[\"f_min\"].min()\nf_max = train_df[\"f_max\"].max()\n\nf_min = int(f_min * 0.9)\nf_max = int(f_max * 1.1)\n\ndef spec_to_image(spec):\n    spec_resized = resize(spec, (224, 400))\n    eps = 1e-6\n    mean = spec_resized.mean()\n    std = spec_resized.std()\n    spec_norm = (spec_resized - mean) / (std + eps)\n    spec_min = spec_norm.min()\n    spec_max = spec_norm.max()\n    spec_scaled = 255 * (spec_norm - spec_min) / (spec_max - spec_min + eps)\n    spec_scaled = spec_scaled.astype(np.uint8)\n    return spec_scaled","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-12-15T18:54:53.847978Z","iopub.execute_input":"2025-12-15T18:54:53.848325Z","iopub.status.idle":"2025-12-15T18:54:53.871094Z","shell.execute_reply.started":"2025-12-15T18:54:53.848306Z","shell.execute_reply":"2025-12-15T18:54:53.870469Z"}},"outputs":[],"execution_count":2},{"cell_type":"code","source":"class SimpleAugment:\n    def __init__(self):\n        self.transforms = [self.add_noise, self.change_contrast]\n\n    def add_noise(self, image):\n        noisy = util.random_noise(image)\n        return np.stack([noisy] * 3)\n\n    def change_contrast(self, image):\n        img = exposure.rescale_intensity(image)\n        return np.stack([img] * 3)\n\n    def apply(self, image):\n        func = random.choice(self.transforms)\n        return func(image)\n\nrecording_ids = train_df[\"recording_id\"].tolist()\nlabels = train_df[\"species_id\"].tolist()\n\ntrain_spects = {}\n\ndef process_one(index):\n    rec_id = recording_ids[index]\n    wav_path = os.path.join(train_audio_dir, rec_id + \".flac\")\n    wav, sr = librosa.load(wav_path, sr=None)\n\n    t_min = int(train_df.at[index, \"t_min\"] * sr)\n    t_max = int(train_df.at[index, \"t_max\"] * sr)\n\n    center = int((t_min + t_max) / 2)\n    start = max(center - CLIP_SAMPLES // 2, 0)\n    end = min(start + CLIP_SAMPLES, len(wav))\n    start = end - CLIP_SAMPLES if end - start < CLIP_SAMPLES else start\n\n    segment = wav[start:end]\n    mel = librosa.feature.melspectrogram(\n        y=segment,\n        sr=sr,\n        fmin=f_min,\n        fmax=f_max\n    )\n    mel_db = librosa.power_to_db(mel, top_db=80)\n    img = spec_to_image(mel_db)\n    return rec_id, img\n\nwith ThreadPoolExecutor() as executor:\n    results = list(executor.map(process_one, range(len(train_df))))\n\nfor rec_id, img in results:\n    train_spects[rec_id] = img\n\naugmenter = SimpleAugment()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-12-15T18:54:53.871867Z","iopub.execute_input":"2025-12-15T18:54:53.872121Z","iopub.status.idle":"2025-12-15T18:56:05.338995Z","shell.execute_reply.started":"2025-12-15T18:54:53.872096Z","shell.execute_reply":"2025-12-15T18:56:05.338391Z"}},"outputs":[{"name":"stderr","text":"/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/2906261566.py:25: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(wav_path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n","output_type":"stream"}],"execution_count":3},{"cell_type":"code","source":"class SpectrogramDataset(Dataset):\n    def __init__(self, rec_ids, targets, mode):\n        self.rec_ids = rec_ids\n        self.targets = targets\n        self.mode = mode\n        self.storage = train_spects\n\n    def __len__(self):\n        return len(self.rec_ids)\n\n    def __getitem__(self, idx):\n        rec_id = self.rec_ids[idx]\n        label = self.targets[idx]\n        img = self.storage[rec_id]\n\n        if self.mode == \"train\":\n            img3 = augmenter.apply(img)\n        else:\n            img3 = np.stack([img] * 3)\n\n        return img3, label\n\ndef build_model():\n    model = resnet50(pretrained=True)\n    in_features = model.fc.in_features\n    model.fc = nn.Sequential(\n        nn.Dropout(0.3),\n        nn.Linear(in_features, in_features // 2),\n        nn.ReLU(inplace=True),\n        nn.Linear(in_features // 2, NUM_CLASSES)\n    )\n    return model.to(device)\n\ncriterion = nn.CrossEntropyLoss()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-12-15T18:56:05.339805Z","iopub.execute_input":"2025-12-15T18:56:05.340267Z","iopub.status.idle":"2025-12-15T18:56:05.347066Z","shell.execute_reply.started":"2025-12-15T18:56:05.34024Z","shell.execute_reply":"2025-12-15T18:56:05.346323Z"}},"outputs":[],"execution_count":4},{"cell_type":"code","source":"def train_one_fold(model, train_loader, valid_loader, optimizer, scheduler):\n    best_wts = copy.deepcopy(model.state_dict())\n    best_acc = 0.0\n\n    for epoch in range(1, EPOCHS + 1):\n        model.train()\n        train_losses = []\n\n        for batch_imgs, batch_labels in train_loader:\n            optimizer.zero_grad()\n            x = batch_imgs.to(device, dtype=torch.float32)\n            y = batch_labels.to(device, dtype=torch.long)\n            outputs = model(x)\n            loss = criterion(outputs, y)\n            loss.backward()\n            optimizer.step()\n            train_losses.append(loss.item())\n\n        model.eval()\n        valid_losses = []\n        all_true = []\n        all_pred = []\n\n        with torch.no_grad():\n            for batch_imgs, batch_labels in valid_loader:\n                x = batch_imgs.to(device, dtype=torch.float32)\n                y = batch_labels.to(device, dtype=torch.long)\n                outputs = model(x)\n                loss = criterion(outputs, y)\n                valid_losses.append(loss.item())\n                all_true.append(y.cpu().numpy())\n                all_pred.append(outputs.cpu().numpy())\n\n        all_true = np.concatenate(all_true)\n        all_pred = np.concatenate(all_pred)\n        acc = np.mean(all_pred.argmax(axis=1) == all_true)\n\n        train_loss = float(np.mean(train_losses))\n        valid_loss = float(np.mean(valid_losses))\n\n        print(\"epoch:\", epoch, \"train_loss:\", round(train_loss, 4),\n              \"val_loss:\", round(valid_loss, 4),\n              \"val_acc:\", round(acc, 4))\n\n        scheduler.step(valid_loss)\n        if acc > best_acc:\n            best_acc = acc\n            best_wts = copy.deepcopy(model.state_dict())\n\n    model.load_state_dict(best_wts)\n    return model\n\nkf = KFold(n_splits=N_FOLDS, shuffle=True, random_state=563)\n\nall_rec_ids = np.array(recording_ids)\nall_labels = np.array(labels)\n\nfor fold_idx, (train_idx, valid_idx) in enumerate(kf.split(all_rec_ids, all_labels)):\n    print(\"Fold\", fold_idx)\n    x_train = all_rec_ids[train_idx]\n    y_train = all_labels[train_idx]\n    x_valid = all_rec_ids[valid_idx]\n    y_valid = all_labels[valid_idx]\n\n    train_dataset = SpectrogramDataset(x_train, y_train, mode=\"train\")\n    valid_dataset = SpectrogramDataset(x_valid, y_valid, mode=\"valid\")\n\n    train_loader = DataLoader(train_dataset, batch_size=8, shuffle=True, drop_last=True)\n    valid_loader = DataLoader(valid_dataset, batch_size=8, shuffle=False, drop_last=False)\n\n    model = build_model()\n    optimizer = torch.optim.Adam(model.parameters(), lr=LEARNING_RATE)\n    scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode=\"min\", patience=3)\n\n    model = train_one_fold(model, train_loader, valid_loader, optimizer, scheduler)\n    torch.save(model.state_dict(), f\"model_fold_{fold_idx}.pth\")\n\n    del train_dataset, valid_dataset, train_loader, valid_loader, model\n    torch.cuda.empty_cache()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-12-15T18:56:05.348539Z","iopub.execute_input":"2025-12-15T18:56:05.349032Z","iopub.status.idle":"2025-12-15T19:34:53.996474Z","shell.execute_reply.started":"2025-12-15T18:56:05.349014Z","shell.execute_reply":"2025-12-15T19:34:53.995697Z"}},"outputs":[{"name":"stdout","text":"Fold 0\n","output_type":"stream"},{"name":"stderr","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=ResNet50_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet50_Weights.DEFAULT` to get the most up-to-date weights.\n  warnings.warn(msg)\nDownloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n100%|██████████| 97.8M/97.8M [00:00<00:00, 205MB/s] \n","output_type":"stream"},{"name":"stdout","text":"epoch: 1 train_loss: 3.0456 val_loss: 2.6287 val_acc: 0.1434\nepoch: 2 train_loss: 2.6693 val_loss: 2.4491 val_acc: 0.2295\nepoch: 3 train_loss: 2.3035 val_loss: 1.7823 val_acc: 0.4795\nepoch: 4 train_loss: 1.856 val_loss: 1.6052 val_acc: 0.5533\nepoch: 5 train_loss: 1.5516 val_loss: 1.2722 val_acc: 0.6475\nepoch: 6 train_loss: 1.3608 val_loss: 1.0774 val_acc: 0.7541\nepoch: 7 train_loss: 1.1642 val_loss: 1.1892 val_acc: 0.6762\nepoch: 8 train_loss: 0.9941 val_loss: 1.1098 val_acc: 0.7213\nepoch: 9 train_loss: 0.9026 val_loss: 0.8477 val_acc: 0.7705\nepoch: 10 train_loss: 0.756 val_loss: 0.956 val_acc: 0.7746\nepoch: 11 train_loss: 0.7122 val_loss: 1.0461 val_acc: 0.7377\nepoch: 12 train_loss: 0.6501 val_loss: 1.0319 val_acc: 0.7623\nepoch: 13 train_loss: 0.5995 val_loss: 1.104 val_acc: 0.7828\nepoch: 14 train_loss: 0.4025 val_loss: 0.9096 val_acc: 0.8074\nepoch: 15 train_loss: 0.3215 val_loss: 0.9095 val_acc: 0.7869\nepoch: 16 train_loss: 0.294 val_loss: 0.8851 val_acc: 0.8115\nepoch: 17 train_loss: 0.2516 val_loss: 0.8807 val_acc: 0.7992\nepoch: 18 train_loss: 0.2202 val_loss: 0.8867 val_acc: 0.7992\nepoch: 19 train_loss: 0.242 val_loss: 0.8975 val_acc: 0.8033\nepoch: 20 train_loss: 0.2414 val_loss: 0.8788 val_acc: 0.8074\nFold 1\nepoch: 1 train_loss: 3.0729 val_loss: 2.5549 val_acc: 0.2181\nepoch: 2 train_loss: 2.7395 val_loss: 2.5649 val_acc: 0.251\nepoch: 3 train_loss: 2.3895 val_loss: 1.8954 val_acc: 0.4444\nepoch: 4 train_loss: 2.0656 val_loss: 1.5291 val_acc: 0.6091\nepoch: 5 train_loss: 1.7249 val_loss: 1.3551 val_acc: 0.6626\nepoch: 6 train_loss: 1.5135 val_loss: 1.2463 val_acc: 0.6502\nepoch: 7 train_loss: 1.2993 val_loss: 1.1278 val_acc: 0.6996\nepoch: 8 train_loss: 1.0984 val_loss: 1.2314 val_acc: 0.6996\nepoch: 9 train_loss: 0.9727 val_loss: 1.2637 val_acc: 0.7407\nepoch: 10 train_loss: 0.8269 val_loss: 1.1742 val_acc: 0.7449\nepoch: 11 train_loss: 0.741 val_loss: 1.0483 val_acc: 0.7613\nepoch: 12 train_loss: 0.6945 val_loss: 1.3148 val_acc: 0.7119\nepoch: 13 train_loss: 0.588 val_loss: 1.201 val_acc: 0.716\nepoch: 14 train_loss: 0.5436 val_loss: 1.0938 val_acc: 0.7613\nepoch: 15 train_loss: 0.5348 val_loss: 1.1242 val_acc: 0.7819\nepoch: 16 train_loss: 0.4041 val_loss: 0.9407 val_acc: 0.786\nepoch: 17 train_loss: 0.2814 val_loss: 1.0065 val_acc: 0.786\nepoch: 18 train_loss: 0.2696 val_loss: 0.9511 val_acc: 0.7819\nepoch: 19 train_loss: 0.231 val_loss: 1.017 val_acc: 0.7942\nepoch: 20 train_loss: 0.2186 val_loss: 0.9922 val_acc: 0.7819\nFold 2\nepoch: 1 train_loss: 3.0322 val_loss: 2.7849 val_acc: 0.1523\nepoch: 2 train_loss: 2.783 val_loss: 2.4693 val_acc: 0.2922\nepoch: 3 train_loss: 2.49 val_loss: 2.3323 val_acc: 0.2922\nepoch: 4 train_loss: 2.176 val_loss: 1.6692 val_acc: 0.4691\nepoch: 5 train_loss: 2.0267 val_loss: 1.8512 val_acc: 0.4938\nepoch: 6 train_loss: 1.7932 val_loss: 2.4421 val_acc: 0.4156\nepoch: 7 train_loss: 1.5753 val_loss: 1.3668 val_acc: 0.6091\nepoch: 8 train_loss: 1.3947 val_loss: 1.4601 val_acc: 0.6461\nepoch: 9 train_loss: 1.1185 val_loss: 1.2682 val_acc: 0.7078\nepoch: 10 train_loss: 1.029 val_loss: 1.2245 val_acc: 0.6872\nepoch: 11 train_loss: 0.9733 val_loss: 1.0412 val_acc: 0.7119\nepoch: 12 train_loss: 0.7792 val_loss: 0.9172 val_acc: 0.7449\nepoch: 13 train_loss: 0.735 val_loss: 1.1145 val_acc: 0.7078\nepoch: 14 train_loss: 0.616 val_loss: 1.1332 val_acc: 0.7325\nepoch: 15 train_loss: 0.6603 val_loss: 1.0987 val_acc: 0.7613\nepoch: 16 train_loss: 0.6483 val_loss: 1.0732 val_acc: 0.7243\nepoch: 17 train_loss: 0.3793 val_loss: 0.9608 val_acc: 0.7778\nepoch: 18 train_loss: 0.3203 val_loss: 0.9487 val_acc: 0.7778\nepoch: 19 train_loss: 0.2555 val_loss: 0.9627 val_acc: 0.7901\nepoch: 20 train_loss: 0.2373 val_loss: 1.006 val_acc: 0.7737\nFold 3\nepoch: 1 train_loss: 3.0666 val_loss: 2.7299 val_acc: 0.144\nepoch: 2 train_loss: 2.7032 val_loss: 2.295 val_acc: 0.2922\nepoch: 3 train_loss: 2.357 val_loss: 2.3741 val_acc: 0.3704\nepoch: 4 train_loss: 2.0052 val_loss: 1.7368 val_acc: 0.5309\nepoch: 5 train_loss: 1.7217 val_loss: 1.8739 val_acc: 0.5391\nepoch: 6 train_loss: 1.4066 val_loss: 1.2837 val_acc: 0.6461\nepoch: 7 train_loss: 1.1183 val_loss: 1.2 val_acc: 0.6831\nepoch: 8 train_loss: 1.0178 val_loss: 1.2049 val_acc: 0.716\nepoch: 9 train_loss: 0.9127 val_loss: 1.0777 val_acc: 0.7243\nepoch: 10 train_loss: 0.8719 val_loss: 1.2228 val_acc: 0.7407\nepoch: 11 train_loss: 0.7453 val_loss: 1.2135 val_acc: 0.7407\nepoch: 12 train_loss: 0.6277 val_loss: 0.9455 val_acc: 0.7654\nepoch: 13 train_loss: 0.5875 val_loss: 1.0819 val_acc: 0.7531\nepoch: 14 train_loss: 0.4832 val_loss: 0.9168 val_acc: 0.7901\nepoch: 15 train_loss: 0.4507 val_loss: 1.1122 val_acc: 0.7654\nepoch: 16 train_loss: 0.4211 val_loss: 1.1233 val_acc: 0.7613\nepoch: 17 train_loss: 0.3837 val_loss: 1.3358 val_acc: 0.7449\nepoch: 18 train_loss: 0.3655 val_loss: 1.1198 val_acc: 0.786\nepoch: 19 train_loss: 0.2642 val_loss: 1.0437 val_acc: 0.7984\nepoch: 20 train_loss: 0.1826 val_loss: 1.0738 val_acc: 0.8025\nFold 4\nepoch: 1 train_loss: 3.0953 val_loss: 2.8179 val_acc: 0.1235\nepoch: 2 train_loss: 2.7761 val_loss: 2.6165 val_acc: 0.2634\nepoch: 3 train_loss: 2.4572 val_loss: 2.0449 val_acc: 0.3169\nepoch: 4 train_loss: 2.1786 val_loss: 2.3623 val_acc: 0.4239\nepoch: 5 train_loss: 1.8968 val_loss: 1.8418 val_acc: 0.5185\nepoch: 6 train_loss: 1.714 val_loss: 1.6324 val_acc: 0.5556\nepoch: 7 train_loss: 1.4176 val_loss: 1.6344 val_acc: 0.5761\nepoch: 8 train_loss: 1.1968 val_loss: 1.8464 val_acc: 0.5967\nepoch: 9 train_loss: 1.063 val_loss: 1.3087 val_acc: 0.6955\nepoch: 10 train_loss: 0.9048 val_loss: 1.2216 val_acc: 0.716\nepoch: 11 train_loss: 0.8103 val_loss: 1.218 val_acc: 0.7449\nepoch: 12 train_loss: 0.6886 val_loss: 1.2069 val_acc: 0.7531\nepoch: 13 train_loss: 0.6374 val_loss: 1.1698 val_acc: 0.7819\nepoch: 14 train_loss: 0.584 val_loss: 1.442 val_acc: 0.7119\nepoch: 15 train_loss: 0.4738 val_loss: 1.4514 val_acc: 0.7119\nepoch: 16 train_loss: 0.4811 val_loss: 1.3165 val_acc: 0.749\nepoch: 17 train_loss: 0.4049 val_loss: 1.2177 val_acc: 0.786\nepoch: 18 train_loss: 0.2707 val_loss: 1.0728 val_acc: 0.8148\nepoch: 19 train_loss: 0.2211 val_loss: 1.0739 val_acc: 0.8148\nepoch: 20 train_loss: 0.1877 val_loss: 1.0683 val_acc: 0.8189\n","output_type":"stream"}],"execution_count":5},{"cell_type":"code","source":"def load_test_file(file_name):\n    path = os.path.join(test_audio_dir, file_name)\n    wav, sr = librosa.load(path, sr=None)\n    total_len = len(wav)\n    segments = int(np.ceil(total_len / CLIP_SAMPLES))\n\n    clips = []\n    for i in range(segments):\n        start = i * CLIP_SAMPLES\n        end = start + CLIP_SAMPLES\n        if end > total_len:\n            start = max(total_len - CLIP_SAMPLES, 0)\n            end = total_len\n        segment = wav[start:end]\n        if len(segment) < CLIP_SAMPLES:\n            pad = np.zeros(CLIP_SAMPLES - len(segment))\n            segment = np.concatenate([segment, pad])\n        mel = librosa.feature.melspectrogram(\n            y=segment,\n            sr=sr,\n            fmin=f_min,\n            fmax=f_max\n        )\n        mel_db = librosa.power_to_db(mel, top_db=80)\n        img = spec_to_image(mel_db)\n        img3 = np.stack([img] * 3)\n        clips.append(img3)\n    return np.stack(clips)\n\nsample_sub = pd.read_csv(sample_sub_path)\ntest_files = sample_sub[\"recording_id\"].tolist()\n\nfold_models = []\nfor fold_idx in range(N_FOLDS):\n    m = build_model()\n    m.load_state_dict(torch.load(f\"model_fold_{fold_idx}.pth\", map_location=device))\n    m.eval()\n    fold_models.append(m)\n\npred_rows = []\n\nfor rec_id in test_files:\n    file_name = rec_id + \".flac\"\n    batch = load_test_file(file_name)\n    batch_tensor = torch.tensor(batch, dtype=torch.float32).to(device)\n\n    with torch.no_grad():\n        fold_probs = []\n        for m in fold_models:\n            outputs = m(batch_tensor)\n            probs = torch.softmax(outputs, dim=1).cpu().numpy()\n            fold_probs.append(probs)\n        fold_probs = np.mean(fold_probs, axis=0)\n\n    mean_probs = fold_probs.mean(axis=0)\n\n    row = [rec_id] + [float(mean_probs[c]) for c in range(NUM_CLASSES)]\n    pred_rows.append(row)\n\ncols = [\"recording_id\"] + [f\"s{i}\" for i in range(NUM_CLASSES)]\npred_df = pd.DataFrame(pred_rows, columns=cols)\npred_df.to_csv(\"submission.csv\", index=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-12-15T19:57:21.860096Z","iopub.execute_input":"2025-12-15T19:57:21.861006Z","iopub.status.idle":"2025-12-15T20:11:56.302818Z","shell.execute_reply.started":"2025-12-15T19:57:21.860977Z","shell.execute_reply":"2025-12-15T20:11:56.302214Z"}},"outputs":[{"name":"stderr","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=ResNet50_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet50_Weights.DEFAULT` to get the most up-to-date weights.\n  warnings.warn(msg)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n/tmp/ipykernel_47/182173105.py:3: UserWarning: PySoundFile failed. Trying audioread instead.\n  wav, sr = librosa.load(path, sr=None)\n/usr/local/lib/python3.11/dist-packages/librosa/core/audio.py:184: FutureWarning: librosa.core.audio.__audioread_load\n\tDeprecated as of librosa version 0.10.0.\n\tIt will be removed in librosa version 1.0.\n  y, sr_native = __audioread_load(path, offset, duration, dtype)\n","output_type":"stream"}],"execution_count":9},{"cell_type":"code","source":"import pandas as pd\nsub = pd.read_csv(\"submission.csv\")\nsub.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-12-15T20:13:14.262138Z","iopub.execute_input":"2025-12-15T20:13:14.262684Z","iopub.status.idle":"2025-12-15T20:13:14.298775Z","shell.execute_reply.started":"2025-12-15T20:13:14.262663Z","shell.execute_reply":"2025-12-15T20:13:14.298144Z"}},"outputs":[{"execution_count":10,"output_type":"execute_result","data":{"text/plain":"  recording_id        s0        s1        s2        s3        s4        s5  \\\n0    000316da7  0.007935  0.003845  0.006940  0.520193  0.001749  0.018132   \n1    003bc2cb2  0.000010  0.003508  0.000010  0.018248  0.000032  0.000025   \n2    0061c037e  0.046480  0.022344  0.027557  0.143563  0.004231  0.129166   \n3    010eb14d3  0.733845  0.000756  0.000102  0.000983  0.001904  0.000689   \n4    011318064  0.002854  0.003150  0.002380  0.081338  0.000451  0.007473   \n\n         s6        s7        s8  ...       s14       s15       s16       s17  \\\n0  0.002905  0.009431  0.000963  ...  0.028501  0.017612  0.002797  0.000742   \n1  0.000032  0.001440  0.000010  ...  0.000029  0.000107  0.974130  0.000286   \n2  0.013290  0.129934  0.003413  ...  0.010045  0.031855  0.052204  0.007186   \n3  0.000022  0.000018  0.180227  ...  0.000091  0.000021  0.000007  0.000018   \n4  0.001793  0.019021  0.000382  ...  0.777863  0.053037  0.000268  0.000132   \n\n        s18       s19       s20       s21       s22       s23  \n0  0.190557  0.007698  0.001539  0.003281  0.008003  0.012009  \n1  0.000013  0.000196  0.000310  0.000014  0.000068  0.000126  \n2  0.008431  0.037060  0.081635  0.003126  0.073806  0.073614  \n3  0.075575  0.000074  0.000036  0.001317  0.000107  0.000150  \n4  0.012820  0.001411  0.012119  0.003959  0.001775  0.004719  \n\n[5 rows x 25 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>recording_id</th>\n      <th>s0</th>\n      <th>s1</th>\n      <th>s2</th>\n      <th>s3</th>\n      <th>s4</th>\n      <th>s5</th>\n      <th>s6</th>\n      <th>s7</th>\n      <th>s8</th>\n      <th>...</th>\n      <th>s14</th>\n      <th>s15</th>\n      <th>s16</th>\n      <th>s17</th>\n      <th>s18</th>\n      <th>s19</th>\n      <th>s20</th>\n      <th>s21</th>\n      <th>s22</th>\n      <th>s23</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>000316da7</td>\n      <td>0.007935</td>\n      <td>0.003845</td>\n      <td>0.006940</td>\n      <td>0.520193</td>\n      <td>0.001749</td>\n      <td>0.018132</td>\n      <td>0.002905</td>\n      <td>0.009431</td>\n      <td>0.000963</td>\n      <td>...</td>\n      <td>0.028501</td>\n      <td>0.017612</td>\n      <td>0.002797</td>\n      <td>0.000742</td>\n      <td>0.190557</td>\n      <td>0.007698</td>\n      <td>0.001539</td>\n      <td>0.003281</td>\n      <td>0.008003</td>\n      <td>0.012009</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>003bc2cb2</td>\n      <td>0.000010</td>\n      <td>0.003508</td>\n      <td>0.000010</td>\n      <td>0.018248</td>\n      <td>0.000032</td>\n      <td>0.000025</td>\n      <td>0.000032</td>\n      <td>0.001440</td>\n      <td>0.000010</td>\n      <td>...</td>\n      <td>0.000029</td>\n      <td>0.000107</td>\n      <td>0.974130</td>\n      <td>0.000286</td>\n      <td>0.000013</td>\n      <td>0.000196</td>\n      <td>0.000310</td>\n      <td>0.000014</td>\n      <td>0.000068</td>\n      <td>0.000126</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0061c037e</td>\n      <td>0.046480</td>\n      <td>0.022344</td>\n      <td>0.027557</td>\n      <td>0.143563</td>\n      <td>0.004231</td>\n      <td>0.129166</td>\n      <td>0.013290</td>\n      <td>0.129934</td>\n      <td>0.003413</td>\n      <td>...</td>\n      <td>0.010045</td>\n      <td>0.031855</td>\n      <td>0.052204</td>\n      <td>0.007186</td>\n      <td>0.008431</td>\n      <td>0.037060</td>\n      <td>0.081635</td>\n      <td>0.003126</td>\n      <td>0.073806</td>\n      <td>0.073614</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>010eb14d3</td>\n      <td>0.733845</td>\n      <td>0.000756</td>\n      <td>0.000102</td>\n      <td>0.000983</td>\n      <td>0.001904</td>\n      <td>0.000689</td>\n      <td>0.000022</td>\n      <td>0.000018</td>\n      <td>0.180227</td>\n      <td>...</td>\n      <td>0.000091</td>\n      <td>0.000021</td>\n      <td>0.000007</td>\n      <td>0.000018</td>\n      <td>0.075575</td>\n      <td>0.000074</td>\n      <td>0.000036</td>\n      <td>0.001317</td>\n      <td>0.000107</td>\n      <td>0.000150</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>011318064</td>\n      <td>0.002854</td>\n      <td>0.003150</td>\n      <td>0.002380</td>\n      <td>0.081338</td>\n      <td>0.000451</td>\n      <td>0.007473</td>\n      <td>0.001793</td>\n      <td>0.019021</td>\n      <td>0.000382</td>\n      <td>...</td>\n      <td>0.777863</td>\n      <td>0.053037</td>\n      <td>0.000268</td>\n      <td>0.000132</td>\n      <td>0.012820</td>\n      <td>0.001411</td>\n      <td>0.012119</td>\n      <td>0.003959</td>\n      <td>0.001775</td>\n      <td>0.004719</td>\n    </tr>\n  </tbody>\n</table>\n<p>5 rows × 25 columns</p>\n</div>"},"metadata":{}}],"execution_count":10}]}