{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.12.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceType":"competition","sourceId":114094,"databundleVersionId":13610510},{"sourceType":"datasetVersion","sourceId":15059433,"datasetId":9641227,"databundleVersionId":15940437}],"dockerImageVersionId":31287,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip install ultralytics","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2026-03-29T17:28:36.428846Z","iopub.execute_input":"2026-03-29T17:28:36.429065Z","iopub.status.idle":"2026-03-29T17:28:43.297653Z","shell.execute_reply.started":"2026-03-29T17:28:36.429042Z","shell.execute_reply":"2026-03-29T17:28:43.296556Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import os\nimport yaml\nfrom ultralytics import YOLO\n\n# 📁 Caminho do dataset\ndataset_path = \"/kaggle/working/\"\n\n# 📌 Classes (edite conforme seu problema)\nclass_names = ['cheerios', 'soup', 'candle'] \n\n# 📄 Criando o arquivo data.yaml automaticamente\ndata = {\n    \"path\": dataset_path,\n    \"train\": \"/kaggle/input/competitions/grocery-items-multi-class-object-detection/train/train/images\",\n    \"val\": \"/kaggle/input/competitions/grocery-items-multi-class-object-detection/val/val/images\",\n    \"names\": {i: name for i, name in enumerate(class_names)}\n}\n\nyaml_path = os.path.join(dataset_path, \"data.yaml\")\n\nwith open(yaml_path, \"w\") as f:\n    yaml.dump(data, f)\n\nprint(f\"✅ data.yaml criado em: {yaml_path}\")\n\n# 🚀 Carregar modelo\nmodel = YOLO(\"yolov8n.pt\")\n\n# 🔥 Treinamento\nmodel.train(\n    data=yaml_path,\n    epochs=150,\n    imgsz=640,\n    batch=16,\n\n    # 🎨 AUGMENTATIONS\n    hsv_h=0.015,\n    hsv_s=0.7,\n    hsv_v=0.4,\n\n    fliplr=0.5,\n    mosaic=1.0,\n    mixup=0.2,\n\n    # ⚙️ OTIMIZAÇÃO\n    lr0=0.001,\n    weight_decay=0.0005,\n\n    # 📈 TREINO ESTÁVEL\n    patience=50,\n    cos_lr=True\n)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-03-29T17:40:47.334550Z","iopub.execute_input":"2026-03-29T17:40:47.335454Z","iopub.status.idle":"2026-03-29T18:12:36.918271Z","shell.execute_reply.started":"2026-03-29T17:40:47.335413Z","shell.execute_reply":"2026-03-29T18:12:36.916882Z"},"collapsed":true,"jupyter":{"outputs_hidden":true}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import shutil\n\n# 📁 Pasta que você quer compactar\nfolder_to_zip = \"/kaggle/working/runs\"\n\n# 📦 Nome do arquivo zip (sem .zip)\noutput_zip = \"/kaggle/working/runs_backup\"\n\n# 🔥 Criar zip\nshutil.make_archive(output_zip, 'zip', folder_to_zip)\n\nprint(\"✅ Pasta compactada com sucesso!\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-03-29T18:13:17.690650Z","iopub.execute_input":"2026-03-29T18:13:17.691154Z","iopub.status.idle":"2026-03-29T18:13:46.016199Z","shell.execute_reply.started":"2026-03-29T18:13:17.691085Z","shell.execute_reply":"2026-03-29T18:13:46.015368Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}