{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "ab0628fc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "šŸ” Exploring RegNet Y 16GF structure...\n", "šŸ“Š Total parameters: 428\n", "\n", "šŸ—ļø RegNet Structure Analysis:\n", "\n", "šŸ“ stem.0: 1 parameters\n", " • stem.0.weight\n", "\n", "šŸ“ stem.1: 5 parameters\n", " • stem.1.weight\n", " • stem.1.bias\n", " • stem.1.running_mean\n", " • stem.1.running_var\n", " • stem.1.num_batches_tracked\n", "\n", "šŸ“ trunk_output.block1: 50 parameters\n", " • trunk_output.block1.block1-0.proj.0.weight\n", " • trunk_output.block1.block1-0.proj.1.weight\n", " • trunk_output.block1.block1-0.proj.1.bias\n", " • trunk_output.block1.block1-0.proj.1.running_mean\n", " • trunk_output.block1.block1-0.proj.1.running_var\n", " ... and 45 more\n", "\n", "šŸ“ trunk_output.block2: 94 parameters\n", " • trunk_output.block2.block2-0.proj.0.weight\n", " • trunk_output.block2.block2-0.proj.1.weight\n", " • trunk_output.block2.block2-0.proj.1.bias\n", " • trunk_output.block2.block2-0.proj.1.running_mean\n", " • trunk_output.block2.block2-0.proj.1.running_var\n", " ... and 89 more\n", "\n", "šŸ“ trunk_output.block3: 248 parameters\n", " • trunk_output.block3.block3-0.proj.0.weight\n", " • trunk_output.block3.block3-0.proj.1.weight\n", " • trunk_output.block3.block3-0.proj.1.bias\n", " • trunk_output.block3.block3-0.proj.1.running_mean\n", " • trunk_output.block3.block3-0.proj.1.running_var\n", " ... and 243 more\n", "\n", "šŸ“ trunk_output.block4: 28 parameters\n", " • trunk_output.block4.block4-0.proj.0.weight\n", " • trunk_output.block4.block4-0.proj.1.weight\n", " • trunk_output.block4.block4-0.proj.1.bias\n", " • trunk_output.block4.block4-0.proj.1.running_mean\n", " • trunk_output.block4.block4-0.proj.1.running_var\n", " ... and 23 more\n", "\n", "šŸ“ fc.weight: 1 parameters\n", " • fc.weight\n", "\n", "šŸ“ fc.bias: 1 parameters\n", " • fc.bias\n", "\n", "============================================================\n", "šŸ” Searching for conv layers specifically:\n", "Found 0 conv parameters:\n", "\n", "============================================================\n", "šŸ” Looking for block structure:\n", "Found 420 block parameters:\n", " • trunk_output.block1.block1-0.proj.0.weight\n", " • trunk_output.block1.block1-0.proj.1.weight\n", " • trunk_output.block1.block1-0.proj.1.bias\n", " • trunk_output.block1.block1-0.proj.1.running_mean\n", " • trunk_output.block1.block1-0.proj.1.running_var\n", " • trunk_output.block1.block1-0.proj.1.num_batches_tracked\n", " • trunk_output.block1.block1-0.f.a.0.weight\n", " • trunk_output.block1.block1-0.f.a.1.weight\n", " • trunk_output.block1.block1-0.f.a.1.bias\n", " • trunk_output.block1.block1-0.f.a.1.running_mean\n", " ... and 410 more\n", "\n", "============================================================\n", "šŸ’” ANALYSIS COMPLETE\n", "Use the output above to understand the correct parameter structure\n", "and update the validation logic accordingly.\n" ] } ], "source": [ "import torch\n", "from torchvision import models\n", "\n", "def explore_regnet_structure():\n", " \"\"\"Explore the actual RegNet structure to understand parameter names\"\"\"\n", " print(\"šŸ” Exploring RegNet Y 16GF structure...\")\n", " \n", " # Load RegNet with pretrained weights\n", " model = models.regnet_y_16gf(weights=models.RegNet_Y_16GF_Weights.IMAGENET1K_SWAG_E2E_V1)\n", " \n", " # Get all parameter names\n", " param_names = list(model.state_dict().keys())\n", " \n", " print(f\"šŸ“Š Total parameters: {len(param_names)}\")\n", " print(\"\\nšŸ—ļø RegNet Structure Analysis:\")\n", " \n", " # Group parameters by component\n", " components = {}\n", " for name in param_names:\n", " parts = name.split('.')\n", " if len(parts) >= 2:\n", " component = f\"{parts[0]}.{parts[1]}\"\n", " if component not in components:\n", " components[component] = []\n", " components[component].append(name)\n", " \n", " # Display structure\n", " for component, params in components.items():\n", " print(f\"\\nšŸ“ {component}: {len(params)} parameters\")\n", " # Show first few parameter names as examples\n", " for i, param in enumerate(params[:5]):\n", " print(f\" • {param}\")\n", " if len(params) > 5:\n", " print(f\" ... and {len(params) - 5} more\")\n", " \n", " print(\"\\n\" + \"=\"*60)\n", " print(\"šŸ” Searching for conv layers specifically:\")\n", " conv_params = [name for name in param_names if 'conv' in name.lower()]\n", " print(f\"Found {len(conv_params)} conv parameters:\")\n", " for param in conv_params[:10]: # Show first 10\n", " print(f\" • {param}\")\n", " if len(conv_params) > 10:\n", " print(f\" ... and {len(conv_params) - 10} more\")\n", " \n", " print(\"\\n\" + \"=\"*60)\n", " print(\"šŸ” Looking for block structure:\")\n", " block_params = [name for name in param_names if 'block' in name.lower()]\n", " print(f\"Found {len(block_params)} block parameters:\")\n", " for param in block_params[:10]:\n", " print(f\" • {param}\")\n", " if len(block_params) > 10:\n", " print(f\" ... and {len(block_params) - 10} more\")\n", " \n", " return param_names, model\n", "\n", "if __name__ == \"__main__\":\n", " try:\n", " param_names, model = explore_regnet_structure()\n", " \n", " print(\"\\n\" + \"=\"*60)\n", " print(\"šŸ’” ANALYSIS COMPLETE\")\n", " print(\"Use the output above to understand the correct parameter structure\")\n", " print(\"and update the validation logic accordingly.\")\n", " \n", " except Exception as e:\n", " print(f\"āŒ Error exploring RegNet: {e}\")\n", " print(\"Make sure you have internet access to download RegNet weights\")" ] }, { "cell_type": "code", "execution_count": null, "id": "d6a4fd46", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.0" } }, "nbformat": 4, "nbformat_minor": 5 }