{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":91844,"databundleVersionId":11361821,"sourceType":"competition"}],"dockerImageVersionId":30919,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# ============================\n# Config and Imports\n# ============================\n\nimport os\nimport pandas as pd\nimport torch\n\nclass CFG:\n    data_dir = \"/kaggle/input/birdclef-2025\"\n    output_file = \"submission.csv\"\n    device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n\nprint(f\"[INFO] Using device: {CFG.device}\")\n\n# ============================\n# Pipeline Class\n# ============================\n\nclass BirdCLEF2025Pipeline:\n    def __init__(self, cfg):\n        self.cfg = cfg\n        self.submission_df = None\n\n    def run(self):\n        print(\"[INFO] Running prediction pipeline...\")\n\n        test_audio_dir = os.path.join(self.cfg.data_dir, \"test_soundscapes\")\n        test_files = [f for f in os.listdir(test_audio_dir) if f.endswith(\".ogg\")]\n        print(f\"[INFO] Found {len(test_files)} test audio files.\")\n\n        row_ids = []\n        targets = []\n\n        for file in test_files:\n            base_name = os.path.splitext(file)[0]\n            for i in range(5, 60, 5):  # row_ids in 5-second steps\n                row_id = f\"{base_name}_{i}\"\n                row_ids.append(row_id)\n                targets.append(0)  # Dummy prediction\n\n        self.submission_df = pd.DataFrame({\n            \"row_id\": row_ids,\n            \"target\": targets\n        })\n\n        print(\"[INFO] Submission DataFrame created.\")\n        print(self.submission_df.head())\n\n    def save_submission(self):\n        self.submission_df.to_csv(self.cfg.output_file, index=False)\n        print(f\"[INFO] Submission saved to {self.cfg.output_file}\")\n\n\n# ============================\n# Run the pipeline\n# ============================\n\nif __name__ == \"__main__\":\n    cfg = CFG()\n    pipeline = BirdCLEF2025Pipeline(cfg)\n    pipeline.run()\n    pipeline.save_submission()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-07T10:35:24.439170Z","iopub.execute_input":"2025-04-07T10:35:24.439469Z","iopub.status.idle":"2025-04-07T10:35:33.048981Z","shell.execute_reply.started":"2025-04-07T10:35:24.439442Z","shell.execute_reply":"2025-04-07T10:35:33.047927Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}