{"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":"none","dataSources":[{"sourceId":39763,"databundleVersionId":11756775,"sourceType":"competition"},{"sourceId":12112899,"sourceType":"datasetVersion","datasetId":7626403}],"dockerImageVersionId":31040,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"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-06-09T22:31:26.738993Z","iopub.execute_input":"2025-06-09T22:31:26.739278Z","iopub.status.idle":"2025-06-09T22:31:26.743772Z","shell.execute_reply.started":"2025-06-09T22:31:26.739261Z","shell.execute_reply":"2025-06-09T22:31:26.743143Z"}},"outputs":[],"execution_count":5},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import shutil\nimport os\n\nsource_path = '/kaggle/input/forapikey/kaggle.json'\ndestination_dir = '/root/.kaggle'\ndestination_path = os.path.join(destination_dir, 'kaggle.json')\n\n# Якщо .kaggle існує, але це не папка — видалити\nif os.path.exists(destination_dir) and not os.path.isdir(destination_dir):\n    os.remove(destination_dir)\n\n# Створити директорію, якщо не існує\nos.makedirs(destination_dir, exist_ok=True)\n\n# Копіювати файл\nshutil.copyfile(source_path, destination_path)\n\n# Задати права\nos.chmod(destination_path, 0o600)\n\n# Перевірити\nos.path.exists(destination_path)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-15T19:20:34.840478Z","iopub.execute_input":"2025-06-15T19:20:34.840797Z","iopub.status.idle":"2025-06-15T19:20:34.850507Z","shell.execute_reply.started":"2025-06-15T19:20:34.840773Z","shell.execute_reply":"2025-06-15T19:20:34.849689Z"}},"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"True"},"metadata":{}}],"execution_count":3},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom scipy import signal\nfrom scipy.fft import fft, fftfreq\nimport warnings\nwarnings.filterwarnings('ignore')\n\n# Set style for better plots\nplt.style.use('seaborn-v0_8')\nsns.set_palette(\"husl\")\n\nclass WaveformInversionAnalyzer:\n    def init(self, data_path='/kaggle/input/waveform-inversion/'):\n        \"\"\"\n        Initialize the analyzer with the path to the competition data\n        \"\"\"\n        self.data_path = data_path\n        self.train_data = None\n        self.test_data = None\n        self.sample_submission = None\n        \n    def load_data(self):\n        \"\"\"\n        Load all available data files\n        \"\"\"\n        try:\n            # Try to load common file formats\n            print(\"Loading data files...\")\n            \n            # Check for CSV files\n            import os\n            files = os.listdir(self.data_path) if os.path.exists(self.data_path) else []\n            print(f\"Available files: {files}\")\n            \n            for file in files:\n                if 'train' in file.lower() and file.endswith('.csv'):\n                    self.train_data = pd.read_csv(f\"{self.data_path}/{file}\")\n                    print(f\"Loaded training data: {file} - Shape: {self.train_data.shape}\")\n                \n                elif 'test' in file.lower() and file.endswith('.csv'):\n                    self.test_data = pd.read_csv(f\"{self.data_path}/{file}\")\n                    print(f\"Loaded test data: {file} - Shape: {self.test_data.shape}\")\n                \n                elif 'sample' in file.lower() or 'submission' in file.lower():\n                    self.sample_submission = pd.read_csv(f\"{self.data_path}/{file}\")\n                    print(f\"Loaded sample submission: {file} - Shape: {self.sample_submission.shape}\")\n            \n            # If no CSV files, try to load other formats (NPY, MAT, etc.)\n            if self.train_data is None:\n                for file in files:\n                    if file.endswith('.npy'):\n                        data = np.load(f\"{self.data_path}/{file}\")\n                        print(f\"Loaded numpy file: {file} - Shape: {data.shape}\")\n                        if 'train' in file.lower():\n                            self.train_data = pd.DataFrame(data)\n                        elif 'test' in file.lower():\n                            self.test_data = pd.DataFrame(data)\n            \n        except Exception as e:\n            print(f\"Error loading data: {e}\")\n            # Create sample data for demonstration\n            self.create_sample_data()\n    \n    def create_sample_data(self):\n        \"\"\"\n        Create sample waveform inversion data for demonstration\n        \"\"\"\n        print(\"Creating sample waveform data for demonstration...\")\n        \n        # Generate synthetic seismic data\n        n_samples = 1000\n        n_receivers = 50\n        n_time_steps = 200\n        \n        # Velocity models (what we want to predict)\n        velocity_models = np.random.uniform(1500, 4000, (n_samples, 25, 25))  # 2D velocity models\n        \n        # Observed waveforms (input features)\n        waveforms = []\n        for i in range(n_samples):\n            # Simulate waveform data based on velocity model\n            waveform = np.zeros((n_receivers, n_time_steps))\n            for r in range(n_receivers):\n                t = np.linspace(0, 2, n_time_steps)\n                # Add some physics-based variation\n                freq = 10 + r * 0.5\n                amplitude = np.exp(-t/0.5) * np.mean(velocity_models[i]) / 3000\n                waveform[r] = amplitude * np.sin(2*np.pi*freq*t) + np.random.normal(0, 0.1, n_time_steps)\n            waveforms.append(waveform.flatten())\n        \n        # Create training dataframe\n        waveform_df = pd.DataFrame(waveforms)\n        velocity_df = pd.DataFrame(velocity_models.reshape(n_samples, -1))\n        \n        self.train_data = pd.concat([waveform_df, velocity_df], axis=1)\n        self.train_data.columns = [f'waveform_{i}' for i in range(waveform_df.shape[1])] + \\\n                                 [f'velocity_{i}' for i in range(velocity_df.shape[1])]\n        \n        # Test data (without velocity targets)\n        test_waveforms = []\n        for i in range(500):\n            waveform = np.zeros((n_receivers, n_time_steps))\n            for r in range(n_receivers):\n                t = np.linspace(0, 2, n_time_steps)\n                freq = 10 + r * 0.5\n                amplitude = np.random.uniform(0.5, 1.5)\n                waveform[r] = amplitude * np.sin(2*np.pi*freq*t) + np.random.normal(0, 0.1, n_time_steps)\n            test_waveforms.append(waveform.flatten())\n        \n        self.test_data = pd.DataFrame(test_waveforms)\n        self.test_data.columns = [f'waveform_{i}' for i in range(self.test_data.shape[1])]\n        \n        print(f\"Created sample training data: {self.train_data.shape}\")\n        print(f\"Created sample test data: {self.test_data.shape}\")\n    \n    def basic_data_exploration(self):\n        \"\"\"\n        Perform basic data exploration\n        \"\"\"\n        print(\"=\" * 50)\n        print(\"BASIC DATA EXPLORATION\")\n        print(\"=\" * 50)\n        \n        if self.train_data is not None:\n            print(f\"\\nTraining Data Shape: {self.train_data.shape}\")\n            print(f\"Training Data Info:\")\n            print(self.train_data.info())\n            print(f\"\\nTraining Data Description:\")\n            print(self.train_data.describe())\n            \n            # Check for missing values\n            missing_values = self.train_data.isnull().sum()\n            if missing_values.sum() > 0:\n                print(f\"\\nMissing Values:\")\n                print(missing_values[missing_values > 0])\n            else:\n                print(\"\\nNo missing values found in training data\")\n        \n        if self.test_data is not None:\n            print(f\"\\nTest Data Shape: {self.test_data.shape}\")\n            print(f\"Test Data Info:\")\n            print(self.test_data.info())\n    \n    def visualize_waveforms(self):\n        \"\"\"\n        Visualize waveform data\n        \"\"\"\n        if self.train_data is None:\n            return\n        \n        print(\"Visualizing waveform data...\")\n        \n        # Extract waveform columns\n        waveform_cols = [col for col in self.train_data.columns if 'waveform' in col.lower()]\n        \n        if len(waveform_cols) == 0:\n            # If no specific waveform columns, use first half of columns\n            n_cols = len(self.train_data.columns)\n            waveform_cols = self.train_data.columns[:n_cols//2]\n        \n        fig, axes = plt.subplots(2, 2, figsize=(15, 10))\n        fig.suptitle('Waveform Data Visualization', fontsize=16)\n        \n        # Plot 1: Sample waveforms\n        n_receivers = int(np.sqrt(len(waveform_cols))) if len(waveform_cols) > 100 else 10\n        n_time_steps = len(waveform_cols) // n_receivers if len(waveform_cols) > 100 else len(waveform_cols)\n        \n        sample_idx = 0\n        waveform_data = self.train_data[waveform_cols].iloc[sample_idx].values\n        \n        if len(waveform_cols) > 100:  # If we have 2D waveform data\n            waveform_2d = waveform_data.reshape(n_receivers, n_time_steps)\n            im1 = axes[0,0].imshow(waveform_2d, aspect='auto', cmap='seismic')\n            axes[0,0].set_title(f'Sample Waveform (2D) - Sample {sample_idx}')\n            axes[0,0].set_xlabel('Time Steps')\n            axes[0,0].set_ylabel('Receivers')\n            plt.colorbar(im1, ax=axes[0,0])\n        else:  # 1D waveform data\n            axes[0,0].plot(waveform_data)\n            axes[0,0].set_title(f'Sample Waveform (1D) - Sample {sample_idx}')\n            axes[0,0].set_xlabel('Time/Feature Index')\n            axes[0,0].set_ylabel('Amplitude')\n        \n        # Plot 2: Multiple waveform samples\n        for i in range(min(5, len(self.train_data))):\n            if len(waveform_cols) > 100:\n                waveform_sample = self.train_data[waveform_cols].iloc[i].values[:n_time_steps]\n            else:\n                waveform_sample = self.train_data[waveform_cols].iloc[i].values\n            axes[0,1].plot(waveform_sample, alpha=0.7, label=f'Sample {i}')\n        axes[0,1].set_title('Multiple Waveform Samples')\n        axes[0,1].set_xlabel('Time/Feature Index')\n        axes[0,1].set_ylabel('Amplitude')\n        axes[0,1].legend()\n        \n        # Plot 3: Distribution of waveform amplitudes\n        all_waveform_data = self.train_data[waveform_cols].values.flatten()\n        axes[1,0].hist(all_waveform_data, bins=50, alpha=0.7, edgecolor='black')\n        axes[1,0].set_title('Distribution of Waveform Amplitudes')\n        axes[1,0].set_xlabel('Amplitude')\n        axes[1,0].set_ylabel('Frequency')\n        \n        # Plot 4: Frequency domain analysis (if applicable)\n        sample_waveform = self.train_data[waveform_cols].iloc[0].values\n        if len(sample_waveform) > 10:\n            freqs = fftfreq(len(sample_waveform))\n            fft_vals = np.abs(fft(sample_waveform))\n            axes[1,1].plot(freqs[:len(freqs)//2], fft_vals[:len(fft_vals)//2])\n            axes[1,1].set_title('Frequency Domain (FFT) - Sample 0')\n            axes[1,1].set_xlabel('Frequency')\n            axes[1,1].set_ylabel('Magnitude')\n        \n        plt.tight_layout()\n        plt.show()\n    \n    def visualize_velocity_models(self):\n        \"\"\"\n        Visualize velocity models if available\n        \"\"\"\n        if self.train_data is None:\n            return\n        \n        # Extract velocity columns\n        velocity_cols = [col for col in self.train_data.columns if 'velocity' in col.lower() or 'target' in col.lower()]\n        \n        if len(velocity_cols) == 0:\n            # If no specific velocity columns, use second half of columns\n            n_cols = len(self.train_data.columns)\n            velocity_cols = self.train_data.columns[n_cols//2:]\n        \n        if len(velocity_cols) == 0:\n            print(\"No velocity/target columns found\")\n            return\n        \n        print(\"Visualizing velocity models...\")\n        \n        fig, axes = plt.subplots(2, 2, figsize=(15, 10))\n        fig.suptitle('Velocity Model Visualization', fontsize=16)\n        \n        # Plot 1: 2D velocity model\n        velocity_data = self.train_data[velocity_cols].iloc[0].values\n        \n        if len(velocity_cols) >= 25:  # Try to reshape to 2D\n            grid_size = int(np.sqrt(len(velocity_cols)))\n            if grid_size * grid_size == len(velocity_cols):\n                velocity_2d = velocity_data.reshape(grid_size, grid_size)\n                im1 = axes[0,0].imshow(velocity_2d, cmap='viridis')\n                axes[0,0].set_title('Sample Velocity Model (2D)')\n                axes[0,0].set_xlabel('X Position')\n                axes[0,0].set_ylabel('Z Depth')\n                plt.colorbar(im1, ax=axes[0,0], label='Velocity (m/s)')\n            else:\n                axes[0,0].plot(velocity_data)\n                axes[0,0].set_title('Sample Velocity Model (1D)')\n                axes[0,0].set_xlabel('Position Index')\n                axes[0,0].set_ylabel('Velocity (m/s)')\n        else:\n            axes[0,0].plot(velocity_data)\n            axes[0,0].set_title('Sample Velocity Model (1D)')\n            axes[0,0].set_xlabel('Position Index')\n            axes[0,0].set_ylabel('Velocity (m/s)')\n        \n        # Plot 2: Distribution of velocities\n        all_velocity_data = self.train_data[velocity_cols].values.flatten()\n        axes[0,1].hist(all_velocity_data, bins=50, alpha=0.7, edgecolor='black')\n        axes[0,1].set_title('Distribution of Velocities')\n        axes[0,1].set_xlabel('Velocity (m/s)')\n        axes[0,1].set_ylabel('Frequency')\n        \n        # Plot 3: Multiple velocity models comparison\n        for i in range(min(3, len(self.train_data))):\n            if len(velocity_cols) >= 25:\n                grid_size = int(np.sqrt(len(velocity_cols)))\n                if grid_size * grid_size == len(velocity_cols):\n                    velocity_sample = self.train_data[velocity_cols].iloc[i].values.reshape(grid_size, grid_size)\n                    axes[1,0].plot(velocity_sample.mean(axis=0), label=f'Sample {i}')\n                else:\n                    velocity_sample = self.train_data[velocity_cols].iloc[i].values\n                    axes[1,0].plot(velocity_sample, label=f'Sample {i}')\n            else:\n                velocity_sample = self.train_data[velocity_cols].iloc[i].values\n                axes[1,0].plot(velocity_sample, label=f'Sample {i}')\n        axes[1,0].set_title('Velocity Profile Comparison')\n        axes[1,0].set_xlabel('Position')\n        axes[1,0].set_ylabel('Velocity (m/s)')\n        axes[1,0].legend()\n        \n        # Plot 4: Velocity statistics by position\n        velocity_stats = self.train_data[velocity_cols].describe().T\n        axes[1,1].plot(velocity_stats.index, velocity_stats['mean'], label='Mean', marker='o')\n        axes[1,1].fill_between(velocity_stats.index, \n                              velocity_stats['mean'] - velocity_stats['std'],\n                              velocity_stats['mean'] + velocity_stats['std'],\n                              alpha=0.3, label='±1 std')\n        axes[1,1].set_title('Velocity Statistics by Position')\n        axes[1,1].set_xlabel('Position Index')\n        axes[1,1].set_ylabel('Velocity (m/s)')\n        axes[1,1].legend()\n        axes[1,1].tick_params(axis='x', rotation=45)\n        \n        plt.tight_layout()\n        plt.show()\n    \n    def correlation_analysis(self):\n        \"\"\"\n        Perform correlation analysis between features\n        \"\"\"\n        if self.train_data is None:\n            return\n        \n        print(\"Performing correlation analysis...\")\n        \n        # Sample columns for correlation (to avoid memory issues with large datasets)\n        max_cols = 100\n        if len(self.train_data.columns) > max_cols:\n            sample_cols = np.random.choice(self.train_data.columns, max_cols, replace=False)\n            corr_data = self.train_data[sample_cols]\n        else:\n            corr_data = self.train_data\n        \n        # Calculate correlation matrix\n        correlation_matrix = corr_data.corr()\n        \n        # Plot correlation heatmap\n        plt.figure(figsize=(12, 10))\n        mask = np.triu(np.ones_like(correlation_matrix, dtype=bool))\n        sns.heatmap(correlation_matrix, mask=mask, annot=False, cmap='coolwarm', center=0,\n                   square=True, linewidths=0.5)\n        plt.title('Feature Correlation Matrix')\n        plt.tight_layout()\n        plt.show()\n        \n        # Find highly correlated features\n        high_corr_pairs = []\n        for i in range(len(correlation_matrix.columns)):\n            for j in range(i+1, len(correlation_matrix.columns)):\n                corr_val = correlation_matrix.iloc[i, j]\n                if abs(corr_val) > 0.8:  # High correlation threshold\n                    high_corr_pairs.append((correlation_matrix.columns[i], \n                                          correlation_matrix.columns[j], \n                                          corr_val))\n        \n        if high_corr_pairs:\n            print(f\"\\nFound {len(high_corr_pairs)} highly correlated feature pairs (|r| > 0.8):\")\n            for pair in high_corr_pairs[:10]:  # Show first 10\n                print(f\"  {pair[0]} <-> {pair[1]}: {pair[2]:.3f}\")\n                def statistical_analysis(self):\n        \"\"\"\n        Perform statistical analysis of the data\n        \"\"\"\n        if self.train_data is None:\n            return\n        \n        print(\"=\" * 50)\n        print(\"STATISTICAL ANALYSIS\")\n        print(\"=\" * 50)\n        \n        # Identify feature types\n        waveform_cols = [col for col in self.train_data.columns if 'waveform' in col.lower()]\n        velocity_cols = [col for col in self.train_data.columns if 'velocity' in col.lower() or 'target' in col.lower()]\n        \n        if len(waveform_cols) == 0:\n            n_cols = len(self.train_data.columns)\n            waveform_cols = self.train_data.columns[:n_cols//2]\n        \n        if len(velocity_cols) == 0:\n            n_cols = len(self.train_data.columns)\n            velocity_cols = self.train_data.columns[n_cols//2:]\n        \n        # Waveform statistics\n        if waveform_cols:\n            print(f\"\\nWaveform Features Statistics ({len(waveform_cols)} features):\")\n            waveform_stats = self.train_data[waveform_cols].describe()\n            print(waveform_stats.loc[['mean', 'std', 'min', 'max']])\n        \n        # Velocity statistics\n        if velocity_cols:\n            print(f\"\\nVelocity/Target Statistics ({len(velocity_cols)} features):\")\n            velocity_stats = self.train_data[velocity_cols].describe()\n            print(velocity_stats.loc[['mean', 'std', 'min', 'max']])\n        \n        # Data quality checks\n        print(f\"\\nData Quality Checks:\")\n        print(f\"  Total samples: {len(self.train_data)}\")\n        print(f\"  Total features: {len(self.train_data.columns)}\")\n        print(f\"  Missing values: {self.train_data.isnull().sum().sum()}\")\n        print(f\"  Duplicate rows: {self.train_data.duplicated().sum()}\")\n        \n        # Check for constant features\n        constant_features = []\n        for col in self.train_data.columns:\n            if self.train_data[col].nunique() == 1:\n                constant_features.append(col)\n        \n        if constant_features:\n            print(f\"  Constant features: {len(constant_features)}\")\n        else:\n            print(f\"  Constant features: 0\")\n    \n    def run_complete_analysis(self):\n        \"\"\"\n        Run the complete analysis pipeline\n        \"\"\"\n        print(\"Starting Waveform Inversion Data Analysis...\")\n        print(\"=\" * 60)\n        \n        # Load data\n        self.load_data()\n        \n        # Basic exploration\n        self.basic_data_exploration()\n        \n        # Statistical analysis\n        self.statistical_analysis()\n        \n        # Visualizations\n        self.visualize_waveforms()\n        self.visualize_velocity_models()\n        self.correlation_analysis()\n        \n        print(\"Analysis complete!\")\n        \n        # Provide recommendations\n        self.provide_recommendations()\n    \n    def provide_recommendations(self):\n        \"\"\"\n        Provide analysis recommendations\n        \"\"\"\n        print(\"=\" * 50)\n        print(\"RECOMMENDATIONS FOR MODEL DEVELOPMENT\")\n        print(\"=\" * 50)\n        \n        recommendations = [\n            \"1. PHYSICS-INFORMED MODELING:\",\n            \"   - Consider physics-based loss functions that incorporate wave equation constraints\",\n            \"   - Use domain knowledge about seismic wave propagation in your model architecture\",\n            \"\",\n            \"2. DATA PREPROCESSING:\",\n            \"   - Normalize waveform amplitudes to handle varying signal strengths\",\n            \"   - Consider bandpass filtering to focus on relevant frequency ranges\",\n            \"   - Apply time-frequency transforms (e.g., wavelet transform) for better feature extraction\",\n            \"\",\n            \"3. MODEL ARCHITECTURE:\",\n            \"   - Convolutional Neural Networks (CNNs) work well for spatial velocity models\",\n        \"   - Recurrent networks (RNNs/LSTMs) can capture temporal dependencies in waveforms\",\n            \"   - Consider U-Net architecture for velocity model reconstruction\",\n            \"\",\n            \"4. EVALUATION:\",\n            \"   - Use physics-based metrics in addition to standard regression metrics\",\n            \"   - Cross-validate with different geological settings if available\",\n            \"   - Monitor both waveform fit and geological plausibility\",\n            \"\",\n            \"5. ADVANCED TECHNIQUES:\",\n            \"   - Physics-Informed Neural Networks (PINNs) for incorporating wave equations\",\n            \"   - Transfer learning from synthetic to real data\",\n            \"   - Ensemble methods combining multiple physics-aware models\"\n        ]\n        \n        for rec in recommendations:\n            print(rec)\n\n# Usage example\nif name == \"main\":\n    # Initialize analyzer\n    analyzer = WaveformInversionAnalyzer()\n    \n    # Run complete analysis\n    analyzer.run_complete_analysis()","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.linear_model import Ridge, ElasticNet\nfrom sklearn.ensemble import RandomForestRegressor\nfrom sklearn.metrics import mean_squared_error, mean_absolute_error\nimport joblib\nimport gc\nimport os\nfrom tqdm import tqdm\nimport warnings\nwarnings.filterwarnings('ignore')\n\nclass LightweightWaveformModel:\n    def init(self, data_path='/kaggle/input/waveform-inversion/'):\n        \"\"\"\n        Lightweight model for large datasets (107GB)\n        Uses batch processing and memory-efficient techniques\n        \"\"\"\n        self.data_path = data_path\n        self.model = None\n        self.scaler_X = None\n        self.scaler_y = None\n        self.feature_columns = None\n        self.target_columns = None\n        self.sample_size = None\n        \n    def get_data_info(self):\n        \"\"\"Get basic info about data files without loading everything\"\"\"\n        try:\n            files = os.listdir(self.data_path)\n            print(\"📁 Available files:\")\n            \n            data_info = {}\n            for file in files:\n                if file.endswith('.csv'):\n                    file_path = f\"{self.data_path}/{file}\"\n                    file_size = os.path.getsize(file_path) / (1024**3)  # GB\n                    \n                    # Read just first few rows to get column info\n                    sample_df = pd.read_csv(file_path, nrows=5)\n                    \n                    data_info[file] = {\n                        'size_gb': file_size,\n                        'columns': len(sample_df.columns),\n                        'sample_columns': list(sample_df.columns[:10])\n                    }\n                    \n                    print(f\"  📄 {file}: {file_size:.1f} GB, {len(sample_df.columns)} columns\")\n            \n            return data_info\n            \n        except Exception as e:\n            print(f\"Error reading data info: {e}\")\n            return {}\n    \n    def load_sample_data(self, sample_fraction=0.01, max_samples=50000):\n        \"\"\"\n        Load a small sample of data for training\n        sample_fraction: fraction of data to load (0.01 = 1%)\n        max_samples: maximum number of samples to load\n        \"\"\"\n        print(f\"🔄 Loading {sample_fraction*100:.1f}% of data (max {max_samples:,} samples)...\")\n        \n        try:\n            files = os.listdir(self.data_path)\n            train_file = None\n            test_file = None\n            submission_file = None\n            \n            # Find files\n            for file in files:\n                if 'train' in file.lower() and file.endswith('.csv'):\n                    train_file = file\n                elif 'test' in file.lower() and file.endswith('.csv'):\n                    test_file = file\n                elif 'sample' in file.lower() or 'submission' in file.lower():\n                    submission_file = file\n            \n            if not train_file:\n                print(\"❌ Training file not found!\")\n                return None, None, None\n            \n            train_path = f\"{self.data_path}/{train_file}\"\n            \n            # Get total number of rows\n            print(\"📊 Counting total rows...\")\n            total_rows = sum(1 for line in open(train_path)) - 1  # -1 for header\n            \n            # Calculate sample size\n            sample_size = min(int(total_rows * sample_fraction), max_samples)\n            self.sample_size = sample_size\n            \n            print(f\"📈 Total rows: {total_rows:,}\")\n            print(f\"🎯 Sample size: {sample_size:,}\")\n            \n            # Load sample data\n            print(\"💾 Loading training sample...\")\n            \n            # Random sample of row indices\n            np.random.seed(42)\n            sample_indices = np.sort(np.random.choice(total_rows, sample_size, replace=False))\n            \n            # Load data in chunks\n            chunk_size = 10000\n            train_chunks = []\n            \n            for chunk in tqdm(pd.read_csv(train_path, chunksize=chunk_size), \n                            desc=\"Loading chunks\"):\n                # Reset index to match row numbers\n                chunk.reset_index(drop=True, inplace=True)\n                \n                # Get intersection with our sample indices\n                chunk_start = len(train_chunks) * chunk_size\n                chunk_end = chunk_start + len(chunk)\n                \n                # Find which sample indices fall in this chunk\n                mask = (sample_indices >= chunk_start) & (sample_indices < chunk_end)\n                if mask.any():\n                    local_indices = sample_indices[mask] - chunk_start\n                    train_chunks.append(chunk.iloc[local_indices])\n                \n                # Break if we have enough data\n                if len(train_chunks) * chunk_size > sample_size * 2:\n                    break\n            \n            # Combine chunks\n            if train_chunks:\n                train_data = pd.concat(train_chunks, ignore_index=True)\n                print(f\"✅ Loaded training data: {train_data.shape}\")\n            else:\n                print(\"❌ No training data loaded!\")\n                return None, None, None\n            \n            # Load test data sample (smaller sample)\n            test_data = None\n            if test_file:\n                test_path = f\"{self.data_path}/{test_file}\"\n                test_sample_size = min(10000, sample_size // 5)  # Smaller test sample\n                \n                print(f\"💾 Loading test sample ({test_sample_size:,} rows)...\")\n                test_data = pd.read_csv(test_path, nrows=test_sample_size)\n                print(f\"✅ Loaded test data: {test_data.shape}\")\n            \n            # Load submission template\n            submission_data = None\n            if submission_file:\n                submission_path = f\"{self.data_path}/{submission_file}\"\n                submission_data = pd.read_csv(submission_path, nrows=1000)  # Just template\n                print(f\"✅ Loaded submission template: {submission_data.shape}\")\n            \n            return train_data, test_data, submission_data\n            \n        except Exception as e:\n            print(f\"❌ Error loading data: {e}\")\n            return None, None, None\n    \n    def identify_features_and_targets(self, train_data):\n        \"\"\"Automatically identify feature and target columns\"\"\"\n        print(\"🔍 Identifying features and targets...\")\n        \n        columns = train_data.columns.tolist()\n        \n        # Try to identify by name patterns\n        feature_cols = []\n        target_cols = []\n        \n        for col in columns:\n            col_lower = col.lower()\n            if any(keyword in col_lower for keyword in ['waveform', 'seismic', 'trace', 'amplitude']):\n                feature_cols.append(col)\n            elif any(keyword in col_lower for keyword in ['velocity', 'vel', 'target', 'label']):\n                target_cols.append(col)\n            elif col_lower in ['id', 'index']:\n                continue  # Skip ID columns\n            else:\n                # If unclear, add to features by default\n                feature_cols.append(col)\n        \n        # If no clear pattern, split roughly in half\n        if not feature_cols and not target_cols:\n            mid_point = len(columns) // 2\n            feature_cols = columns[:mid_point]\n            target_cols = columns[mid_point:]\n        \n        # Remove ID columns\n        feature_cols = [col for col in feature_cols if 'id' not in col.lower()]\n        target_cols = [col for col in target_cols if 'id' not in col.lower()]\n        \n        self.feature_columns = feature_cols\n        self.target_columns = target_cols\n        \n        print(f\"📊 Features: {len(feature_cols)} columns\")\n        print(f\"🎯 Targets: {len(target_cols)} columns\")\n        \n        if len(feature_cols) > 10:\n            print(f\"   Feature examples: {feature_cols[:5]}...\")\n        else:\n            print(f\"   Features: {feature_cols}\")\n            \n        if len(target_cols) > 10:\n            print(f\"   Target examples: {target_cols[:5]}...\")\n        else:\n            print(f\"   Targets: {target_cols}\")\n        \n        return feature_cols, target_cols\n    \n    def prepare_data(self, train_data):\n        \"\"\"Prepare data for training with memory efficiency\"\"\"\n        print(\"🔧 Preparing data...\")\n        \n        # Identify columns\n        feature_cols, target_cols = self.identify_features_and_targets(train_data)\n        \n        if not feature_cols or not target_cols:\n            print(\"❌ Could not identify features and targets!\")\n            return None, None\n        \n        # Extract features and targets\n        X = train_data[feature_cols].values.astype(np.float32)  # Use float32 to save memory\n        y = train_data[target_cols].values.astype(np.float32)\n        \n        # Handle missing values\n        X = np.nan_to_num(X, nan=0.0)\n        y = np.nan_to_num(y, nan=0.0)\n        \n        # Initialize scalers\n        self.scaler_X = StandardScaler()\n        self.scaler_y = StandardScaler()\n        \n        # Fit and transform\n        print(\"📏 Scaling features...\")\n        X_scaled = self.scaler_X.fit_transform(X)\n        y_scaled = self.scaler_y.fit_transform(y)\n        \n        # Clean up memory\n        del X, y\n        gc.collect()\n        \n        print(f\"✅ Data prepared: X={X_scaled.shape}, y={y_scaled.shape}\")\n        return X_scaled, y_scaled\n    \n    def train_lightweight_model(self, X, y, model_type='ridge'):\n        \"\"\"Train a lightweight model that can handle large datasets\"\"\"\n        print(f\"🚀 Training {model_type} model...\")\n        \n        # Split data\n        X_train, X_val, y_train, y_val = train_test_split(\n            X, y, test_size=0.2, random_state=42\n        )\n        \n        # Choose model based on type\n        if model_type == 'ridge':\n            print(\"🏔️ Using Ridge Regression...\")\n            self.model = Ridge(alpha=1.0, random_state=42)\n            \n        elif model_type == 'elastic':\n            print(\"🌐 Using Elastic Net...\")\n            self.model = ElasticNet(alpha=0.1, l1_ratio=0.5, random_state=42, max_iter=1000)\n            \n        elif model_type == 'forest':\n            print(\"🌲 Using Random Forest (small)...\")\n            self.model = RandomForestRegressor(\n                n_estimators=50,  # Small forest for speed\n                max_depth=10,\n                random_state=42,\n                n_jobs=-1\n            )\n        else:\n            print(\"❌ Unknown model type, using Ridge\")\n            self.model = Ridge(alpha=1.0, random_state=42)\n        \n        # Train model\n        print(\"📚 Training...\")\n        self.model.fit(X_train, y_train)\n        \n        # Evaluate\n        print(\"📊 Evaluating...\")\n        y_pred = self.model.predict(X_val)\n        \n        # Calculate metrics\n        mse = mean_squared_error(y_val, y_pred)\n        mae = mean_absolute_error(y_val, y_pred)\n        rmse = np.sqrt(mse)\n        \n        print(f\"✅ Training completed!\")\n        print(f\"   RMSE: {rmse:.4f}\")\n        print(f\"   MAE: {mae:.4f}\")\n        \n        return {'rmse': rmse, 'mae': mae, 'mse': mse}\n    \n    def predict_batch(self, X_batch):\n        \"\"\"Make predictions on a batch of data\"\"\"\n        if self.model is None:\n            print(\"❌ Model not trained!\")\n            target_cols = [col for col in target_cols if 'id' not in col.lower()]\n        \n        self.feature_columns = feature_cols\n        self.target_columns = target_cols\n        \n        print(f\"📊 Features: {len(feature_cols)} columns\")\n        print(f\"🎯 Targets: {len(target_cols)} columns\")\n        \n        if len(feature_cols) > 10:\n            print(f\"   Feature examples: {feature_cols[:5]}...\")\n        else:\n            print(f\"   Features: {feature_cols}\")\n            \n        if len(target_cols) > 10:\n            print(f\"   Target examples: {target_cols[:5]}...\")\n        else:\n            print(f\"   Targets: {target_cols}\")\n        \n        return feature_cols, target_cols\n    \n    def prepare_data(self, train_data):\n        \"\"\"Prepare data for training with memory efficiency\"\"\"\n        print(\"🔧 Preparing data...\")\n        \n        # Identify columns\n        feature_cols, target_cols = self.identify_features_and_targets(train_data)\n        \n        if not feature_cols or not target_cols:\n            print(\"❌ Could not identify features and targets!\")\n            return None, None\n        \n        # Extract features and targets\n        X = train_data[feature_cols].values.astype(np.float32)  # Use float32 to save memory\n        y = train_data[target_cols].values.astype(np.float32)\n        \n        # Handle missing values\n        X = np.nan_to_num(X, nan=0.0)\n        y = np.nan_to_num(y, nan=0.0)\n        \n        # Initialize scalers\n        self.scaler_X = StandardScaler()\n        self.scaler_y = StandardScaler()\n        \n        # Fit and transform\n        print(\"📏 Scaling features...\")\n        X_scaled = self.scaler_X.fit_transform(X)\n        y_scaled = self.scaler_y.fit_transform(y)\n        \n        # Clean up memory\n        del X, y\n        gc.collect()\n        \n        print(f\"✅ Data prepared: X={X_scaled.shape}, y={y_scaled.shape}\")\n        return X_scaled, y_scaled\n    \n    def train_lightweight_model(self, X, y, model_type='ridge'):\n        \"\"\"Train a lightweight model that can handle large datasets\"\"\"\n        print(f\"🚀 Training {model_type} model...\")\n        \n        # Split data\n        X_train, X_val, y_train, y_val = train_test_split(\n            X, y, test_size=0.2, random_state=42\n        )\n        \n        # Choose model based on type\n        if model_type == 'ridge':\n            print(\"🏔️ Using Ridge Regression...\")\n            self.model = Ridge(alpha=1.0, random_state=42)\n            \n        elif model_type == 'elastic':\n            print(\"🌐 Using Elastic Net...\")\n            self.model = ElasticNet(alpha=0.1, l1_ratio=0.5, random_state=42, max_iter=1000)\n            \n        elif model_type == 'forest':\n            print(\"🌲 Using Random Forest (small)...\")\n            self.model = RandomForestRegressor(\n                n_estimators=50,  # Small forest for speed\n                max_depth=10,\n                random_state=42,\n                n_jobs=-1\n            )\n        else:\n            print(\"❌ Unknown model type, using Ridge\")\n            self.model = Ridge(alpha=1.0, random_state=42)\n        \n        # Train model\n        print(\"📚 Training...\")\n        self.model.fit(X_train, y_train)\n        \n        # Evaluate\n        print(\"📊 Evaluating...\")\n        y_pred = self.model.predict(X_val)\n        \n        # Calculate metrics\n        mse = mean_squared_error(y_val, y_pred)\n        mae = mean_absolute_error(y_val, y_pred)\n        rmse = np.sqrt(mse)\n        \n        print(f\"✅ Training completed!\")\n        print(f\"   RMSE: {rmse:.4f}\")\n        print(f\"   MAE: {mae:.4f}\")\n        \n        return {'rmse': rmse, 'mae': mae, 'mse': mse}\n    \n    def predict_batch(self, X_batch):\n        \"\"\"Make predictions on a batch of data\"\"\"\n        if self.model is None:\n            print(\"❌ Model not trained!\")\n            return None\n        \n        # Scale features\n        X_scaled = self.scaler_X.transform(X_batch)\n        \n        # Predict\n        y_pred_scaled = self.model.predict(X_scaled)\n        \n        # Inverse transform\n        y_pred = self.scaler_y.inverse_transform(y_pred_scaled)\n        \n        return y_pred\n    \n    def generate_submission_batch(self, test_data, submission_template, batch_size=1000):\n        \"\"\"Generate submission by processing test data in batches\"\"\"\n        print(\"💾 Generating submission in batches...\")\n        \n        if self.model is None:\n            print(\"❌ Model not trained!\")\n            return None\n        \n        # Prepare test features\n        test_feature_cols = [col for col in test_data.columns if col in self.feature_columns]\n        \n        if not test_feature_cols:\n            print(\"❌ No matching feature columns in test data!\")\n            return None\n        \n        # Get test data info\n        n_test_samples = len(test_data)\n        n_batches = (n_test_samples + batch_size - 1) // batch_size\n        \n        print(f\"🔄 Processing {n_test_samples:,} samples in {n_batches} batches...\")\n        \n        # Prepare submission\n        submission = submission_template.copy()\n        \n        # Process in batches\n        all_predictions = []\n        \n        for i in tqdm(range(n_batches), desc=\"Processing batches\"):\n            start_idx = i * batch_size\n            end_idx = min((i + 1) * batch_size, n_test_samples)\n            \n            # Get batch\n            X_batch = test_data[test_feature_cols].iloc[start_idx:end_idx].values.astype(np.float32)\n            X_batch = np.nan_to_num(X_batch, nan=0.0)\n            \n            # Predict\n            y_pred_batch = self.predict_batch(X_batch)\n            all_predictions.append(y_pred_batch)\n            \n            # Clean memory periodically\n            if i % 10 == 0:\n                gc.collect()\n        \n        # Combine all predictions\n        all_predictions = np.vstack(all_predictions)\n        \n        print(f\"✅ Generated {all_predictions.shape[0]:,} predictions\")\n        \n        # Fill submission\n        target_cols = [col for col in submission.columns if col != 'id']\n        n_targets = min(len(target_cols), all_predictions.shape[1])\n        \n        submission[target_cols[:n_targets]] = all_predictions[:len(submission), :n_targets]\n        \n        return submission\n    \n    def save_model(self, filename='lightweight_waveform_model.pkl'):\n        \"\"\"Save the trained model\"\"\"\n        if self.model is None:\n            print(\"❌ No model to save!\")\n            return\n        \n        model_data = {\n            'model': self.model,\n            'scaler_X': self.scaler_X,\n            'scaler_y': self.scaler_y,\n            'feature_columns': self.feature_columns,\n            'target_columns': self.target_columns,\n            'sample_size': self.sample_size\n        }\n        \n        joblib.dump(model_data, filename)\n        print(f\"💾 Model saved to {filename}\")\n    \n    def load_model(self, filename='lightweight_waveform_model.pkl'):\n        \"\"\"Load a trained model\"\"\"\n        try:\n            model_data = joblib.load(filename)\n            \n            self.model = model_data['model']\n            self.scaler_X = model_data['scaler_X']\n            self.scaler_y = model_data['scaler_y']\n            self.feature_columns = model_data['feature_columns']\n            self.target_columns = model_data['target_columns']\n            self.sample_size = model_data.get('sample_size', 'unknown')\n            \n            print(f\"✅ Model loaded from {filename}\")\n            return True\n        except Exception as e:\n            print(f\"❌ Error loading model: {e}\")\n            return False\n    \n    def quick_pipeline(self, sample_fraction=0.005, model_type='ridge', save_model=True):\n        \"\"\"\n        Quick pipeline for large datasets\n        sample_fraction: 0.005 = 0.5% of data (good for 107GB)\n        \"\"\"\n        print(\"🚀 QUICK WAVEFORM INVERSION PIPELINE\")\n        print(\"=\" * 50)\n        print(f\"📊 Sample fraction: {sample_fraction*100:.2f}%\")\n        print(f\"🤖 Model type: {model_type}\")\n        \n        # Step 1: Get data info\n        print(\"\\n1️⃣ Getting data information...\")\n        self.get_data_info()\n        \n        # Step 2: Load sample\n        print(\"\\n2️⃣ Loading sample data...\")\n        train_data, test_data, submission_template = self.load_sample_data(\n            sample_fraction=sample_fraction,\n            max_samples=100000  # Reasonable limit\n        )\n        \n        if train_data is None:\n            print(\"❌ Failed to load data!\")\n            return None\n        \n        # Step 3: Prepare data\n        print(\"\\n3️⃣ Preparing data...\")\n        X, y = self.prepare_data(train_data)\n        \n        if X is None:\n            print(\"❌ Failed to prepare data!\")\n            return None\n        \n        # Clean up memory\n        del train_data\n        gc.collect()\n        \n        # Step 4: Train model\n        print(\"\\n4️⃣ Training model...\")\n        metrics = self.train_lightweight_model(X, y, model_type=model_type)\n        \n        # Clean up memory\n        del X, y\n        gc.collect()\n        \n        # Step 5: Generate submission\n        if test_data is not None and submission_template is not None:\n            print(\"\\n5️⃣ Generating submission...\")\n            submission = self.generate_submission_batch(\n                test_data, submission_template, batch_size=2000\n            )\n            \n            if submission is not None:\n                submission.to_csv('submission.csv', index=False)\n                print(\"💾 Submission saved to submission.csv\")\n                print(f\"📋 Submission shape: {submission.shape}\")\n        \n        # Step 6: Save model\n        if save_model:\n            print(\"\\n6️⃣ Saving model...\")\n            self.save_model()\n        \n        print(\"\\n✅ PIPELINE COMPLETED!\")\n        print(f\"🎯 Final RMSE: {metrics['rmse']:.4f}\")\n        print(\"🚀 Ready for Kaggle submission!\")\n        \n        return submission\n\n# Multiple model ensemble for better results\nclass EnsembleWaveformModel:\n    def init(self, data_path='/kaggle/input/waveform-inversion/'):\n        self.data_path = data_path\n        self.models = {}\n        \n    def train_ensemble(self, sample_fraction=0.005):\n        \"\"\"Train multiple models and ensemble them\"\"\"\n        print(\"🎯 TRAINING ENSEMBLE OF MODELS\")\n        print(\"=\" * 40)\n        \n        model_types = ['ridge', 'elastic', 'forest']\n        \n        for model_type in model_types:\n            print(f\"\\n🔄 Training {model_type} model...\")\n            \n            model = LightweightWaveformModel(self.data_path)\n            submission = model.quick_pipeline(\n                sample_fraction=sample_fraction,\n                model_type=model_type,\n                save_model=False\n            )\n            \n            self.models[model_type] = model\n            \n            # Clean memory\n            gc.collect()\n        \n        print(\"\\n🎉 Ensemble training completed!\")\n        return self.models\n    \n    def ensemble_predict(self, test_data, submission_template):\n        \"\"\"Make ensemble predictions\"\"\"\n        print(\"🔮 Making ensemble predictions...\")\n        \n        all_predictions = []\n        weights = {'ridge': 0.4, 'elastic': 0.3, 'forest': 0.3}\n        \n        for model_name, model in self.models.items():\n            print(f\"📊 Getting predictions from {model_name}...\")\n            \n            # Generate predictions\n            submission = model.generate_submission_batch(\n                test_data, submission_template, batch_size=2000\n            )\n            \n            if submission is not None:\n                target_cols = [col for col in submission.columns if col != 'id']\n                predictions = submission[target_cols].values\n                all_predictions.append((predictions, weights[model_name]))\n        \n        if not all_predictions:\n            print(\"❌ No predictions generated!\")\n            return None\n        \n        # Weighted average\n        print(\"⚖️ Computing weighted ensemble...\")\n        ensemble_pred = np.zeros_like(all_predictions[0][0])\n        \n        for pred, weight in all_predictions:\n            ensemble_pred += weight * pred\n        \n        # Create final submission\n        final_submission = submission_template.copy()\n        target_cols = [col for col in final_submission.columns if col != 'id']\n        final_submission[target_cols] = ensemble_pred[:len(final_submission)]\n        \n        final_submission.to_csv('ensemble_submission.csv', index=False)\n        print(\"💾 Ensemble submission saved!\")\n        \n        return final_submission\n\n# Usage examples\nif name == \"main\":\n    print(\"🎛️ LIGHTWEIGHT WAVEFORM INVERSION\")\n    print(\"=\" * 50)\n    \n    # Option 1: Quick single model\n    print(\"\\n🚀 OPTION 1: Quick Single Model\")\n    model = LightweightWaveformModel()\n    submission = model.quick_pipeline(\n        sample_fraction=0.005,  # 0.5% of 107GB ≈ 500MB\n        model_type='ridge'      # Fast and reliable\n    )\n    \n    # Option 2: Ensemble (takes longer but better results)\n    print(\"\\n\\n🎯 OPTION 2: Ensemble Model\")\n    ensemble = EnsembleWaveformModel()\n    models = ensemble.train_ensemble(sample_fraction=0.003)  # Smaller sample for ensemble\n    \n    print(\"\\n✅ All done! Check your submission files!\")","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import os\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# Шлях до кореневої папки\nDATA_DIR = \"/kaggle/input/waveform-inversion/train_samples\"  # заміни на свій шлях, якщо треба\n\n# Знаходження всіх .npy файлів у підкаталогах\nnpy_files = []\nfor root, _, files in os.walk(DATA_DIR):\n    for file in files:\n        if file.endswith(\".npy\"):\n            npy_files.append(os.path.join(root, file))\n\n# Візьмемо перші 5 .npy файлів для аналізу\nsample_files = npy_files[:2]\n\ndef load_npy(path):\n    return np.load(path)\n\ndef plot_waveform(waveform_2d, title=\"Waveform\"):\n    # Припускаємо, що waveform_2d має форму (time_steps, features)\n    trace = waveform_2d[:, 0]  # беремо перший сенсор (feature) як приклад\n    plt.figure(figsize=(12, 4))\n    plt.plot(trace)\n    plt.title(title)\n    plt.xlabel(\"Time step\")\n    plt.ylabel(\"Amplitude\")\n    plt.grid(True)\n    plt.tight_layout()\n    plt.show()\n\n# Візуалізуємо кілька сигналів\nfor file_path in sample_files:\n    data = load_npy(file_path)\n    plot_waveform(data[0], title=f\"{os.path.basename(file_path)} — trace 0, sensor 0\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T05:39:23.152515Z","iopub.execute_input":"2025-06-16T05:39:23.154161Z","iopub.status.idle":"2025-06-16T05:39:24.05506Z","shell.execute_reply.started":"2025-06-16T05:39:23.154079Z","shell.execute_reply":"2025-06-16T05:39:24.053821Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1200x400 with 1 Axes>","image/png":"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\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 1200x400 with 1 Axes>","image/png":"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PBakdu3aunz58k2de1WrVlVQUFCBf8/fffed7rnnnmLvM0+TJk3UpEkTvfjii9q4caNatWqld955Ry+//LJq164twzAUHh7uNDQrrvLly+vJJ5/Uk08+qWvXrumxxx7TpEmTNHr0aAUFBcnHx0cHDx7M97kDBw7Izc1NYWFhN3XcvJ/T999/r4cfftg+/v333ys3N/cP/RwBAHAlnikFAMAtLjIyUoGBgVqwYIEWLFig5s2bO4QnwcHBatu2rd59990Crzg5e/as0/2npqYqKipKbm5uWrlyZaG3YZnt8ccf15YtWxwCi4MHD2r16tV64oknHOYeOHBAx44d+0PHe/vttx3ez5w5U5Ls366Wp3v37rpw4YL69euny5cvFylsatiwoSIjI2/qlXc1UWHKly+v9PT0Iq8zL0D7/dViv/+WPDc3N8XGxuqrr74qMDTK+3znzp2VkpKilStX5puTnp6u69evO62nU6dOWrp0qY4fP24fW7VqlX744Yd8f89FYbPZ8h2zSZMmcnNzs98m+Nhjj8nd3V3jx4/P93MwDEO//PJLsY/7+894enqqYcOGMgxD2dnZcnd3V1RUlL788kuHW0LT0tI0f/583X///fLz8yv2cSXpgQceUGBgoGbPnu0wPnv2bPn4+KhDhw43tV8AAFyNK6UAALjFeXh46LHHHtMnn3yijIwMTZkyJd+ct99+W/fff7+aNGmiZ599VrVq1VJaWppSUlJ04sQJ7dy5s9D9x8TE6PDhwxo5cqSSk5OVnJxs3xYSEqL27dsXudaLFy/aw5xvv/1WkvTWW28pICBAAQEBGjRoUJH3NXDgQL3//vvq0KGDnn/+eXl4eGjatGkKCQnRc8895zC3QYMGatOmjcMD4YvryJEj6tixo2JiYpSSkqJ58+apa9euuvvuux3m/eUvf1Hjxo312WefqUGDBmratOlNH7MkNGvWTN98842mTZumKlWqKDw8XC1atCh0vp+fn1q3bq3XXntN2dnZqlq1qhITE3XkyJF8cydPnqzExES1adNGffv2VYMGDXT69Gl99tlnSk5OVkBAgEaMGKElS5bo73//u3r27KlmzZopIyNDu3fv1sKFC3X06FFVqlSp0Hr+/e9/67PPPlO7du30r3/9S5cvX9brr7+uJk2aqFevXg5z865a+22o83urV6/WoEGD9MQTT6hevXq6fv26/u///k/u7u7q1KmTpF+v7nr55Zc1evRoHT16VLGxsfL19dWRI0e0ePFi9e3bV88//7yTn3p+UVFRCg0NVatWrRQSEqL9+/frrbfeUocOHexX9b388stKSkrS/fffr4EDB6pcuXJ69913lZWVpddee61Yx/stb29vTZw4UXFxcXriiScUHR2tDRs2aN68eZo0aZICAwNvet8AALhU6XzpHwAAKI6kpCRDkmGxWIzjx48XOOenn34ynn76aSM0NNTw8PAwqlatavz97383Fi5caJ+zZs0aQ5KxZs0a+5ikQl9t2rQpVp1HjhwpdF81atQo9rqPHz9uPP7444afn59RoUIF4+9//7tx6NChfPMKqlWSERcXl29ujRo1jB49etjfjx071pBk7Nu3z3j88ccNX19fo2LFisagQYOMK1euFFjXa6+9ZkgyJk+eXOw1lbQDBw4YrVu3Nry9vQ1J9rXlrevs2bP5PnPixAnjH//4hxEQEGD4+/sbTzzxhHHq1ClDkjF27FiHuT///LPx9NNPG0FBQYbVajVq1aplxMXFGVlZWfY5ly5dMkaPHm3UqVPH8PT0NCpVqmT89a9/NaZMmWJcu3bthmvYs2ePERUVZfj4+BgBAQHGU089ZaSmpuabV6lSJaNly5ZO93X48GHjmWeeMWrXrm14eXkZgYGBRrt27Yxvvvkm39xFixYZ999/v1G+fHmjfPnyxp133mnExcUZBw8etM9p06aN0ahRo3yf7dGjh8M5/e677xqtW7c27rjjDsNqtRq1a9c2RowYYVy8eNHhc9u2bTOio6ONChUqGD4+Pka7du2MjRs3OsyZO3euIcnYsmWL07X+3nvvvWfUr1/f8PT0NGrXrm1Mnz7dyM3NLdY+AAAwk8UwivCkTwAAgDJq3LhxGj9+vM6ePev0ip7fmjFjhoYNG6ajR48W+A1/KHn79u1To0aNtHTpUm5HAwCgjOCZUgAAAMVgGIY++OADtWnThkDKRGvWrFFERASBFAAAZQjPlAIAADd0/vx5Xbt2rdDt7u7uRX5Aeknuy0wZGRlasmSJ1qxZo927d+vLL78s7ZJuK3FxcYqLiyvtMgAAQAkilAIAADf02GOPad26dYVur1GjhtOHT7tqX2Y6e/asunbtqoCAAP373/9Wx44dS7skAACAPzWeKQUAAG5o69atunDhQqHbvb29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\n"},"metadata":{}}],"execution_count":8},{"cell_type":"code","source":"import seaborn as sns\n\ndef plot_heatmap(waveform_2d, title=\"Waveform Heatmap\"):\n    plt.figure(figsize=(10, 6))\n    sns.heatmap(waveform_2d.T, cmap=\"viridis\", cbar=True)\n    plt.title(title)\n    plt.xlabel(\"Time Step\")\n    plt.ylabel(\"Sensor Index\")\n    plt.tight_layout()\n    plt.show()\n\n# Виклик\ndata = load_npy(sample_files[0])\nplot_heatmap(data[0], title=\"Heatmap — trace 0\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T05:40:18.341992Z","iopub.execute_input":"2025-06-16T05:40:18.343158Z","iopub.status.idle":"2025-06-16T05:40:18.636664Z","shell.execute_reply.started":"2025-06-16T05:40:18.343091Z","shell.execute_reply":"2025-06-16T05:40:18.635219Z"}},"outputs":[{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)","\u001b[0;32m/tmp/ipykernel_35/1671368751.py\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     12\u001b[0m \u001b[0;31m# Виклик\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     13\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mload_npy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msample_files\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 14\u001b[0;31m \u001b[0mplot_heatmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtitle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Heatmap — trace 0\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m","\u001b[0;32m/tmp/ipykernel_35/1671368751.py\u001b[0m in \u001b[0;36mplot_heatmap\u001b[0;34m(waveform_2d, title)\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mplot_heatmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwaveform_2d\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtitle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Waveform Heatmap\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfigsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m     \u001b[0msns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheatmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwaveform_2d\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcmap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"viridis\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcbar\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      6\u001b[0m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtitle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtitle\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxlabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Time Step\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/seaborn/matrix.py\u001b[0m in \u001b[0;36mheatmap\u001b[0;34m(data, vmin, vmax, cmap, center, robust, annot, fmt, annot_kws, linewidths, linecolor, cbar, cbar_kws, cbar_ax, square, xticklabels, yticklabels, mask, ax, **kwargs)\u001b[0m\n\u001b[1;32m    444\u001b[0m     \"\"\"\n\u001b[1;32m    445\u001b[0m     \u001b[0;31m# Initialize the plotter object\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 446\u001b[0;31m     plotter = _HeatMapper(data, vmin, vmax, cmap, center, robust, annot, fmt,\n\u001b[0m\u001b[1;32m    447\u001b[0m                           \u001b[0mannot_kws\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcbar\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcbar_kws\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxticklabels\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    448\u001b[0m                           yticklabels, mask)\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/seaborn/matrix.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data, vmin, vmax, cmap, center, robust, annot, fmt, annot_kws, cbar, cbar_kws, xticklabels, yticklabels, mask)\u001b[0m\n\u001b[1;32m    108\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    109\u001b[0m             \u001b[0mplot_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 110\u001b[0;31m             \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplot_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    111\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    112\u001b[0m         \u001b[0;31m# Validate the mask and convert to DataFrame\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data, index, columns, dtype, copy)\u001b[0m\n\u001b[1;32m    825\u001b[0m                 )\n\u001b[1;32m    826\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 827\u001b[0;31m                 mgr = ndarray_to_mgr(\n\u001b[0m\u001b[1;32m    828\u001b[0m                     \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    829\u001b[0m                     \u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/pandas/core/internals/construction.py\u001b[0m in \u001b[0;36mndarray_to_mgr\u001b[0;34m(values, index, columns, dtype, copy, typ)\u001b[0m\n\u001b[1;32m    312\u001b[0m         )\n\u001b[1;32m    313\u001b[0m         \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0m_copy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 314\u001b[0;31m         \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_ensure_2d\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    315\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    316\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/pandas/core/internals/construction.py\u001b[0m in \u001b[0;36m_ensure_2d\u001b[0;34m(values)\u001b[0m\n\u001b[1;32m    590\u001b[0m         \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    591\u001b[0m     \u001b[0;32melif\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 592\u001b[0;31m         \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Must pass 2-d input. shape={values.shape}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    593\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    594\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mValueError\u001b[0m: Must pass 2-d input. shape=(70, 1000, 5)"],"ename":"ValueError","evalue":"Must pass 2-d input. shape=(70, 1000, 5)","output_type":"error"},{"output_type":"display_data","data":{"text/plain":"<Figure size 1000x600 with 0 Axes>"},"metadata":{}}],"execution_count":9},{"cell_type":"code","source":"from scipy.signal import spectrogram\n\ndef plot_spectrogram(waveform_1d, title=\"Spectrogram\"):\n    f, t, Sxx = spectrogram(waveform_1d, fs=1000)  # fs — частота дискретизації, умовна\n    plt.figure(figsize=(10, 4))\n    plt.pcolormesh(t, f, Sxx, shading='gouraud', cmap='magma')\n    plt.ylabel('Frequency [Hz]')\n    plt.xlabel('Time [s]')\n    plt.title(title)\n    plt.colorbar(label='Intensity')\n    plt.tight_layout()\n    plt.show()\n\n# Беремо 1 сенсор з data[0]\nwaveform_1d = data[0][:, 0]\nplot_spectrogram(waveform_1d, title=\"Spectrogram — trace 0, sensor 0\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T05:40:58.626039Z","iopub.execute_input":"2025-06-16T05:40:58.626462Z","iopub.status.idle":"2025-06-16T05:40:58.98218Z","shell.execute_reply.started":"2025-06-16T05:40:58.626439Z","shell.execute_reply":"2025-06-16T05:40:58.980891Z"}},"outputs":[{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)","\u001b[0;32m/tmp/ipykernel_35/1298317432.py\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     14\u001b[0m \u001b[0;31m# Беремо 1 сенсор з data[0]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     15\u001b[0m \u001b[0mwaveform_1d\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 16\u001b[0;31m \u001b[0mplot_spectrogram\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwaveform_1d\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtitle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Spectrogram — trace 0, sensor 0\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m","\u001b[0;32m/tmp/ipykernel_35/1298317432.py\u001b[0m in \u001b[0;36mplot_spectrogram\u001b[0;34m(waveform_1d, title)\u001b[0m\n\u001b[1;32m      4\u001b[0m     \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSxx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mspectrogram\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwaveform_1d\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m)\u001b[0m  \u001b[0;31m# fs — частота дискретизації, умовна\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfigsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m4\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpcolormesh\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSxx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshading\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'gouraud'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcmap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'magma'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      7\u001b[0m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mylabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Frequency [Hz]'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      8\u001b[0m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxlabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Time [s]'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mpcolormesh\u001b[0;34m(alpha, norm, cmap, vmin, vmax, shading, antialiased, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m   2771\u001b[0m         \u001b[0mvmax\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshading\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mantialiased\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2772\u001b[0m         **kwargs):\n\u001b[0;32m-> 2773\u001b[0;31m     __ret = gca().pcolormesh(\n\u001b[0m\u001b[1;32m   2774\u001b[0m         \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0malpha\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnorm\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnorm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcmap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcmap\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvmin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvmin\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2775\u001b[0m         \u001b[0mvmax\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvmax\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshading\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshading\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mantialiased\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mantialiased\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/matplotlib/__init__.py\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1444\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0minner\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1445\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1446\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msanitize_sequence\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1447\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1448\u001b[0m         \u001b[0mbound\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnew_sig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbind\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mpcolormesh\u001b[0;34m(self, alpha, norm, cmap, vmin, vmax, shading, antialiased, *args, **kwargs)\u001b[0m\n\u001b[1;32m   6216\u001b[0m         \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetdefault\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'edgecolors'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'none'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   6217\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6218\u001b[0;31m         X, Y, C, shading = self._pcolorargs('pcolormesh', *args,\n\u001b[0m\u001b[1;32m   6219\u001b[0m                                             shading=shading, kwargs=kwargs)\n\u001b[1;32m   6220\u001b[0m         \u001b[0mcoords\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36m_pcolorargs\u001b[0;34m(self, funcname, shading, *args, **kwargs)\u001b[0m\n\u001b[1;32m   5753\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m    \u001b[0;31m# ['nearest', 'gouraud']:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5754\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mNx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNy\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mncols\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5755\u001b[0;31m                 raise TypeError('Dimensions of C %s are incompatible with'\n\u001b[0m\u001b[1;32m   5756\u001b[0m                                 ' X (%d) and/or Y (%d); see help(%s)' % (\n\u001b[1;32m   5757\u001b[0m                                     C.shape, Nx, Ny, funcname))\n","\u001b[0;31mTypeError\u001b[0m: Dimensions of C (5, 36, 1) are incompatible with X (1) and/or Y (36); see help(pcolormesh)"],"ename":"TypeError","evalue":"Dimensions of C (5, 36, 1) are incompatible with X (1) and/or Y (36); see help(pcolormesh)","output_type":"error"},{"output_type":"display_data","data":{"text/plain":"<Figure size 1000x400 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAA0UAAAFlCAYAAAAktEOqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdNUlEQVR4nO3dfWzdVf3A8U/b0VuItAzn2m0WJyggTxturBYkBFNpIhnuD0MdZlsWHkQnARqVjYdVRNepQJZIcWGA+A9uSIQYthSwshilZmFbE4jbCM65hdhuU2ln0Za1398fhvqr62C36wPdeb2S+0cP59zvueQwePO9vbcgy7IsAAAAElU43hsAAAAYT6IIAABImigCAACSJooAAICkiSIAACBpoggAAEiaKAIAAJImigAAgKSJIgAAIGmiCAAASFreUfTb3/425s+fH9OnT4+CgoJ49tln33fN5s2b49Of/nTkcrn4xCc+EU888cQwtgoAADDy8o6i7u7umDVrVjQ1NR3T/D//+c9x9dVXx5VXXhltbW1x2223xQ033BDPP/983psFAAAYaQVZlmXDXlxQEM8880wsWLDgqHPuuOOO2LhxY7z22msDY1/+8pfjrbfeiubm5uFeGgAAYERMGu0LtLa2Rk1NzaCx2trauO222466pqenJ3p6egZ+7u/vj7///e/x4Q9/OAoKCkZrqwAAwAdclmVx6NChmD59ehQWjsxHJIx6FLW3t0d5efmgsfLy8ujq6op//etfcfLJJx+xprGxMe69997R3hoAADBB7du3Lz760Y+OyHONehQNx4oVK6K+vn7g587OzjjjjDNi3759UVpaOo47AwAAxlNXV1dUVlbGqaeeOmLPOepRVFFRER0dHYPGOjo6orS0dMi7RBERuVwucrncEeOlpaWiCAAAGNFfqxn17ymqrq6OlpaWQWMvvvhiVFdXj/alAQAA3lfeUfTPf/4z2traoq2tLSL+85HbbW1tsXfv3oj4z1vfFi9ePDD/5ptvjt27d8e3v/3t2LlzZzz88MPx1FNPxe233z4yrwAAAOA45B1Fr7zySlx88cVx8cUXR0REfX19XHzxxbFy5cqIiPjrX/86EEgRER//+Mdj48aN8eKLL8asWbPigQceiEcffTRqa2tH6CUAAAAM33F9T9FY6erqirKysujs7PQ7RQAAkLDRaINR/50iAACADzJRBAAAJE0UAQAASRNFAABA0kQRAACQNFEEAAAkTRQBAABJE0UAAEDSRBEAAJA0UQQAACRNFAEAAEkTRQAAQNJEEQAAkDRRBAAAJE0UAQAASRNFAABA0kQRAACQNFEEAAAkTRQBAABJE0UAAEDSRBEAAJA0UQQAACRNFAEAAEkTRQAAQNJEEQAAkDRRBAAAJE0UAQAASRNFAABA0kQRAACQNFEEAAAkTRQBAABJE0UAAEDSRBEAAJA0UQQAACRNFAEAAEkTRQAAQNJEEQAAkDRRBAAAJE0UAQAASRNFAABA0kQRAACQNFEEAAAkTRQBAABJE0UAAEDSRBEAAJA0UQQAACRNFAEAAEkTRQAAQNJEEQAAkDRRBAAAJE0UAQAASRtWFDU1NcXMmTOjpKQkqqqqYsuWLe85f82aNXHOOefEySefHJWVlXH77bfHv//972FtGAAAYCTlHUUbNmyI+vr6aGhoiG3btsWsWbOitrY29u/fP+T8J598MpYvXx4NDQ2xY8eOeOyxx2LDhg1x5513HvfmAQAAjlfeUfTggw/GjTfeGEuXLo3zzjsv1q5dG6eccko8/vjjQ85/+eWX47LLLovrrrsuZs6cGVdddVUsXLjwfe8uAQAAjIW8oqi3tze2bt0aNTU1/32CwsKoqamJ1tbWIddceumlsXXr1oEI2r17d2zatCm+8IUvHPU6PT090dXVNegBAAAwGiblM/ngwYPR19cX5eXlg8bLy8tj586dQ6657rrr4uDBg/HZz342siyLw4cPx8033/yeb59rbGyMe++9N5+tAQAADMuof/rc5s2bY9WqVfHwww/Htm3b4pe//GVs3Lgx7rvvvqOuWbFiRXR2dg489u3bN9rbBAAAEpXXnaIpU6ZEUVFRdHR0DBrv6OiIioqKIdfcc889sWjRorjhhhsiIuLCCy+M7u7uuOmmm+Kuu+6KwsIjuyyXy0Uul8tnawAAAMOS152i4uLimDNnTrS0tAyM9ff3R0tLS1RXVw+55u233z4ifIqKiiIiIsuyfPcLAAAwovK6UxQRUV9fH0uWLIm5c+fGvHnzYs2aNdHd3R1Lly6NiIjFixfHjBkzorGxMSIi5s+fHw8++GBcfPHFUVVVFW+88Ubcc889MX/+/IE4AgAAGC95R1FdXV0cOHAgVq5cGe3t7TF79uxobm4e+PCFvXv3DrozdPfdd0dBQUHcfffd8eabb8ZHPvKRmD9/fnz/+98fuVcBAAAwTAXZBHgPW1dXV5SVlUVnZ2eUlpaO93YAAIBxMhptMOqfPgcAAPBBJooAAICkiSIAACBpoggAAEiaKAIAAJImigAAgKSJIgAAIGmiCAAASJooAgAAkiaKAACApIkiAAAgaaIIAABImigCAACSJooAAICkiSIAACBpoggAAEiaKAIAAJImigAAgKSJIgAAIGmiCAAASJooAgAAkiaKAACApIkiAAAgaaIIAABImigCAACSJooAAICkiSIAACBpoggAAEiaKAIAAJImigAAgKSJIgAAIGmiCAAASJooAgAAkiaKAACApIkiAAAgaaIIAABImigCAACSJooAAICkiSIAACBpoggAAEiaKAIAAJImigAAgKSJIgAAIGmiCAAASJooAgAAkiaKAACApIkiAAAgaaIIAABImigCAACSJooAAICkDSuKmpqaYubMmVFSUhJVVVWxZcuW95z/1ltvxbJly2LatGmRy+Xi7LPPjk2bNg1rwwAAACNpUr4LNmzYEPX19bF27dqoqqqKNWvWRG1tbezatSumTp16xPze3t74/Oc/H1OnTo2nn346ZsyYEX/5y1/itNNOG4n9AwAAHJeCLMuyfBZUVVXFJZdcEg899FBERPT390dlZWXccsstsXz58iPmr127Nn70ox/Fzp0746STThrWJru6uqKsrCw6OzujtLR0WM8BAABMfKPRBnm9fa63tze2bt0aNTU1/32CwsKoqamJ1tbWIdf86le/iurq6li2bFmUl5fHBRdcEKtWrYq+vr6jXqenpye6uroGPQAAAEZDXlF08ODB6Ovri/Ly8kHj5eXl0d7ePuSa3bt3x9NPPx19fX2xadOmuOeee+KBBx6I733ve0e9TmNjY5SVlQ08Kisr89kmAADAMRv1T5/r7++PqVOnxiOPPBJz5syJurq6uOuuu2Lt2rVHXbNixYro7OwceOzbt2+0twkAACQqrw9amDJlShQVFUVHR8eg8Y6OjqioqBhyzbRp0+Kkk06KoqKigbFPfepT0d7eHr29vVFcXHzEmlwuF7lcLp+tAQAADEted4qKi4tjzpw50dLSMjDW398fLS0tUV1dPeSayy67LN54443o7+8fGHv99ddj2rRpQwYRAADAWMr77XP19fWxbt26+NnP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Xbo0IiIWL14cM2bMiMbGxoiI+MEPfhArV66MJ598MmbOnBnt7e0REfGhD30oPvShD43gSwEAAMhf3lFUV1cXBw4ciJUrV0Z7e3vMnj07mpubBz58Ye/evVFY+N8bUD/5yU+it7c3vvSlLw16noaGhvjOd75zfLsHAAA4Tnl/T9F48D1FAABAxAfge4oAAABONKIIAABImigCAACSJooAAICkiSIAACBpoggAAEiaKAIAAJImigAAgKSJIgAAIGmiCAAASJooAgAAkiaKAACApIkiAAAgaaIIAABImigCAACSJooAAICkiSIAACBpoggAAEiaKAIAAJImigAAgKSJIgAAIGmiCAAASJooAgAAkiaKAACApIkiAAAgaaIIAABImigCAACSJooAAICkiSIAACBpoggAAEiaKAIAAJImigAAgKSJIgAAIGmiCAAASJooAgAAkiaKAACApIkiAAAgaaIIAABImigCAACSJooAAICkiSIAACBpoggAAEiaKAIAAJImigAAgKSJIgAAIGmiCAAASJooAgAAkiaKAACApIkiAAAgaaIIAABImigCAACSNqwoampqipkzZ0ZJSUlUVVXFli1b3nP+L37xizj33HOjpKQkLrzwwti0adOwNgsAADDS8o6iDRs2RH19fTQ0NMS2bdti1qxZUVtbG/v37x9y/ssvvxwLFy6M66+/PrZv3x4LFiyIBQsWxGuvvXbcmwcAADheBVmWZfksqKqqiksuuSQeeuihiIjo7++PysrKuOWWW2L58uVHzK+rq4vu7u547rnnBsY+85nPxOzZs2Pt2rXHdM2urq4oKyuLzs7OKC0tzWe7AADACWQ02mBSPpN7e3tj69atsWLFioGxwsLCqKmpidbW1iHXtLa2Rn19/aCx2traePbZZ496nZ6enujp6Rn4ubOzMyL+8zcAAABI17tNkOe9nfeUVxQdPHgw+vr6ory8fNB4eXl57Ny5c8g17e3tQ85vb28/6nUaGxvj3nvvPWK8srIyn+0CAAAnqL/97W9RVlY2Is+VVxSNlRUrVgy6u/TWW2/Fxz72sdi7d++IvXAYSldXV1RWVsa+ffu8VZNR5awxVpw1xoqzxljp7OyMM844I04//fQRe868omjKlClRVFQUHR0dg8Y7OjqioqJiyDUVFRV5zY+IyOVykcvljhgvKyvzDxljorS01FljTDhrjBVnjbHirDFWCgtH7tuF8nqm4uLimDNnTrS0tAyM9ff3R0tLS1RXVw+5prq6etD8iIgXX3zxqPMBAADGUt5vn6uvr48lS5bE3LlzY968ebFmzZro7u6OpUuXRkTE4sWLY8aMGdHY2BgREbfeemtcccUV8cADD8TVV18d69evj1deeSUeeeSRkX0lAAAAw5B3FNXV1cWBAwdi5cqV0d7eHrNnz47m5uaBD1PYu3fvoFtZl156aTz55JNx9913x5133hmf/OQn49lnn40LLrjgmK+Zy+WioaFhyLfUwUhy1hgrzhpjxVljrDhrjJXROGt5f08RAADAiWTkfjsJAABgAhJFAABA0kQRAACQNFEEAAAk7QMTRU1NTTFz5swoKSmJqqqq2LJly3vO/8UvfhHnnntulJSUxIUXXhibNm0ao50y0eVz1tatWxeXX355TJ48OSZPnhw1NTXvezbhXfn+ufau9evXR0FBQSxYsGB0N8gJI9+z9tZbb8WyZcti2rRpkcvl4uyzz/bvUY5JvmdtzZo1cc4558TJJ58clZWVcfvtt8e///3vMdotE9Fvf/vbmD9/fkyfPj0KCgri2Weffd81mzdvjk9/+tORy+XiE5/4RDzxxBN5X/cDEUUbNmyI+vr6aGhoiG3btsWsWbOitrY29u/fP+T8l19+ORYuXBjXX399bN++PRYsWBALFiyI1157bYx3zkST71nbvHlzLFy4MF566aVobW2NysrKuOqqq+LNN98c450z0eR71t61Z8+e+OY3vxmXX375GO2UiS7fs9bb2xuf//znY8+ePfH000/Hrl27Yt26dTFjxowx3jkTTb5n7cknn4zly5dHQ0ND7NixIx577LHYsGFD3HnnnWO8cyaS7u7umDVrVjQ1NR3T/D//+c9x9dVXx5VXXhltbW1x2223xQ033BDPP/98fhfOPgDmzZuXLVu2bODnvr6+bPr06VljY+OQ86+99trs6quvHjRWVVWVffWrXx3VfTLx5XvW/tfhw4ezU089NfvZz342WlvkBDGcs3b48OHs0ksvzR599NFsyZIl2Re/+MUx2CkTXb5n7Sc/+Ul25plnZr29vWO1RU4Q+Z61ZcuWZZ/73OcGjdXX12eXXXbZqO6TE0dEZM8888x7zvn2t7+dnX/++YPG6urqstra2ryuNe53inp7e2Pr1q1RU1MzMFZYWBg1NTXR2to65JrW1tZB8yMiamtrjzofIoZ31v7X22+/He+8806cfvrpo7VNTgDDPWvf/e53Y+rUqXH99dePxTY5AQznrP3qV7+K6urqWLZsWZSXl8cFF1wQq1atir6+vrHaNhPQcM7apZdeGlu3bh14i93u3btj06ZN8YUvfGFM9kwaRqoLJo3kpobj4MGD0dfXF+Xl5YPGy8vLY+fOnUOuaW9vH3J+e3v7qO2TiW84Z+1/3XHHHTF9+vQj/uGD/284Z+13v/tdPPbYY9HW1jYGO+REMZyztnv37vjNb34TX/nKV2LTpk3xxhtvxNe//vV45513oqGhYSy2zQQ0nLN23XXXxcGDB+Ozn/1sZFkWhw8fjptvvtnb5xhRR+uCrq6u+Ne//hUnn3zyMT3PuN8pgoli9erVsX79+njmmWeipKRkvLfDCeTQoUOxaNGiWLduXUyZMmW8t8MJrr+/P6ZOnRqPPPJIzJkzJ+rq6uKuu+6KtWvXjvfWOMFs3rw5Vq1aFQ8//HBs27YtfvnLX8bGjRvjvvvuG++twRHG/U7RlClToqioKDo6OgaNd3R0REVFxZBrKioq8poPEcM7a++6//77Y/Xq1fHrX/86LrrootHcJieAfM/an/70p9izZ0/Mnz9/YKy/vz8iIiZNmhS7du2Ks846a3Q3zYQ0nD/Xpk2bFieddFIUFRUNjH3qU5+K9vb26O3tjeLi4lHdMxPTcM7aPffcE4sWLYobbrghIiIuvPDC6O7ujptuuinuuuuuKCz0/+Y5fkfrgtLS0mO+SxTxAbhTVFxcHHPmzImWlpaBsf7+/mhpaYnq6uoh11RXVw+aHxHx4osvHnU+RAzvrEVE/PCHP4z77rsvmpubY+7cuWOxVSa4fM/aueeeG6+++mq0tbUNPK655pqBT9KprKwcy+0zgQznz7XLLrss3njjjYHwjoh4/fXXY9q0aYKIoxrOWXv77bePCJ93Y/w/v0MPx2/EuiC/z4AYHevXr89yuVz2xBNPZH/84x+zm266KTvttNOy9vb2LMuybNGiRdny5csH5v/+97/PJk2alN1///3Zjh07soaGhuykk07KXn311fF6CUwQ+Z611atXZ8XFxdnTTz+d/fWvfx14HDp0aLxeAhNEvmftf/n0OY5Vvmdt79692amnnpp94xvfyHbt2pU999xz2dSpU7Pvfe974/USmCDyPWsNDQ3Zqaeemv385z/Pdu/enb3wwgvZWWedlV177bXj9RKYAA4dOpRt37492759exYR2YMPPpht3749+8tf/pJlWZYtX748W7Ro0cD83bt3Z6ecckr2rW99K9uxY0fW1NSUFRUVZc3NzXld9wMRRVmWZT/+8Y+zM844IysuLs7mzZuX/eEPfxj4a1dccUW2ZMmSQfOfeuqp7Oyzz86Ki4uz888/P9u4ceMY75iJKp+z9rGPfSyLiCMeDQ0NY79xJpx8/1z7/0QR+cj3rL388stZVVVVlsvlsjPPPDP7/ve/nx0+fHiMd81ElM9Ze+edd7LvfOc72VlnnZWVlJRklZWV2de//vXsH//4x9hvnAnjpZdeGvK/vd49W0uWLMmuuOKKI9bMnj07Ky4uzs4888zspz/9ad7XLcgy9y8BAIB0jfvvFAEAAIwnUQQAACRNFAEAAEkTRQAAQNJEEQAAkDRRBAAAJE0UAQAASRNFAABA0kQRAACQNFEEAAAkTRQBAABJE0UAAEDS/g9g0Pg+LENQBwAAAABJRU5ErkJggg==\n"},"metadata":{}}],"execution_count":10},{"cell_type":"code","source":"from collections import Counter\nimport os\nimport numpy as np\ndef compare_structures(train_dir, test_dir):\n    train_shapes = []\n    test_shapes = []\n\n    for root, _, files in os.walk(train_dir):\n        for f in files:\n            if f.endswith(\".npy\"):\n                arr = np.load(os.path.join(root, f))\n                train_shapes.append(arr.shape)\n\n    for root, _, files in os.walk(test_dir):\n        for f in files:\n            if f.endswith(\".npy\"):\n                arr = np.load(os.path.join(root, f))\n                test_shapes.append(arr.shape)\n\n    print(\"Train sample shapes (top 5):\", Counter(train_shapes).most_common(5))\n    print(\"Test sample shapes (top 5):\", Counter(test_shapes).most_common(5))\n\n# Виклик\ncompare_structures(\n    \"/kaggle/input/waveform-inversion/train_samples\",\n    \"/kaggle/input/waveform-inversion/test\"\n)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T18:00:32.015581Z","iopub.execute_input":"2025-06-16T18:00:32.015938Z","iopub.status.idle":"2025-06-16T18:20:18.47159Z","shell.execute_reply.started":"2025-06-16T18:00:32.01591Z","shell.execute_reply":"2025-06-16T18:20:18.469949Z"}},"outputs":[{"name":"stdout","text":"Train sample shapes (top 5): [((500, 5, 1000, 70), 20), ((500, 1, 70, 70), 20)]\nTest sample shapes (top 5): [((5, 1000, 70), 65818)]\n","output_type":"stream"}],"execution_count":3},{"cell_type":"code","source":"import numpy as np\nimport os\n\n# Каталог\ntrain_dir = \"/kaggle/input/waveform-inversion/train_samples\"\n\n# Збір даних\nseismograms = []\nvelocity_maps = []\n\nfor root, _, files in os.walk(train_dir):\n    for file in files:\n        if file.endswith(\".npy\"):\n            path = os.path.join(root, file)\n            arr = np.load(path)\n            if arr.shape == (500, 5, 1000, 70):\n                seismograms.append(arr)\n            elif arr.shape == (500, 1, 70, 70):\n                velocity_maps.append(arr)\n\n# З'єднуємо в один масив (20 файлів → 20 * 500 = 10000 прикладів)\nseismograms = np.concatenate(seismograms, axis=0)\nvelocity_maps = np.concatenate(velocity_maps, axis=0)\n\nprint(\"Seismograms:\", seismograms.shape)      # (10000, 5, 1000, 70)\nprint(\"Velocity maps:\", velocity_maps.shape)  # (10000, 1, 70, 70)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T18:47:12.153486Z","iopub.execute_input":"2025-06-16T18:47:12.153863Z","iopub.status.idle":"2025-06-16T18:49:32.00039Z","shell.execute_reply.started":"2025-06-16T18:47:12.153833Z","shell.execute_reply":"2025-06-16T18:49:31.999157Z"}},"outputs":[{"name":"stdout","text":"Seismograms: (10000, 5, 1000, 70)\nVelocity maps: (10000, 1, 70, 70)\n","output_type":"stream"}],"execution_count":5},{"cell_type":"code","source":"# Heatmap сейсмограми\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n\nexample_seismo = seismograms[0, 0, :, :]  # перший приклад, перший trace\n\nplt.figure(figsize=(12, 5))\nsns.heatmap(example_seismo.T, cmap=\"viridis\")\nplt.title(\"Seismogram (Trace 0, Example 0)\")\nplt.xlabel(\"Time step\")\nplt.ylabel(\"Sensor\")\nplt.show()\n\n# Карта швидкості\nexample_velocity = velocity_maps[0, 0, :, :]\n\nplt.figure(figsize=(6, 6))\nplt.imshow(example_velocity, cmap=\"plasma\", origin=\"lower\")\nplt.title(\"Velocity Map (Example 0)\")\nplt.colorbar(label=\"Velocity\")\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T06:10:48.35503Z","iopub.execute_input":"2025-06-16T06:10:48.355401Z","iopub.status.idle":"2025-06-16T06:10:49.537245Z","shell.execute_reply.started":"2025-06-16T06:10:48.355377Z","shell.execute_reply":"2025-06-16T06:10:49.53634Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1200x500 with 2 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAA5MAAAHjCAYAAAC+UkthAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADCPUlEQVR4nOzdeXwU5f0H8M8zu8kmHAlnCAgBBOQQUQyIAQ/QcCpipVAVC1grHggCrUdsFdBC8AQPGsAiYi1FUUH0JyCgYK2AEE0BrVxiUU5RCRBgk+w8vz92Z3ZmdjbZJJvMJvm8X68xs888M/Od2QV8MjOfFVJKCSIiIiIiIqIyUJwugIiIiIiIiKofDiaJiIiIiIiozDiYJCIiIiIiojLjYJKIiIiIiIjKjINJIiIiIiIiKjMOJomIiIiIiKjMOJgkIiIiIiKiMuNgkoiIiIiIiMqMg0kiIiIiIiIqMw4miahGGjt2LNq0aeN0GTXe6dOnkZKSgn/84x9Ol0Ixok2bNhg7dmyV73f16tWoV68efvzxxyrfNxFRbcXBJBHFhB07duDXv/41WrdujYSEBJx33nno378/XnzxRadLoxI8//zzqF+/Pm6++WZ89913EEJENH333XdOlx6RhQsXonPnzkhISECHDh0q/Hks6ZzcfffdUaq65vnvf/+LQYMGoV69emjUqBF++9vfhgwaBw0ahPbt2yM7O9uhKomIah8hpZROF0FEtdtnn32Gfv36IS0tDWPGjEFqaiq+//57bN68Gfv27cPevXvLvM2ioiKoqgqPx1MJFRPgP8fnnXceJk+ejKysLBQUFGD58uWmPs8++yx++OEHzJ4929T+q1/9CnXr1q3Kcsts/vz5uPvuuzF8+HAMHDgQ//rXv/D3v/8ds2bNwkMPPVSubQoh0L9/f4wePTpk2QUXXIDLLrusomU7rk2bNujbty9effXVqGzvhx9+QPfu3ZGcnIyJEyfi9OnTeOaZZ5CWlobPP/8c8fHxet+cnBz88Y9/xJEjR1C/fv2o7J+IiMLjYJKIHHfddddh69at2L17Nxo0aGBaduzYMaSkpDhTWIwqKCiIiYHY8uXLcdNNN2Hv3r1o166dbZ/rr78eO3fuLPFKpJQS586dQ2JiYiVVWnZnz55Fq1atcPnll+P999/X22+77TasWLEC33//PRo2bFjm7QohMH78eLz00kvRLDemRHswee+99+LVV1/FN998g7S0NADAunXr0L9/f8yfPx/jxo3T+x47dgwtWrTAggUL8Lvf/S4q+yciovB4mysROW7fvn248MILQwaSAGwHkq+//jrS09ORmJiIRo0a4eabb8b3339v6mP3zOTSpUuRnp6O+vXrIykpCRdddBGef/55ffmrr74KIQQ+/fRTTJw4EU2bNkWDBg1w1113obCwECdOnMDo0aPRsGFDNGzYEA8++CCsv48rKCjAH/7wB7Rq1QoejwcdO3bEM888E9Lv7NmzmDhxIpo0aYL69evjhhtuwMGDByGEwLRp0/R+06ZNgxACX3/9NW699VY0bNgQV1xxBQBg+/btGDt2LM4//3wkJCQgNTUVv/vd7/DTTz+Z9qVtY/fu3bjtttuQnJyMpk2b4tFHH4WUEt9//z2GDRuGpKQkpKam4tlnnw37XhmtWLECbdq0CTuQDKdNmza4/vrrsWbNGvTo0QOJiYmYP38+AGDRokW45pprkJKSAo/Hgy5duiAnJ8d2O6tWrcLVV1+tv589e/bEkiVLTH22bNmCQYMGITk5GXXq1MHVV1+Nf//736XW+PHHH+Onn37Cvffea2ofP348CgoK8H//939lOuay+O9//4vExMSQq5effvopXC6X6arou+++i+uuuw4tWrSAx+NBu3bt8MQTT8Dn85nW7du3L7p27Yrt27fj6quvRp06ddC+fXu89dZbAICNGzeiV69eSExMRMeOHbFu3TrT+tpn6JtvvsHIkSORlJSExo0b4/7778e5c+dKPaYTJ05g0qRJ+p+L9u3b48knn4SqqqWu+/bbb+P666/XB5IAkJmZiQsuuABvvvmmqW9KSgq6deuGd999t9TtEhFRxXEwSUSOa926NXJzc7Fz585S+86YMQOjR49Ghw4d8Nxzz2HSpElYv349rrrqKpw4cSLsemvXrsUtt9yChg0b4sknn8SsWbPQt29f24HFhAkTsGfPHkyfPh033HADFixYgEcffRRDhw6Fz+fDzJkzccUVV+Dpp5/G3//+d309KSVuuOEGzJ49G4MGDcJzzz2Hjh074oEHHsCUKVNM+xg7dixefPFFDBkyBE8++SQSExNx3XXXha1/xIgROHPmDGbOnIk777xTP6Zvv/0Wt99+O1588UXcfPPNWLp0KYYMGRIyeAWA3/zmN1BVFbNmzUKvXr3wl7/8BXPmzEH//v1x3nnn4cknn0T79u3xxz/+EZ988klpbwU+++wzXHrppaX2s7Nr1y7ccsst6N+/P55//nlccsklAPy3KbZu3RqPPPIInn32WbRq1Qr33nsv5s6da1r/1VdfxXXXXYeff/4ZWVlZmDVrFi655BKsXr1a7/PRRx/hqquuwsmTJzF16lTMnDkTJ06cwDXXXIPPP/+8xPq+/PJLAECPHj1M7enp6VAURV9eHufOncPx48dDpsLCQgBA586d8cQTT+Dvf/87Vq5cCcD/S4qxY8eiU6dOePzxx03noV69epgyZQqef/55pKen47HHHsPDDz8cst9ffvkF119/PXr16oWnnnoKHo8HN998M9544w3cfPPNGDJkCGbNmoWCggL8+te/xqlTp0K2MXLkSJw7dw7Z2dkYMmQIXnjhBdOVQTtnzpzB1Vdfjddffx2jR4/GCy+8gD59+iArKyvkz4XVwYMHcezYsZD3AQAuu+wy2/chPT0dn332WYnbJSKiKJFERA778MMPpcvlki6XS2ZkZMgHH3xQrlmzRhYWFpr6fffdd9LlcskZM2aY2nfs2CHdbrepfcyYMbJ169b66/vvv18mJSXJ4uLisHUsWrRIApADBw6Uqqrq7RkZGVIIIe+++269rbi4WLZs2VJeffXVetuKFSskAPmXv/zFtN1f//rXUggh9+7dK6WUMjc3VwKQkyZNMvUbO3asBCCnTp2qt02dOlUCkLfccktIvWfOnAlp++c//ykByE8++SRkG+PGjQupXwghZ82apbf/8ssvMjExUY4ZMybMWfIrKiqSQgj5hz/8ocR+1113nel9kFLK1q1bSwBy9erVER3TwIED5fnnn6+/PnHihKxfv77s1auXPHv2rKmv9r6pqio7dOgQ8l6eOXNGtm3bVvbv37/EusePHy9dLpftsqZNm8qbb765xPXDARB2+uc//6n38/l88oorrpDNmjWTx48fl+PHj5dut1tu3brVtD2783XXXXfJOnXqyHPnzultV199tQQglyxZord98803EoBUFEVu3rxZb1+zZo0EIBctWqS3aZ+hG264wbSve++9VwKQ//nPf/S21q1bmz4/TzzxhKxbt67cvXu3ad2HH35YulwueeDAgbDna+vWrRKAfO2110KWPfDAAxKA6TillHLmzJkSgDx69GjY7RIRUXTwyiQROa5///7YtGkTbrjhBvznP//BU089hYEDB+K8887Tr8wAwDvvvANVVTFy5EjTFZ3U1FR06NABH3/8cdh9NGjQAAUFBVi7dm2p9dxxxx0QQuive/XqBSkl7rjjDr3N5XKhR48e+Pbbb/W2Dz74AC6XCxMnTjRt7w9/+AOklFi1ahUA6FfPrLdQTpgwIWxNdkmfxmcMtatdl19+OQDgiy++COn/+9//PqR+63E1aNAAHTt2NB2XnZ9//hlSynI9NwgAbdu2xcCBA0PajceUn5+P48eP4+qrr8a3336L/Px8AP4rsqdOncLDDz+MhIQE0/ra+5aXl4c9e/bg1ltvxU8//aR/VgoKCnDttdfik08+KfEWy7Nnz5qCXYwSEhJw9uzZMh+zZtiwYVi7dm3I1K9fP72Poih49dVXcfr0aQwePBh//etfkZWVFXKFzni+Tp06hePHj+PKK6/EmTNn8M0335j61qtXDzfffLP+umPHjmjQoAE6d+6MXr166e3avN1nYPz48abX2mf2gw8+CHu8y5Ytw5VXXomGDRua/txmZmbC5/OVeBVcO892QVrae299L7TP5PHjx8Nul4iIosPtdAFERADQs2dPvPPOOygsLMR//vMfLF++HLNnz8avf/1r5OXloUuXLtizZw+klOjQoYPtNuLi4sJu/95778Wbb76JwYMH47zzzsOAAQMwcuRIDBo0KKSv8dksAEhOTgYAtGrVKqT9l19+0V//73//Q4sWLUJSJDt37qwv134qioK2bdua+rVv3z5s/da+gH9AN336dCxduhTHjh0zLdMGXqUdV0JCApo0aRLSbn3uMhxZzgw3u+MBgH//+9+YOnUqNm3ahDNnzpiW5efnIzk5Gfv27QMAdO3aNez29+zZAwAYM2ZM2D75+flhB8OJiYn6badWFQ0LatmyJTIzM0vt165dO0ybNg0PPPAAunbtikcffTSkz1dffYU///nP+Oijj3Dy5EnTMutnoGXLlqZfkgD+99rucw3A9NnWWP/stWvXDoqilBiwtGfPHmzfvh1Nmza1XW797Bpp59nr9YYs057VtL4X2mfSeqxERBR9HEwSUUyJj49Hz5490bNnT1xwwQW4/fbbsWzZMkydOhWqqkIIgVWrVsHlcoWsW69evbDbTUlJQV5eHtasWYNVq1Zh1apVWLRoEUaPHo3Fixeb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yiMSkZxPo3AhPJbzGfIZCler5c9nyLmtgvPKEB4yitbni5+p6GHgDhFFytHB5LZt29CvXz/99ZQpUwAAY8aMQU5ODrZv347FixfjxIkTaNGiBQYMGIAnnniC3zVJRERERESOYABPkKODyb59+0LK8L/+WrNmTRVWQ0REREREVLKa8KxjtPBMEBERERERUZkxmYaIiIiIiChCquOBFrGDg0kiIiIiIqII+fjMpI6DSYqKkhJeremuUjGkeUoRTEPVE1ylJfFVaw9sQwKKCkitD6Q/qVUE0lxdwv/akOyqugOprgqgBhJeEUiE1ahuw37ig/tTigGogWTZQMqrnjIrgwmwMNSnnwPtOENOGMwJndbFsZbuak3oLYkxFVSblZbPgSVBtKyprvq6YZJJjduOpqhtM1qJroZlZU5ILUMNTHSlaIrGZ4mfnehieisRlRcHk0RERERERBFiAE+Qo2fik08+wdChQ9GiRQsIIbBixQrT8tOnT+O+++5Dy5YtkZiYiC5dumDevHnOFEtERERERLWeKkXUpurO0cFkQUEBLr74YsydO9d2+ZQpU7B69Wq8/vrr+O9//4tJkybhvvvuw8qVK6u4UiIiIiIiIjJy9DbXwYMHY/DgwWGXf/bZZxgzZgz69u0LABg3bhzmz5+Pzz//HDfccEMVVUlEREREROTHNNegmH5msnfv3li5ciV+97vfoUWLFtiwYQN2796N2bNnO10aRcB65V7YLTM+9B+4Tq6F8miBAEINptgYw3hsQ3p8gFIs9X1ooTsyEMpjDOCRhoAeKIAa+CmFv1itRp/LsB9fcN/CB38wj2ppN0xSO0a7cANpmS8hkCfsOStphcpQgSAeU9iOzbKwd3qE2acpFMamT2WExkRVNEN47Nos/UurwYnzyRCe2iFanxt+VqIr3PvC80xUuppwe2q0xPRg8sUXX8S4cePQsmVLuN1uKIqCl19+GVdddZXTpREREREREdVqMT+Y3Lx5M1auXInWrVvjk08+wfjx49GiRQtkZmbaruP1euH1ek1tqq8YiiumD5WIiIiIiKoBprkGxewI6+zZs3jkkUewfPlyXHfddQCAbt26IS8vD88880zYwWR2djamT59uamvWcwBSLxtU6TUTEREREVHNxttcg2J2WF1UVISioiIoirlEl8sFVVXDrAVkZWUhPz/fNKWk2w88iYiI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bk+NlnINJj0eD06ePBnSvnv3bjRt2rTCRREREREREcWimvCsY7SUK4DnhhtuwOOPP46ioiIAgBACBw4cwEMPPYThw4dHtUAiIiIiIiKKPeUaTD777LM4ffo0UlJScPbsWVx99dVo164d6tWrhxkzZkS7RiIiIiIiotggozhVc+W6zTU5ORlr167Fp59+iu3bt+P06dNIT0/HtddeG+36iKiMyhPKI7S8HS1wRYpg+IoMBPIYlutx1hIQkIAvuG0lEMqjKAAUQwCP4i9EtbRrIT36r7YMwTzaX7S2ATyqeV7/CXOYkPnklHzuSmRZNyQQxxDAIxAMHIJlXj/9ArbBNdq8MZBI/xlhGE+0b7+xBvHoNWhBRDalhAsdsg0gstm2fioMoT+lvn/G0J4wTMfiAAbvVD7rOeb5IqJo422uQWW6Mrlp0ya8//77+usrrrgCdevWxV//+lfccsstGDduHLxeb9SLJCIiIiIiothSpsHk448/jq+++kp/vWPHDtx5553o378/Hn74Ybz33nvIzs6OepFEREREREQxgbe56so0mMzLyzPdyrp06VJcdtllePnllzFlyhS88MILePPNNyPeXk5ODrp164akpCQkJSUhIyMDq1at0pfv27cPv/rVr9C0aVMkJSVh5MiROHr0aFlKJiIiIiIiih4OJnVlGkz+8ssvaNasmf5648aNGDx4sP66Z8+e+P777yPeXsuWLTFr1izk5uZi27ZtuOaaazBs2DB89dVXKCgowIABAyCEwEcffYR///vfKCwsxNChQ6GqalnKJiIiIiIioigrUwBPs2bNsH//frRq1QqFhYX44osvMH36dH35qVOnEBcXF/H2hg4dano9Y8YM5OTkYPPmzTh48CC+++47fPnll0hKSgIALF68GA0bNsRHH32EzMzMspRORERERERUYQzgCSrTYHLIkCF4+OGH8eSTT2LFihWoU6cOrrzySn359u3b0a5du3IV4vP5sGzZMhQUFCAjIwP79u2DEAIej0fvk5CQAEVR8Omnn3IwSVQG1jRDU0KmttzQpqe7wt8uAxvQUlIlzAmv2l+q1oRXLcVUCqGntipagqsSSHkVocmu0qUVCn/yq1aK1m5McA2kvEICSqAtJO3VmowaDXbproakUNM5tkl2NS6Xlp/BDcKUqmuX7GpKgbXuP8qM2zQFpxpTXaV9Sq1doqYU5j6mbWvrmTdl3nk4MZrqyiTXqsFzRERUdco0mHziiSdw00034eqrr0a9evWwePFixMfH68tfeeUVDBgwoEwF7NixAxkZGTh37hzq1auH5cuXo0uXLmjatCnq1q2Lhx56CDNnzoSUEg8//DB8Ph8OHz4cdnterzckUVb1FUNxletbUIiIiIiIiMhGmZ6ZbNKkCT755BP88ssv+OWXX/CrX/3KtHzZsmWYOnVqmQro2LEj8vLysGXLFtxzzz0YM2YMvv76azRt2hTLli3De++9h3r16iE5ORknTpzApZdeCkUJX3Z2djaSk5NN07HcdWWqiYiIiIiIyBYDeHTlulyXnJxs296oUaMybys+Ph7t27cHAKSnp2Pr1q14/vnnMX/+fAwYMAD79u3D8ePH4Xa70aBBA6SmpuL8888Pu72srCxMmTLF1HbFQ/PLXBcREREREZEVn5kMirl7P1VVDblNtUmTJgCAjz76CMeOHcMNN9wQdn2Px2N6zhIAb3ElIiIiIiKKMkdHWVlZWRg8eDDS0tJw6tQpLFmyBBs2bMCaNWsAAIsWLULnzp3RtGlTbNq0Cffffz8mT56Mjh07Olk2UbVnF1Ahwi2Xlnk9ECYYyqNl8QgZTEwRWvCNFsijbbcYeiiPVKCH06gu6K+1YB6tXesjtTvcleC8lADc/n2pxtAdXzAQRvgsYTyGn1Fj2JYermMNghHmee08C2tAj3GzNiE12vm2BvKEe9vK9RvUcOtYg4GMzVoQT+D4jcFOWm3hwlFCgolkcH3bfZVUo3W5w0E80foNNoNliIhiBK9M6hwdTB47dgyjR4/G4cOHkZycjG7dumHNmjXo378/AGDXrl3IysrCzz//jDZt2uBPf/oTJk+e7GTJRERERERUm3EwqXN0MLlw4cISl8+aNQuzZs2qomqIiIiIiIgoUnyYkIiIiIiIKEIM4AniYJKIiIiIiChSHEzqyvQ9k0REREREREQAr0wSUYBtwquWrGnsY0ktlQi2SSlMiaNCWmI4tW0GEl6lamhXRDABVPH/lAqgBNJcZSDBVUv91BNfEVwOlyFZVkUw5VRLeVUNKbOqoV3rrx9oBCesNOHSXQ3nUwjD8dgkuwLm98V4vPp2EThmYzqtlqAaevpLvzWnLMsN+whJcoV53rCK+VhMjYbzYNyllupqKMH02SxjzXas56WiyalMcCUiqrl4m2sQB5NERERERESR4mBSFzO3uc6aNQtCCEyaNAkA8PPPP2PChAno2LEjEhMTkZaWhokTJyI/P9/ZQomIiIiIiCg2rkxu3boV8+fPR7du3fS2Q4cO4dChQ3jmmWfQpUsX/O9//8Pdd9+NQ4cO4a233nKwWiIiIiIiqrV4ZVLn+GDy9OnTGDVqFF5++WX85S9/0du7du2Kt99+W3/drl07zJgxA7fddhuKi4vhdjteOhERERER1TJ8ZjLI8RHZ+PHjcd111yEzM9M0mLSTn5+PpKQkDiSJqog1/MM2kAcw/4bOGMgSSF8xhrTAEsqjB+D4pHmbApBCBMN1LCE8egCPcd4Y0BNYB4aQIGMIjymYRwYDe4RhXq/P+o+G9rqkcBRr6IvleK2BPHoYj37swXatjzW0Rhrm9X1K+/mIwnjK+o9jmDAeU0CO9lOY6xewfH6swUOGftqMHjSkbVeibEE8NjWHox9LGQJwGLpDRES1jaOjsqVLl+KLL77A1q1bS+17/PhxPPHEExg3blwVVEZERERERGSDVyZ1jg0mv//+e9x///1Yu3YtEhISSux78uRJXHfddejSpQumTZtWYl+v1wuv12tqU33FUFy8mklERERERBXEwaTOsTTX3NxcHDt2DJdeeincbjfcbjc2btyIF154AW63Gz6fDwBw6tQpDBo0CPXr18fy5csRFxdX4nazs7ORnJxsmo7lrquKQyIiIiIiIqo1HBtMXnvttdixYwfy8vL0qUePHhg1ahTy8vLgcrlw8uRJDBgwAPHx8Vi5cmWpVzABICsrC/n5+aYpJT2zCo6IiIiIiIhqOiGjN1V3jt37Wb9+fXTt2tXUVrduXTRu3Bhdu3bVB5JnzpzB66+/jpMnT+LkyZMAgKZNm8Llctlu1+PxwOPxmNp4iysREREREUVFDRgERkvMjrK++OILbNmyBQDQvn1707L9+/ejTZs2DlRFVLuFS5kUdn2sCa9aOmagg5aS6k/+tEl4lYCAhBSA8AUWK1rEaTDZFQJQXTCnuhra9BRR7adiSAo1prb6Sk95NaWH2iXYhmO3PLAdY7qrnnBqmbdNdjVuy9im9TWk2AbPM0znOCTZtSypqHbHYy7HnMhqTXWVYY5HmH9Kw7kW2n+k4VilZXlZ6o8g2bUqfmvM9FYiIqquYmowuWHDBn2+b9++kLIK/hUnIiIiIiKKUE24PTVaYmowSUREREREFNM4mNQ5FsBDRERERERE1RevTBIREREREUWKVyZ1HEwSUYVZA0RMYS4wh6hoy/VwGPhDeYzPH0gZGsoDAIpPBsNofMF9KIoIhuso/v0pWiiPoU17rYXASMO9GdIFU9COHsSjBfBo+9TivI3hPYYQmDL9A2MN8QkTyCOMYTTC3AZhE14DhAQhWQN5TME11jAeu/rC1W1lDMwxhBVJYXitHY9iOG7jpq2BNDYhPcYAJ+21NHcv33tRRWE4DN0hIqq++Fd4EG9zJSIiIiIiojLjlUkiIiIiIqJI8TZXXcxcmZw1axaEEJg0aZLe1rdvXwghTNPdd9/tXJFERERERFSrCRm9qbqLiSuTW7duxfz589GtW7eQZXfeeScef/xx/XWdOnWqsjQiIiIiIiKy4fiVydOnT2PUqFF4+eWX0bBhw5DlderUQWpqqj4lJSU5UCURERERERFCw+wqMlVzjg8mx48fj+uuuw6ZmZm2y//xj3+gSZMm6Nq1K7KysnDmzJkqrpCIykoK8wQgmOJpTFjVJpdhCrxWXQKqS0C6BKSiTTBHqGmpqz4JpVhCKZJweSVcXsB1zj+5zwZ+Bl67vIDiDfwsAkRxMKUVMNTjBtT4wOQBfPGAzxOYDPNqHKC6/ZO2LhTD8ZbpxBkmLUVW9denJcsKH6D4DG3GZSpC/3GyO+eW860az70h/VaGO46SjivMP5ZCDSawavOmug3HG/YfWeNnSKtPS+dVDEm9hvTecLWGvbWoEv+RD/kzQURE1ZODg8m5c+eiTZs2SEhIQK9evfD5559X9GgqxNHbXJcuXYovvvgCW7dutV1+6623onXr1mjRogW2b9+Ohx56CLt27cI777wTdpterxder9fUpvqKobhi4o5eIiIiIiKiMnvjjTcwZcoUzJs3D7169cKcOXMwcOBA7Nq1CykpKY7U5NiVye+//x73338//vGPfyAhIcG2z7hx4zBw4EBcdNFFGDVqFF577TUsX74c+/btC7vd7OxsJCcnm6Zjuesq6zCIiIiIiKgWcSqA57nnnsOdd96J22+/HV26dMG8efNQp04dvPLKK5VzoBFwbDCZm5uLY8eO4dJLL4Xb7Ybb7cbGjRvxwgsvwO12w+fzhazTq1cvAMDevXvDbjcrKwv5+fmmKSXd/hZaIiIiIiKiMoniba5erxcnT540Tda7LAGgsLAQubm5pkcDFUVBZmYmNm3aVHnHWgrHBpPXXnstduzYgby8PH3q0aMHRo0ahby8PLhcrpB18vLyAADNmzcPu12Px4OkpCTTxFtciYiIiIgo1tjdVZmdnR3S7/jx4/D5fGjWrJmpvVmzZjhy5EhVlRvCsVFW/fr10bVrV1Nb3bp10bhxY3Tt2hX79u3DkiVLMGTIEDRu3Bjbt2/H5MmTcdVVV9l+hQgRxS67wBEhYQpH0ftIcx9paJNSBG8JkVofGVzH0CZUbSOAKBZ6aAsM4SyqC6HhLSIQooPga61OqRhq18JktNAY1XDLigwE42j1aLWU9WF7aZ4XhvMlDEEuQrUEzhhrtobQGNst27cNBdDmheG4te1EciyWPvr7rv20zEsB03snDTWbN2TYvHYeJCC18284RtPq2mdJIOT2IttgHGuYUTkwcIeIqGaJ5vdDZmVlYcqUKaY2j8cTvR1Uspi9ZBcfH49169Zhzpw5KCgoQKtWrTB8+HD8+c9/dro0IiIiIiKqraI4mPR4PBENHps0aQKXy4WjR4+a2o8ePYrU1NToFVRGMTWY3LBhgz7fqlUrbNy40bliiIiIiIiIYkB8fDzS09Oxfv163HjjjQAAVVWxfv163HfffY7VFVODSSIiIiIiolgWzdtcy2LKlCkYM2YMevTogcsuu0y/g/P22293piBwMElERERERBQ5hwaTv/nNb/Djjz/isccew5EjR3DJJZdg9erVIaE8VYmDSSIiIiIiomrgvvvuc/S2VisOJonIEREnvBra9HRXQE8ZlTAnvAopg8stbQIwpJkKKIa0VukKJLkq8Ce+KoFdaImvhiRYbR7wp4fq+1cNaa6WeVPyqyH11VQrSr51Rlpe6OmuIpheqrVpybPGdNdwya6AJU3XUJc01mpYZqrTLrHVWrsx/dWYDms4hpBatWO0qV0PlbW2CUOqq/F4tLoNK1sTXcPWHeY4y5vuSkRE1ZxDVyZjEQeTREREREREEXLqmclYpJTepWrMmjULQghMmjRJbzty5Ah++9vfIjU1FXXr1sWll16Kt99+27kiiYiIiIiICECMDCa3bt2K+fPno1u3bqb20aNHY9euXVi5ciV27NiBm266CSNHjsSXX37pUKVERERERFSrWR//qMhUzTk+mDx9+jRGjRqFl19+GQ0bNjQt++yzzzBhwgRcdtllOP/88/HnP/8ZDRo0QG5urkPVEhERERFRbSakjNpU3Tk+mBw/fjyuu+46ZGZmhizr3bs33njjDfz8889QVRVLly7FuXPn0Ldv36ovlIgqnRZuY5xMoSxaMI4274I/FMcVfK26BFSXgHQJSMU/mcJd9FAcCeGTUIoDUyHg8gLuc4DrHOA+C7i1117/vOL1z7sKAVEMCF8g7EWr1wWobkCNA9R4wGeYVJt5Nc7fX7r9xwHj8WnHbyCkZVIDgT6BSaiBmrSfPkDxBef1SVvP8G+Y/ktS43l2mSfV+Npw3qEYzi/ChytZa4cM1G44Fm1SfObjM9UsQ95OPXzH+DmBFppkeK2HLBlqtavXru7QD6z5HBIREdU2jgbwLF26FF988QW2bt1qu/zNN9/Eb37zGzRu3Bhutxt16tTB8uXL0b59+yqulIiIiIiICPxFooFjg8nvv/8e999/P9auXYuEhATbPo8++ihOnDiBdevWoUmTJlixYgVGjhyJf/3rX7jooots1/F6vfB6vaY21VcMxcXgWiIiIiIiqhimuQY5dptrbm4ujh07hksvvRRutxtutxsbN27ECy+8ALfbjX379uGll17CK6+8gmuvvRYXX3wxpk6dih49emDu3Llht5udnY3k5GTTdCx3XRUeGRERERERUc3n2GDy2muvxY4dO5CXl6dPPXr0wKhRo5CXl4czZ874C1TMJbpcLqiqGna7WVlZyM/PN00p6aHPYxIREREREZUZ01x1jt37Wb9+fXTt2tXUVrduXTRu3Bhdu3ZFUVER2rdvj7vuugvPPPMMGjdujBUrVmDt2rV4//33w27X4/HA4/GY2niLKxERERERRQNvcw2K2VFWXFwcPvjgAzz88MMYOnQoTp8+jfbt22Px4sUYMmSI0+URURWxSzSFsFkuzX2koU1KEfyLX2p9ZPC1hCmeW6jatoWeAAoBKFoiqAIormC7MWFWTxQ1ppu6DP/wqIF5Q6KpgD9lFZakUyEBafjNZbh/vKzHJgMBttr+hTC3WVNyjUmsEJZflBqXBc6rkIFjNdSoH5N+zstWtwxEswpLLaaUWCWwPDCvHZt26MbdaMesLTSeS2Hcn+FjUFKt1mWmz6W+cvj1SkqMJSIiqq5iajC5YcMG0+sOHTrg7bffdqYYIiIiIiIiK16Z1MXUYJKIiIiIiCiW8TbXIMcCeIiIiIiIiKj64pVJIiIiIiKiSPHKpI6DSSKqVuyCTGxDeQxteiAPEHkoj+F1MLhG22AwbEcL3pEKgMBPCX/ojh52oxjqclnCXrRQGBfMITaBIB5jGA/UYG3G8Bjb82E81nCBPCK4XL9PxTpv2CUM/YW2IDBJ+GstUxiPMTTJ0CYNdSKwLykMQTbG99d6LKGbDobxGIN4tHq1dsN6kdy+JAznNuR4wnxGGcJDRFQz8DbXIN7mSkRERERERGXGK5NERERERESRkrw0qXH0yuS0adMghDBNnTp10pcvWLAAffv2RVJSEoQQOHHihHPFEhERERFRrSdk9KbqzvHbXC+88EIcPnxYnz799FN92ZkzZzBo0CA88sgjDlZIREREREREVo7f5up2u5Gammq7bNKkSQCADRs2VF1BRERERERE4dSAK4rR4vhgcs+ePWjRogUSEhKQkZGB7OxspKWlOV0WEVUjtgmvdsvtEl4N8Z8SJSS8AhCqcV7btjCltmppo3rCqwDUwE+9XZhfA/70V9O+tVtgfNDTRvV5GZqcGpLuakxK1Y67pHRXNfharxH+Y9JPprCkpQrDtgLr6WmpllRa/Zwbk12NtYap15rsCktdepJrmFRX07wxCRaGeeMk4E/NNdYSsqFgHcbldp8zI9sEWCIiqnaEWnqf2sLRwWSvXr3w6quvomPHjjh8+DCmT5+OK6+8Ejt37kT9+vXLtU2v1wuv12tqU33FUFyOj5uJiIiIiIhqDEefmRw8eDBGjBiBbt26YeDAgfjggw9w4sQJvPnmm+XeZnZ2NpKTk03Tsdx1UayaiIiIiIhqLetdLRWZqjnHA3iMGjRogAsuuAB79+4t9zaysrKQn59vmlLSM6NYJRERERER1VZMcw2KqcHk6dOnsW/fPjRv3rzc2/B4PEhKSjJNvMWViIiIiIgouhwdZf3xj3/E0KFD0bp1axw6dAhTp06Fy+XCLbfcAgA4cuQIjhw5ol+p3LFjB+rXr4+0tDQ0atTIydKJKMZZQ070UBfrckvwS5lCeWRw3hhoYwrlEYBiCOORLktIjzGIxxCAo+1OuAz7VbV9Wua1YB41TCCPXcCNoV59XguVUQ11qYGAnsBr43zIpo2BPIFzKWQg3AehdethPMJQt0YG1wnZdqC/tNajBPvCUqNps8KQwyMstRhPiQw2mT4/xr7C0t/mc2UN44n1IJ5wvymP1XqJiKqcDPMXZS3k6GDyhx9+wC233IKffvoJTZs2xRVXXIHNmzejadOmAIB58+Zh+vTpev+rrroKALBo0SKMHTvWiZKJiIiIiKgWqwm3p0aLo4PJpUuXlrh82rRpmDZtWtUUQ0RERERERBHjw4RERERERESR4pVJHQeTREREREREEeJtrkExleZKRERERERE1QOvTBJRrWCXRFnhhFdrumtguZBSTwz1bzf4Qk91tSa7uoLpono74P+Vn9ZfsdRjTHZVDd9ZFUh41edVY22GYwyT8CoNtQstWVYYlmnps1p92nrG0yeC6wlFO282ibTaCqrxfJprC6ndWKMSSGbV4lkNNZrmLZs0pboK8/alsZOWPGs8T9ZUV0uiq36+jNsJ9/nTujiYlMrfsBMRlRHTXHUcTBIREREREUWIv4QLcvQ212nTpkEIYZo6deoU0k9KicGDB0MIgRUrVlR9oURERERERGTi+JXJCy+8EOvWrdNfu92hJc2ZMwdCOHgPEBEREREREcA0VwPHB5Nutxupqalhl+fl5eHZZ5/Ftm3b0Lx58yqsjIiIiIiIyIy3uQY5Ppjcs2cPWrRogYSEBGRkZCA7OxtpaWkAgDNnzuDWW2/F3LlzSxxwEhGVR8ShPIY2PWDFGJ4ihTnYBuZQHqFqjcHQGSkEUGwItrEE8xhDd6zzxkki0N8QFqOF7pjm1dD2kEAeWNqM7YH9CRjqhf+ndgxCBM+ptJ5Dbd4VCL2RljqMdVkDg6znVMKUqqOF8QjDvN250ifz4fq3bahdz9cx1KcH8RjDekq4YSYkXMd4Hkvpb1SZwTz8nyEiIqooR5+Z7NWrF1599VWsXr0aOTk52L9/P6688kqcOnUKADB58mT07t0bw4YNc7JMIiIiIiIiP1VGb6rmHL0yOXjwYH2+W7du6NWrF1q3bo0333wTTZs2xUcffYQvv/yyTNv0er3wer2mNtVXDMXl+EVYIiIiIiKq7qr/GDBqHL0yadWgQQNccMEF2Lt3Lz766CPs27cPDRo0gNvt1oN5hg8fjr59+4bdRnZ2NpKTk03Tsdx1YfsTERERERFR2cXUYPL06dPYt28fmjdvjocffhjbt29HXl6ePgHA7NmzsWjRorDbyMrKQn5+vmlKSc+soiMgIiIiIqKaTMjoTdWdo/d+/vGPf8TQoUPRunVrHDp0CFOnToXL5cItt9yCpk2b2obupKWloW3btmG36fF44PF4TG28xZWIiIiIiKJC1oBRYJQ4Osr64YcfcMstt+Cnn35C06ZNccUVV2Dz5s1o2rSpk2URUS1mTc+0TXcFTM9LCBl4aYgIlSgl4VX6V9I3J4JRonYJriWlvFrTXQHDv3N2ya7avM/cHqzTfCx6GwznQoWeTqsnuCrBVFSh1WNJT9VrFMEaremuevKsluyqJ6oKlJbsakzd1eownSPtfhxLsqvpfwu0PlqCq7bQkDJrXKm03yzrKbCmExHcf2nrlqQy016d2A8REVUvjg4mly5dWqb+kr8FICIiIiIiB9WE21Ojhfd/EhERERERRYqDSV1MBfAQERERERFR9cArk0RERERERBESfPROx8EkEVEJwgWPCLs+FQjlMQbKCFXbrjCF2EAJhu/oATxKMGAmbCiPYqglTNCNPq+aQ3qM/c11B0+ECJwDoZr3rwfgKIHzpdVoPFXG0CAtPEcx7CNMeBDUYHpOqWE8iqEWY5CQ1o5gX+Oh6uE91v9nsJwbrU9Jz9Boy0yfpzKG8ZS0XTvRCM1h8A4RkQ219C61BW9zJSIiIiIiojLjlUkiIiIiIqII8TbXIEevTE6bNg1CCNPUqVMnAMB3330Xskybli1b5mTZRERERERUW8koTpVkxowZ6N27N+rUqYMGDRrY9jlw4ACuu+461KlTBykpKXjggQdQXFxcpv04fmXywgsvxLp16/TXbre/pFatWuHw4cOmvgsWLMDTTz+NwYMHV2mNRERERERE1UVhYSFGjBiBjIwMLFy4MGS5z+fDddddh9TUVHz22Wc4fPgwRo8ejbi4OMycOTPi/Tg+mHS73UhNTQ1pd7lcIe3Lly/HyJEjUa9evaoqj4iIiIiIKKga3OY6ffp0AMCrr75qu/zDDz/E119/jXXr1qFZs2a45JJL8MQTT+Chhx7CtGnTEB8fH9F+HA/g2bNnD1q0aIHzzz8fo0aNwoEDB2z75ebmIi8vD3fccUcVV0hEFEoK8wQgNEHVmLwamLTX0uX/qboEpCIgRXDSCCkhVAnF559EMaAUAa5CwOX1T+5zgDsw7yoMTkqRfxLF8KfOaf/uaft2A2ocoMYDvsCkxgM+j3lS44KTVjMsiaRClf6kVZ9/f0px8KcSqFlrE8X+foovkCJrTUE1nDtVCdTpDtbr0+pxB+pxmc+h8bzpybQ+S23a/o2TMdk2cIj6HUjG99T6Plon4+fBhu0xw7CzKP7/iXFfdvu0fobtJiIiCmX392t5J6/Xi5MnT5omr9db6cewadMmXHTRRWjWrJneNnDgQJw8eRJfffVVxNtxdDDZq1cvvPrqq1i9ejVycnKwf/9+XHnllTh16lRI34ULF6Jz587o3bt3idu0e0NUX9nu/SUiIiIiIqps2dnZSE5ONk3Z2dmVvt8jR46YBpIA9NdHjhyJeDuODiYHDx6MESNGoFu3bhg4cCA++OADnDhxAm+++aap39mzZ7FkyZKIrkravSHHcteVuh4REREREVGppIzalJWVhfz8fNOUlZVlu9uHH344bECpNn3zzTdVeiocf2bSqEGDBrjggguwd+9eU/tbb72FM2fOYPTo0aVuIysrC1OmTDG1XfHQ/KjWSUREREREtZNQo7ctj8cDj8cTUd8//OEPGDt2bIl9zj///Ii2lZqais8//9zUdvToUX1ZpGJqMHn69Gns27cPv/3tb03tCxcuxA033ICmTZuWug27N0RxxdRhEhERERERlUnTpk0jGg9FIiMjAzNmzMCxY8eQkpICAFi7di2SkpLQpUuXiLfj6Cjrj3/8I4YOHYrWrVvj0KFDmDp1KlwuF2655Ra9z969e/HJJ5/ggw8+cLBSIqKSWcNKhIQpqEZfLi19tCZj+IpxY1LrK4NfkiyDm5ZCQMvs0cJxtOAfU2iMCOzCFeyjb0QLj9H3H6hNWoJp1GCbUAN9VEO9Wq2qBIxBQoH9CW1flpAiABBKyGaCp0L4a9OPWfr767UE7hbS6pMQpt8am+oJbEcKwz4D2zedD61e4/uqbUJL50Hg+LWiTe+h4XyECdUxtps+P3b9oxSGIySDdYiIKqwapLkeOHAAP//8Mw4cOACfz4e8vDwAQPv27VGvXj0MGDAAXbp0wW9/+1s89dRTOHLkCP785z9j/PjxEV8pBRweTP7www+45ZZb8NNPP6Fp06a44oorsHnzZtOI+5VXXkHLli0xYMAAByslIiIiIiJCVJO3K8tjjz2GxYsX66+7d+8OAPj444/Rt29fuFwuvP/++7jnnnuQkZGBunXrYsyYMXj88cfLtB8hZTUYWlfQJffNdroEIqplwl2NsrsyqbfbXckyXJm03ZwQwStm5b0yab1qWsYrk0Ka1xdSmr7iRN8fEPbKpKndeICG2vQtWmux1AqYn2cx1WO8ulhaLcb9W1n3Yzhn/n1a5ktR6tXCKF5N5JVJIooFeS9NdrqEcuvf+y9R29baz/4ctW05gQ8TEhERERERRSjcL3hrIw4miYiIiIiIIsXBpM7R75kkIiIiIiKi6olXJomIKoHdc2klJryKYB893dX005KYGvitqJDS9PyeFEJPITU+D2j7LKX23KTda213Lpi2rz+fqD2jaHh+Uk9TlcL0zKD+PCEC/W2e8QxXr90p0OoSCKS42jzfCe35SRlYMeS5TpQp2RUwtBnmpRLcnjENN2rJrnqj/XrleZaSia5ERBUUxe+ZrO44mCQiIiIiIooQn5kMcvw214MHD+K2225D48aNkZiYiIsuugjbtm3Tl0sp8dhjj6F58+ZITExEZmYm9uzZ42DFRERERERE5Ohg8pdffkGfPn0QFxeHVatW4euvv8azzz6Lhg0b6n2eeuopvPDCC5g3bx62bNmCunXrYuDAgTh37pyDlRMRERERUa0kZfSmas7R21yffPJJtGrVCosWLdLb2rZtq89LKTFnzhz8+c9/xrBhwwAAr732Gpo1a4YVK1bg5ptvrvKaiYiIiIioFqsBg8BocfTK5MqVK9GjRw+MGDECKSkp6N69O15++WV9+f79+3HkyBFkZmbqbcnJyejVqxc2bdrkRMlEROUmRegEQA+9MQbhSCUQ7hKYpCvQFvipugSkEpiEfwL8z3EIKSFUCcUnoRRLKEWAUgi4tMkLuM8Bbq//tXGZUggoxYDwBQNt9NpcgOoG1DjAFwf44gE1HvB5gGKP/6c2qXH+SbqDgTp6WIwWfuMDRHFgf4GfSpF5EsWA4gMUQ9APjJsRgKoAqiu4T60+/bU7UIfLUoshuEf4LHUE9qvXFzgf+jnRGN83w3smS5qM770NIUOn8B8qy0RERFSFHB1Mfvvtt8jJyUGHDh2wZs0a3HPPPZg4cSIWL14MADhy5AgAoFmzZqb1mjVrpi8jIiIiIiKqMmoUp2rO0dtcVVVFjx49MHPmTABA9+7dsXPnTsybNw9jxowp1za9Xi+8Xq95P75iKC4G1xIRERERUcUwzTXI0SuTzZs3R5cuXUxtnTt3xoEDBwAAqampAICjR4+a+hw9elRfZpWdnY3k5GTTdCx3XSVUT0REREREVHs5Opjs06cPdu3aZWrbvXs3WrduDcAfxpOamor169fry0+ePIktW7YgIyPDdptZWVnIz883TSnpmbZ9iYiIiIiIyoRprjpH7/2cPHkyevfujZkzZ2LkyJH4/PPPsWDBAixYsAAAIITApEmT8Je//AUdOnRA27Zt8eijj6JFixa48cYbbbfp8Xjg8XhMbbzFlYiIiIiIoqIGDAKjxdFRVs+ePbF8+XJkZWXh8ccfR9u2bTFnzhyMGjVK7/Pggw+ioKAA48aNw4kTJ3DFFVdg9erVSEhIcLByIqLosEv1FOGWG/7tEjLwUhqWGTtLrZ8MPtsRSC7Vk1+NqaKBlFFjMqk+j+A8hKGf1hbYttTSUSWgqoGg00DAgJbEqqehaimlxnnt2FT/toVdXcJft6kO4yEH2oUSPD/aPrX9S21/avBcGs8rfME3QSjBWkxJsIrh/TGm8mpthmPSzgsQ2KcwvH/G/ZbAbrltIqw1abaE7ZWUKEtERBQJIWXNH1pfct9sp0sgIopY2IGFddBjbLN+hYRhMBmyGaGNlCo2mLTWpg0OtYFaxIPJkBNQQl3Gr1GxDCYtmwjWZRlMGmv0n6PQ9UP2D8vx2w0m7c4HgscL7Xwg9NhLG0zaKXUwWMpyDiaJyEl5L012uoRyG3TRn6K2rdU7ZkRtW07g/Z9ERERERESRqgFf6REtjgbwEBERERERUfXEK5NEREREREQR4vdMBnEwSUQUY6zPsunP0wlLHxlssw3kMW7M9HyeIZBH66YK/7ywPJcY7llK63IEw3iMdVifk1SM8z6Yn7G0e/5TDQTuwGbfgf0LQy0Ibl4/Z9IVCNCxhv4E9ill8FlG/dlKbQPGMB7ttBmeH9Xv7zE+52l8pjPwHhnXhaEGbbslhvHYvP92/UKegQyznnF9PjdJRFQOHEzqeJsrERERERERlRmvTBIREREREUVK5ZVJjeNXJg8ePIjbbrsNjRs3RmJiIi666CJs27ZNXz5t2jR06tQJdevWRcOGDZGZmYktW7Y4WDEREREREdVaUkZvquYcHUz+8ssv6NOnD+Li4rBq1Sp8/fXXePbZZ9GwYUO9zwUXXICXXnoJO3bswKeffoo2bdpgwIAB+PHHHx2snIiIiIiIqHZz9DbXJ598Eq1atcKiRYv0trZt25r63HrrrabXzz33HBYuXIjt27fj2muvrZI6iYiIiIiIANSIK4rR4uiVyZUrV6JHjx4YMWIEUlJS0L17d7z88sth+xcWFmLBggVITk7GxRdfXIWVEhE5R4rQCYCeGmpMVdUTVwOTdAXaXMFlUhH+SQQnIaV/UiUUn4TwAaIYUIoAVyGgFPp/uryBydhW6O+nFMO/ns9cu+oOTHGAL94/qfFAsQfwJQA+T3BS4wDpDtYLQ/qpXlOxobaiwL4Dkyj2p8Rqiax6Wq1Wi3YuAvWYJneg3bB/U9qp6p+E6t+HUmw+ZuELJMQaEmu190l/76zvi2EypsCa9ms6CJtJ62ZNooXNehYhfYmIqHS8zVXn6GDy22+/RU5ODjp06IA1a9bgnnvuwcSJE7F48WJTv/fffx/16tVDQkICZs+ejbVr16JJkya22/R6vTh58qRpUn3FVXE4REREREREtYajg0lVVXHppZdi5syZ6N69O8aNG4c777wT8+bNM/Xr168f8vLy8Nlnn2HQoEEYOXIkjh07ZrvN7OxsJCcnm6Zjueuq4nCIiIiIiKimU2X0pmrO0cFk8+bN0aVLF1Nb586dceDAAVNb3bp10b59e1x++eVYuHAh3G43Fi5caLvNrKws5Ofnm6aU9MxKOwYiIiIiIqLayNEAnj59+mDXrl2mtt27d6N169YlrqeqKrxer+0yj8cDj8djalNc/DpNIiIiIiKKAqk6XUHMcHSUNXnyZPTu3RszZ87EyJEj8fnnn2PBggVYsGABAKCgoAAzZszADTfcgObNm+P48eOYO3cuDh48iBEjRjhZOhGRo0wBLQHCbrk0LxAykMMiDcuNK5gCXaT+WgCQqvBvSguIEeZ51WVoUwKraqEzwrAbEVjmCgbAGENrFOO8z/9TSPgDcALHILR/xwMhO1IAwhhgowTnhaVO/TC15Qj0R3A/Qhr2a/ipU/3rC59/+9p+jOdF35flHiDtVItAuwxsW8K8PykM+9aCiOxY24U5WMf0WbF8HrRjtvs8ERFRGDUgOCdaHB1M9uzZE8uXL0dWVhYef/xxtG3bFnPmzMGoUaMAAC6XC9988w0WL16M48ePo3HjxujZsyf+9a9/4cILL3SydCIiIiIiolrN8fs/r7/+elx//fW2yxISEvDOO+9UcUVERERERERh1IDgnGhxfDBJRERERERUbfA2V52jaa5ERERERERUPfHKJBERERERUaR4ZVLHwSQRUQ1hTeQUNsmdWkKo1q6lfpr+XYwg4dWfoOpfLrRtFcOc5qrNuwzzdj/h76Pv3pBoqqqBTarQU1aFak5/FZa0VS3d1ZSmakl5NSWvGs+dAKAEz4e+n8C8Kd1VOzeGxFVjsqxtoq7xmA1tpvfBeCyqIdXV+v6EY1xul+wqg8v0bkx0JSKKHAeTOt7mSkRERERERGXm+GDy4MGDuO2229C4cWMkJibioosuwrZt20x9/vvf/+KGG25AcnIy6tati549e+LAgQMOVUxERERERLWWqkZvquYcvc31l19+QZ8+fdCvXz+sWrUKTZs2xZ49e9CwYUO9z759+3DFFVfgjjvuwPTp05GUlISvvvoKCQkJDlZORERERES1Em9z1Tk6mHzyySfRqlUrLFq0SG9r27atqc+f/vQnDBkyBE899ZTe1q5duyqrkYiIiIiIiEI5epvrypUr0aNHD4wYMQIpKSno3r07Xn75ZX25qqr4v//7P1xwwQUYOHAgUlJS0KtXL6xYscK5oomIqgkpQicAekiOHpRjmRCYQtoFIBXhn7TwHSkhVG0ChM8fxKMUBaZCwOU1TIWBtkL/cpfWzxcMuNGCclQXIN2A6gZ8cYAaD/jigWIP4AtMWpvqDgT9BIJ/jEE9SnGwJn1/hkkUA4ohXMd4jmSgBu2nGheY3IZ9BvarMe5bqIFjC0zQzpEWJiTNATl6AFC4yfDemd9sy2TXDsv+LH1DagnHbv9ERLWJlNGbqjlHB5PffvstcnJy0KFDB6xZswb33HMPJk6ciMWLFwMAjh07htOnT2PWrFkYNGgQPvzwQ/zqV7/CTTfdhI0bNzpZOhERERER1UaqjN5UzTl6m6uqqujRowdmzpwJAOjevTt27tyJefPmYcyYMVADD6UOGzYMkydPBgBccskl+OyzzzBv3jxcffXVIdv0er3wer3m/fiKobj4LShERERERETR4uiVyebNm6NLly6mts6dO+tJrU2aNIHb7S6xj1V2djaSk5NN07HcdZVzAEREREREVKtIqUZtqu4cHUz26dMHu3btMrXt3r0brVu3BgDEx8ejZ8+eJfaxysrKQn5+vmlKSc+snAMgIiIiIqLahbe56hy993Py5Mno3bs3Zs6ciZEjR+Lzzz/HggULsGDBAr3PAw88gN/85je46qqr0K9fP6xevRrvvfceNmzYYLtNj8cDj8djauMtrkRERERERNHl6CirZ8+eWL58ObKysvD444+jbdu2mDNnDkaNGqX3+dWvfoV58+YhOzsbEydORMeOHfH222/jiiuucLByIqLqSdqkcAoJUzqnFPCnfApzHwkE0z+lsTNMqaAA/OmugD/1VQ1sSkuUFeZ5U1psmD76fIBPSydV/fsWCKSlagmpanAequE4fQjUBQhDuq0xKVVPZi1h/1IJnBOtr7Yva1qqcZnw12hM1Q1J2IXhNczbD0lrNexTX9e6b+P2DEm1Wo3S0q6dJ7vPSfDgLfVW/1+sExGVTQ1IYY0WIWXNPxuX3Dfb6RKIiGKW7ddBWAeHNgMk23a9v79BCsOopCKDyTD1lXkwqa1u3G4kg0mb/YswA7tw50QfIEYymLQcZ7jtm2qw26dl39Z5GUl7adur8f8XQUSVIe+lyU6XUG6Dkn8XtW2tzn8lattygqPPTBIREREREVH1xIcJiYiIiIiIIlXzb+yMGAeTREREREREEZJq9f9Kj2jhba5ERLWcFOYJQPAZPuNzjcbnGwOT9lq6LM8+KsL8vCQCoTyq/9lGUQwoxYBSBCiFgMtrmAr9k1IY6FPs7y98wWch9bpcgHQDqhtQ4wA1HvDFAz5PcF6NDyyLC9apB9IEnqk01WOc7PYtDefEZZm0Woxt2nnRzoPx+Uc1OEGbrEE7gffDeP7tJtN7FvIm20zGWlBCu+2HxlBfuH0SEZEjvvvuO9xxxx1o27YtEhMT0a5dO0ydOhWFhYWmftu3b8eVV16JhIQEtGrVCk899VSZ98Urk0RERERERJGK8dtcv/nmG6iqivnz56N9+/bYuXMn7rzzThQUFOCZZ54BAJw8eRIDBgxAZmYm5s2bhx07duB3v/sdGjRogHHjxkW8Lw4miYiIiIiIIqXG9mBy0KBBGDRokP76/PPPx65du5CTk6MPJv/xj3+gsLAQr7zyCuLj43HhhRciLy8Pzz33XJkGk47f5nrw4EHcdtttaNy4MRITE3HRRRdh27Zt+vKjR49i7NixaNGiBerUqYNBgwZhz549DlZMRERERERUfeTn56NRo0b6602bNuGqq65CfHy83jZw4EDs2rULv/zyS8TbdXQw+csvv6BPnz6Ii4vDqlWr8PXXX+PZZ59Fw4YNAQBSStx444349ttv8e677+LLL79E69atkZmZiYKCAidLJyIiIiKi2kiqUZu8Xi9Onjxpmrxeb1TL3bt3L1588UXcddddetuRI0fQrFkzUz/t9ZEjRyLetqODySeffBKtWrXCokWLcNlll6Ft27YYMGAA2rVrBwDYs2cPNm/ejJycHPTs2RMdO3ZETk4Ozp49i3/+859Olk5ERERERLWQVGXUpuzsbCQnJ5um7Oxs2/0+/PDDEEKUOH3zzTemdQ4ePIhBgwZhxIgRuPPOO6N+Lhx9ZnLlypUYOHAgRowYgY0bN+K8887Dvffeqx+oNipPSEjQ11EUBR6PB59++il+//vfO1I3EVFNJm2SOYWWoGrtIy19tCZLMqh/HWFOKLUsBwBhSZTV02EN83qSKqD/SlRfrm1aAnAFU1MhA6v6AvMymM4qrAmnPnM9xv0Lm7r0Wo3nTQZCXw3bldaEVMu8fo6lZVvC/NMYoipFcF0ZaAxJYS3tNUxvbXCxZVt2nwu7bRERUeSysrIwZcoUU5vH47Ht+4c//AFjx44tcXvnn3++Pn/o0CH069cPvXv3xoIFC0z9UlNTcfToUVOb9jo1NTXS8p0dTH777bfIycnBlClT8Mgjj2Dr1q2YOHEi4uPjMWbMGHTq1AlpaWnIysrC/PnzUbduXcyePRs//PADDh8+bLtNr9cbcmlY9RVDcTFriIiIiIiIKkhG73smPR5P2MGjVdOmTdG0adOI+h48eBD9+vVDeno6Fi1aBEUx35CakZGBP/3pTygqKkJcXBwAYO3atejYsaP+yGEkHL3NVVVVXHrppZg5cya6d++OcePG4c4778S8efMAAHFxcXjnnXewe/duNGrUCHXq1MHHH3+MwYMHh5wQjd2l4mO566rysIiIiIiIqIaK5m2uleHgwYPo27cv0tLS8Mwzz+DHH3/EkSNHTM9C3nrrrYiPj8cdd9yBr776Cm+88Qaef/75kKukpXF0MNm8eXN06dLF1Na5c2ccOHBAf52eno68vDycOHEChw8fxurVq/HTTz+ZLuEaZWVlIT8/3zSlpGdW6nEQERERERHFgrVr12Lv3r1Yv349WrZsiebNm+uTJjk5GR9++CH279+P9PR0/OEPf8Bjjz1Wpq8FARy+zbVPnz7YtWuXqW337t1o3bp1SN/k5GQA/lCebdu24YknnrDdpt2lYt7iSkREREREURHF21wrw9ixY0t9thIAunXrhn/9618V25l00Oeffy7dbrecMWOG3LNnj/zHP/4h69SpI19//XW9z5tvvik//vhjuW/fPrlixQrZunVredNNN0W8j3PnzsmpU6fKc+fOlbm+8q7L9WJjPSf2yfViZ59cL3b2yfWiu54T++R6sbNPrhc7++R60V2PqidHB5NSSvnee+/Jrl27So/HIzt16iQXLFhgWv7888/Lli1byri4OJmWlib//Oc/S6/XG/H28/PzJQCZn59f5trKuy7Xi431nNgn14udfXK92Nkn14vuek7sk+vFzj65Xuzsk+tFdz2qnhy///P666/H9ddfH3b5xIkTMXHixCqsiIiIiIiIiErjaAAPERERERERVU8cTBIREREREVGZ1fjBpMfjwdSpUyP+MtBorMv1YmM9J/bJ9WJnn1wvdvbJ9aK7nhP75Hqxs0+uFzv75HrRXY+qJyGlrJxvyyQiIiIiIqIaq8ZfmSQiIiIiIqLo42CSiIiIiIiIyoyDSSIiIiIiIiozDiaJiIiIiIiozDiYJCIiIiIiojJzO11AtB0/fhyvvPIKNm3ahCNHjgAAUlNT0bt3b4wdOxZNmzZ1uEKqaQoKCpCbm4vDhw9DURScf/75uPTSSyGECLuOz+fD//73P7Rp0waKosDr9eLdd9+Fqqro168fmjVrFrLO8ePH0aRJk8o8lFIVFRXhu+++Q0pKCpKTkx2thUoXrc9McXExPv74Yxw4cACtW7dGv3794HK5Il6/qKgIcXFx5dr37bffjhkzZqBFixblWp/KLjc3F+np6U6XQVRmFfk3qqb9XXPkyBFs2bLF9P/CvXr1QmpqqsOVUU1To74aZOvWrRg4cCDq1KmDzMxM/X/Ijx49ivXr1+PMmTNYs2YNevTo4XClzpNSYsOGDdi7dy+aN2+OgQMHlvt/9krj8/lM/+O5ZcsWeL1eZGRkVNo+q4Kqqnj44Ycxd+5cnDt3DoD/vAJAWloaXnzxRQwdOjRkve3bt2PQoEE4evQounTpgg8++ABDhgzB/v37IYRAXFwc1qxZg549e5rWc7lc6Nu3L+644w4MHz683N/fdOLECSxbtkwfGIwYMcL2H92nnnoKEyZMQGJiInw+Hx566CG8+OKLKC4uhqIo+O1vf4v58+eX6T2cPn06xo8fX+YBztGjR+H1epGWllam9SpbVf5jfezYMezcuRPp6elITk7G0aNHsXjxYqiqiuuuuw4XXXRRyDrl/cxMmDABAwcOxPXXX48ffvgB/fv3x549e9CkSRMcP34cXbp0wapVq3DeeeeZ1nvzzTdx4403Ij4+HgDw0ksv4emnn8YPP/yAhg0bYuLEiXjsscds97l9+3bb9h49euDNN9/E+eefDwDo1q2bbb9Y+XumuLgYhw4dKvGzWlxcjK+++sr0uenSpUul1Fmez83/t3fmUVEcaxuvnhn2fV9kVUEgSiRcQdAIGlSQqBh3RYPRuARUvImJGpe4BPWaRa9GTVRwSYwaNRo07mgUN0QjAYOKICIqhAQ3QIHA8/3Bnf4YphuYGhyQ1O+cPofp4p3qrql+q96q6nrkg2LvvPMOiYqKou5cN9bXCHH79m2+ferYsaNK+fbq1YskJCQQZ2dnla+5uXxNQ/WG1tfQDHbSsGfPHhIWFkb09fXV+h5V6gxtG6WOrwFAcnNziaOjI5HJZKSiooL8+OOPpLy8nPTr16/etq26uppIJMoLAqurq0l+fr7KdU7+2/bo0UPp/KRJk8iOHTsIx3HE3NycEEJIcXExAUBGjhxJvv76a9HfKikpiSQnJyvUmQEDBhA3NzfRa0lLSyOXL18mwcHBpG3btuTatWvkq6++ItXV1WTQoEGkb9++Kt0b4yUDrQh/f39MnDgR1dXVSmnV1dWYOHEiunbtKmpfVlaGTZs2Ydy4cQgNDUW/fv0QExOD48eP15vv1atXsWnTJmRnZwMAMjIyMGXKFEyaNAmHDx8WtNm9ezdKS0tVuLsanj9/joqKCv7zrVu3MGfOHERGRuLjjz9GTk6OoF1YWBgePXoEAPjrr7/g7+8PjuNgZWUFiUQCDw8P/PHHHypdS8+ePZGbmyuafv/+fXTr1g1SqRQ9evRAcXExwsPDwXEcOI6Du7s77t+/r2RXUVGBmTNnol27dujSpQs2bdqkkF5QUACJRKLStQJASUkJfvnlF9H0ixcvYuXKlZg1axZmzZqFlStX4uLFi6L//9FHH8HT0xOJiYk4duwYevTogeXLlyMzMxPz5s2Djo4Ojhw5omTXt29fDBkyBOnp6Zg+fTo8PT0xdOhQVFRUoLKyEpGRkQgJCVGy4zgOoaGh0NbWhpmZGWJiYvDrr782eN+DBg3CDz/8AKCmblpaWsLKygr+/v6wsbGBra0tfv/9dyU7iUSCwsJCAMCKFStgZmaG+Ph4XLt2Dd9++y2sra2xfPlywTwfP36sdDx69AhaWlq4ePEif64uT548wejRo+Hk5ISxY8eivLwc7733HjiOg0QiQY8ePQTtAOCrr77CG2+8gaFDhyo9s0VFRXB1dW2wrOoiVmdKSkowevRoSKVSyGQyWFtbw9raGjKZDFKpFJGRkfU+39nZ2diyZQuWLVuG//znP9i9e7fofQHAyZMnYWBgAI7jYGtri6tXr8LBwQFubm7o0KGDaF2jrTM2NjZIT08HAAwbNgwhISEoKioCUOM/3nzzTQwZMkTJrnadiY+Ph66uLubPn4+DBw9iyZIlMDAwwIYNGwTzlP/Gcv9Q+5CfF3ruaf0M8GLqzNWrV0X9U1VVFT7++GOYmpoq3aOpqSnmzp2Lqqoq0e/WZL159913+TodHh6OH3/8EX///Xe9907ra6ZMmYKnT58CqGmHBw8erPCb9+zZk0+vzf79+wUPqVSKNWvW8J+FaGm+Rqze0PqaqqoqzJw5E/r6+pBIJArPlrOzM3766SfRayksLMSJEyf4PkNBQQGWL1+OpUuX4rfffhO04TgOxsbGePfdd3HhwoVG3zdtnQHo2yhaX3P9+nU4OztDIpGgffv2yMnJga+vLwwMDKCvrw9LS0vcvHlTye7x48cYOnQodHV1YW1tjXnz5ik8S7R9GrE6M378eLi5ueHw4cMK+fz99984cuQI3N3dMWHCBCW7wsJC+Pn5QSKRQCaTQSKRwNfXF7a2tpBKpZg5c6bgdezZswdSqRQWFhYwNDTEsWPHYGpqipCQEPTt2xdSqRTfffedyvfHeHloVcGkrq4uMjMzRdMzMzOhq6srmJaVlQVnZ2dYW1vD0dERHMchPDwc/v7+kEqlGDp0KCorK5XsaB8iWscbFBTEO97k5GTo6OjA29sbw4cPh4+PD/T19XHu3DnB/OROd8qUKfDy8uIDz7t378LX1xeTJ08WzJO2wR4zZgwCAwPx008/Yfjw4QgMDMTrr7+O/Px83LlzB926dUN0dLSS3YIFC2BjY4MVK1bg448/homJCSZOnMinFxQUgOO4RpeZHDHHW1hYiO7du/ONrJ+fH/z8/ODs7AyO49C9e3e+7GpjZ2eH06dP85/z8/NhaGiI58+fAwAWLVqEgIAAJTszMzO+cSwrK4NUKlUIWjMyMmBhYaFkJ/8Ni4qK8Nlnn8HLywsSiQSvvfYa1q5dK9rxMTMz45+LsLAwjBo1CuXl5QBqAvfx48ejT58+ovkBgI+PD77++muF9G+//RavvPKKYJ7yzkvdo6HGOiYmBh4eHvjvf/+L4OBgDBw4EB07dkRycjJ++eUXeHl5Yc6cOUp2q1atgr6+PqKjoxEZGQltbW3ExcXx6S2lsS4pKcGQIUMUOi7yhtrQ0BBr1qwRvI7u3bsjOjoaT58+xYoVK9CmTRuFZ+eDDz5AYGCgkh1tndHV1eX9g4ODg9KgSnp6OiwtLUXzAwA/Pz/85z//UUhfu3YtfHx8BPN89dVXER4ejszMTOTm5iI3Nxe3b9+GTCbDsWPH+HN1ofUzmq4zADBz5kxYWVlh/fr1uH37NsrKylBWVobbt2/j66+/hrW1NT788EMlu+aqN5WVldi9ezf69esHqVQKGxsbfPjhh7hx44ZgfrS+pnZQMHv2bDg4OCApKQmlpaVITk5Gu3btMGvWLMHrFAsKapeVEK3d19AOdqozALFo0SL4+PiA4zi88sor+PLLL/Hnn3/We9+0dUaeJ00bRetrBg4ciAEDBuC3335DbGwsPD09MXDgQFRUVOD58+fo378/IiMjleymTZsGd3d3/PDDD9iwYQOcnZ0RHh7O32dT92lMTU1x9uxZUbvk5GSYmpoqnR8+fDgiIiLw+PFjPH/+HDExMRg7diwA4MSJE7CwsMDKlSuV7F577TUsWbIEAPD999/D1NQUixYt4tM/++wzdO7cWeX7Y7w8tKpg0sXFBVu2bBFN37JlC5ydnQXTwsLCMGnSJH5Wc9myZQgLCwMA3Lx5Ey4uLliwYIGSHe1DROt4jY2N+ZGvoKAgzJgxQyF97ty56Natm2B+cqfboUMHpeDv+PHjoqOptA22nZ0dzp8/D6BmNoPjOIVR3BMnTqBt27ZKdu3bt0diYiL/OSsrC+3bt0dUVBSqq6ubvLEePHgwAgICcP36daW069evIzAwUHAWxsjIiJ+NBmpGgmUyGR48eAAAuHbtGvT19ZXsTE1N+d+woqICUqkUly9f5tMzMzNhZmamZFf7N5Rz7tw5vPPOOzAyMoK+vj7GjBmjZKenp4dbt24BqPlNrly5opB+48YNmJiYCOYnn622sLDgZ6rk5OTkCN4fALRp0wbh4eFISkrCqVOncOrUKZw8eRJSqRQJCQn8ubo4OjoiKSkJAHDv3j1wHKdQFw4cOIAOHToo2Xl5eSkM2pw9exZWVlaYN28egKbv4NE21hMnTkS3bt2Qnp6OrKwsDBkyBB9++CFKS0uxadMm6OvrCw4+GRsb879hZWUlZDKZwgzjzZs3RX9Dmjrj7e2NHTt2AAA8PT1x7Ngxpe8wNzcXzE9eZywtLXH16lWF9Fu3bsHIyEjJDgDKy8sxffp0eHl5KdRRmUyGa9euCdoA9H6Gts74+PjUe3h4eIjWNRsbG9HVKgBw+PBhWFtbK51vCfUmPz8fixYtQtu2bSGRSPD6668r2anja+T5dezYEdu3b1dI379/P9zd3ZXsQkNDER4ernStDdUZQPO+hrbe0Poa2sFOdQcgACA1NRVTpkyBqakpdHR0MHToUBw9elTw+mnrjDxPmjaK1tdYWVnxz09JSQk4jsOZM2f49LNnz8LJyUnJzsnJCSdPnuQ/FxUVwc/PD3369MHz589F64yZmVm9h7GxsaCdsbExLl26JHofKSkpMDY2FrTLyMjgP5eUlEBLS4sfdNy2bZvgM2FgYIDbt28DqFkFqKWlpTCDnZ2dDUNDQ9HrYbz8tKpgcs2aNdDR0cG0adOwf/9+XLhwARcuXMD+/fsxbdo06Onp4auvvhK01dfXV1ieUF5eDi0tLT6427dvH1xcXJTsaB8iWsdrYGDAj+LZ2NgIdtbE8pM7XWtrawWHAQC5ubnQ0dERzJO2wdbV1UVeXp7CtWdlZfGf79y5Az09PSU7PT09vkzl5Ofnw93dHaNHj8a9e/ea1PEaGhoqNWC1SU1NFSzTwMBAfiAB+P/BBDnp6emCQeEbb7yB8ePHIz8/HwsXLkT79u0xbtw4Pv29994T7KjVHr2vS0lJCTZu3CjYyPv7++Obb74BUNOh+fHHHxXSjx49CltbWyU7juPw6aefYtWqVbCzs1Na7pmWliZ4f0BNpz4iIgI9e/ZEfn4+f76hOqOjo6NQZ/T19RVmQXJzcwU7B0J1Jj09HTY2Npg1a1aLaawtLS2RmprKfy4uLoauri6/TG3NmjWCg0+Wlpb8M1taWgqJRMIHUEDNbyE0U0hbZxISEuDg4ICTJ09i69at8PT0xPHjx3Hv3j0kJSWhU6dOgrMhHMdh69at2L9/PxwcHJRWSWRkZAiWS21+/vlnODg4IC4ujh+g0ZSfaUyd0dHRwdtvv41PPvlE8Jg0aZJoMKmvry+6TBCo+R0NDAyUzrekegPUDD6OGjVK6bw6vqb2IIRQ+yT0GwLAF198AUdHR4VAsDHBpKZ9DW29ofU1tIOdTTkA8ezZM2zduhXBwcGQSCSCfSjaOiPPk7aNAlT3NXp6erhz5w7/2dDQkC8rAMjLyxPsR+np6Sm9gvTkyRMEBASgV69eyMnJEfzt9fX18f7772Pz5s2Cx8KFCwXtRo0aBR8fH8F+zZUrV+Dr64vRo0crpVlZWSncf1lZGSQSCf766y8ANf1ZofuztbXl/VNxcTE4jlMInlNSUkR/Q0broFUFkwCwY8cO+Pv7QyaT8bNmMpkM/v7+2Llzp6idvb29wuzQw4cPwXEcnjx5AqBmhKspHyJax9urVy9+6VhgYKDSTOzu3bsFR8Y4jkO/fv0waNAgmJmZKTS8AHDhwgXY2Ngo2cmhabCdnJwUlsd99NFHvFMCamZ9hDoyrq6ugu+p3rt3D+7u7ujdu3eTOl4LCwvBWTI5J0+eFFx2evz4cejo6MDPzw89evSATCbDl19+yaevWLECvXr1UrJLSUmBhYUFJBIJrKyskJGRAX9/f9ja2sLe3h56enqC9y9UZxrDgQMHYG5ujoSEBCQkJMDFxQUbN27E2bNnER8fD0dHR8F3IZydneHi4sIfte8NAFauXFnvO8hAzbJGe3t7fqahoTpT9zkcOXKkwj1nZGQIdg4cHR0VRuHlXLt2DTY2Nhg7dmyLaKxrz0oDNTPTMpmM70jfvHlTcCn+wIED8eabbyI5ORkTJ07Ev/71L4SHh6OkpASlpaUYMmQIQkNDlexo6wwAfP7559DX14eenh60tbUVlitHREQIvsNWd8VC7cEWANi4caPoMtfaFBQUICwsDK+//voL8zO0dcbX1xdr164VvZ5ff/1VNJjs168f+vTpw79/WpuioiJ+4K4uL0u9ofU1HMdh0qRJmDFjBqytrZUGUy9fviz4G8r59ddf4eXlhYkTJ6K0tLRRwaSmfQ1tvaH1NbSDnS9qACIrK0tw2TBtnQGapo1Sxde0a9dOYSZy7dq1fB8RqKmnQv29Dh064ODBg0rnnz59ioCAALz66quCv31gYKDgslI5YitniouLERoaCo7jYG5uDg8PD3h4eMDc3BwSiQRhYWF4+PChkt2gQYMwePBglJSUoKKiArGxsWjfvj2ffuHCBcH7i4yMhL+/P7799lv0798fffv2RdeuXZGZmYnr168jKChIcHUXo/XQ6oJJORUVFbh//z7u37+vsGGNGG+//TaCgoKQmZmJnJwc/h1EOadOnYKjo6OSHe1DROt4z507BxMTEyxYsACrV6+GpaUl5s6di++++w7z58+Hqamp4AvnUVFRCkfdwHrmzJno27dvvWWkaoM9YMCAeh3hmjVrBIOt8ePH45133hG0yc/PR/v27ZvU8b733ntwdnbG3r17Fd4he/z4Mfbu3QsXFxfExMSIfuecOXPw/vvvi84mC1FSUoLU1FS+Q/7s2TNs3LgRq1evFlxuCwCbN2/mlyipyu7du+Hg4KC0XFlXVxexsbENbqwhxPnz5+ud0ZVz7do1vPrqqxg5cmSDdSY0NBTr168XTU9ISBCcSRs5ciRiY2MFbTIyMviNpuqi6ca6d+/eCkvGVqxYATs7O/7zlStXBDtqN2/ehJubGziOg6enJ/Lz8zFgwADIZDLIZDJYWVkpdIzlqFNngJpBtV27dmHZsmWIi4tDQkKC4AYTjSUxMbHeZZ51WbVqFSIiInD37l3R/6H1M7R1Ztq0aZg+fbpofrdu3UJwcLBgWl5eHjp27AiZTAYfHx+EhoYiNDQUPj4+kMlk8Pb2Vpgtk6PpenPq1CnBPQIaA42vCQoKQnBwMH/U3aRp8eLFCAoKqjffsrIyTJo0CW5ubpBKpQ0Gk5r2NbT1htbX0A52NsfA1Yton4DGt1FA43zNpEmTRDcQA4ClS5eiX79+SuenTp0qGkw9efIE/v7+gnXm008/xSeffCKaX15eHqKiokTTMzMzER8fj7i4OMTFxSE+Pr7efUWys7PRrl07yGQyaGlpwdTUVOEVh4SEBMF3lwsKCtC7d28YGhqib9++ePToEWJiYvhXoNzc3BRmcBmtj1YbTKpKYWEhunbtyld+Z2dnBSf0ww8/4L///a+SXX0PEcdxog+ROo733Llz/LXWPtq0aVNvp6o+SkpK8OzZswb/T9UGuz4uXryo9I4DULO8qL4O571797B582al87SO9/nz55g8eTI/+6KrqwtdXV1IJBJoa2tjypQpanXIWwp///03UlJSsGPHDmzfvh0nT55UGFV9kZSXl2PGjBno3Lmz6I7DQM3yWKGOkZyff/5ZYeZfTlpaGuLj40Xt0tPTBeuGuo3177//rlJjffnyZZibm8PW1hZOTk7Q1tbG999/z6evWbOG3/BAiLrvVB8/fhyJiYkNvmv9T0bMz9DWGXWpqqrCzz//jPnz52PixImYOHEi5s+fj0OHDonu5Pqy1Zum9jXZ2dn1dvJrs3//fsTGxjbYvmra16iLqoEBQDfYSTsAkZubK7iTfmNpzvapqcjJyRHcObq4uFhp6XZtnjx5Uu/qKE1SWlqKo0ePIjExUXAFhSpkZ2cjPT2demCK8fLQqnQmm4KsrCxSXl5OPDw8iEwmo/6enJwcUlZWJvo9d+7cIU5OTmppPRUVFZGcnBxSXV1N7OzsiIuLS73//+DBA7Ju3Tol/aCIiAgSFRWlkgj5Tz/9RE6ePElmz55NrK2tqe+hJfHkyROSmppKCgsLCSE1Ol6+vr7E2Ni4XruUlBRy/vx5Bf2vgIAA4ufnV69dU2lOqaOp1hBMO6rpefDgATlw4AApLy8nvXr1Il5eXi80P6ihi1abxuj+NYXWXF2Ns3bt2pH+/fvXq3H2T0DT9YYQQvLz84mpqSkxNDRUOF9ZWUnOnz+vpG/HaD389ddfxMLCgv984sQJ8uzZMxIQEKBwviWBRupnf/7552TIkCEvpM1siTS2XBgMapo1lH2JyMvLU9gkpTby2Qn58sTMzExMnjwZ48aNw4kTJxr1/SUlJYiPj8ecOXOwevVq0RHjmJgYwfc1GuLSpUswMTGBr68vunfvDqlUijFjxmD48OEwNTVFYGDgCxkF/PPPP5GUlMS/w1RUVIRly5Zh4cKFotpRdamurkZSUhK++eYbJCYmNmrZsiYoLCxEt27dVJYUodWcopVoodUmbQrtKCHtzpSUlHptAIjO0FRXVytsgNAQDWmhqgONvuyLori4WHAna1pdNCHdv9o7N4vp/tFKHgH0GmcNIVY2QE19ysnJ4UfOy8vLsWPHDmzZskWlUfmcnBwcPXpUcAa0NrT6wupQXl6OnTt3IjY2FiNGjMCIESMQGxuLXbt28dIEdbl//z66dOkCiUTCtxW1f29Vd0d2dXWtd3n03bt3Fcr79OnTGDVqFLp3747Ro0cLyl3JSUxMxLx585CcnAygZvfesLAw9O3bV0kqQghV9YXliPmoqqqqJvVRtP67OepafRQUFGDhwoWCabT9BFr9bI7jIJVKERISgh07dog+B0LQ6pHXR1OXDW25NOdzyHi5YcFkIxF7d+rQoUPQ1taGubk5dHV1cejQIVhZWSEkJAS9evWCVCoVDCg9PT1555CXlwcXFxeYmJigS5cuMDc3h7W1tWAjUXsN+rJly/id2RqiW7duCktvtm3bBn9/fwA1na3OnTtj2rRpjfquuog5wosXL8LExAQcx8HMzAypqalwdXWFm5sb2rVrBz09PcHlMrSO8LPPPqMOHGgaCFpJEVrNKVqJFlptUnW0o2i1O/8pgfaJEyewcOFCTJ48Ge+99x4+++wztd5FFPNPtLpo6uj+0UgeAfQaZw0hVjbXr1+Hk5NTkwTatbVTxQJtQL1gWz54Ia+TjRm8yMrKQtu2baGrq4ugoCAMGzYMw4YNQ1BQEHR1ddG+fXuFnW/ljB07Fv7+/rh06RKOHTsGX19f/Otf/0JxcTEAcR+1atUqwUMqlWL27Nn857r4+fnxm7vt27cPEokEAwYMwEcffYRBgwZBS0tLadM4AFi/fj1kMhl8fX1hbGyMbdu2wcjICBMmTMCkSZOgp6cnWmdeFh+ljrY0bV0DNOejaPsJAL1+NsdxSEhIwMCBA6GlpQULCwtMnz69wcEgWj3yhmjqsqEtl+Z4DhmtAxZM/g8xRy8/vvzyS8GHPSAgAB9//DGAmg63mZmZwsY5s2bNQu/evZXsaj/so0ePRmBgIB9APX36FCEhIRg5cqSg3fHjxzF9+nRYWlpCS0sLAwYMQGJiouhIKVCzNXXdbcK1tLRQUFAAoGb7bXt7+8YUlRJijjAkJAQTJkzAkydPsGLFCjg4OCjICYwbNw4RERGC90jbQNCMNtI2ELSSIrSaU7QSLbTapOpoR7FAWzjQpp19e/z4cb3HmTNnBO+PVheNVvePVvIIoNc4oy0bTQfa8vKhCbZpBy9CQkIwcOBAhY3FapfbwIEDBQXh7e3tFWbn5OXRuXNn/PXXX6I+iuM4ODg4KOyw6eLiwr/T7+LiIqhnbGBgwPt4f39/LFu2TCF99erVgrsAe3l58bISSUlJ0NXVVZD/SkhIgKenp5Id8PL4KHW0pWnqGq2PSktLq/fYuXNnk/YT5PdIo59d266wsBDLly/ndT67dOmCb775RnClFq0euabLhrZcmuM5ZLQOWDD5P9Rx9PKRXblOUe0AQ64/JZSf/GFv27atUifr7NmzgrvH1rarqKjAzp07+c6Evb095syZIzjS7OzszC8/AGqWMXEch7KyMgDA7du3BbeWB+gdoZmZGb8Mo6KiAhKJRKGDcvnyZbRp06bee1S1gaAZbaRtIGglRWg1pwA6iRZabVJ1tKNYoC0caNPOvsn9j9gh5p9oddE4jk73j1byCKDXOKMtG00H2nVtVQm2aQcv9PT06vV/v/32m+DvaGBgoDQLVVlZiYiICHh7e+O3334TLNNJkyahc+fOSsvvGnoOTUxMkJaWBqBGB1n+t5xbt26Jaj7Wrt9aWloK93v79m1BO+Dl8VHqaEvT1DV1fZRY30nsOaTtJ8jzpNHPFtsA8fTp03j77bdhYGAgqPdKq0eu6bKhLZfmeA4ZrQMWTP4Pe3t77Nu3TzRdTAOqtsAvUNNA1Z4BzM3NFQzSaj/s9vb2Sg1+fXZCTvDOnTtYsGAB/35UXaZPn46OHTvi0KFDSEpKQs+ePRW2IT98+DDatWsndOvUjrB2hxtQLps7d+40WDa0DYQqo420DQStpAit5pQcVSVaaLVJ1dGOYoG2cKBNO/tmbGyM5cuX49SpU4LHhg0bBMuFVheN4+h0/2gljwB6jTPastF0oC23pQm2aQcv7OzsBJelyfnpp58UJEbkdOrUCbt371Y6Lw8o5cuDhdi7dy8cHR2xevVq/lxjZKTks7l9+/ZVWgq7YcMGuLm5Kdk5ODjwewjcu3cPHMcp+NZTp07BwcFBMM+XxUepoy1NU9dofZSFhQU2bdqE3NxcwePgwYNN2k+Q3yONfnZDfurx48f8TFttaPXINV02tOXSHM8ho3XAgsn/0b9/f8ybN080/erVq4JLV7y9vXHo0CH+c91tkE+fPi06i9apUyf4+PjA0NBQqeH+5ZdfGpy1E6K6ulpwxPHp06cYNmwYZDIZOI5DYGCgQoN45MgR7Nq1S/A7aR2hh4eHwvuiBw4c4GdCgRqHJuRgaB0h7WgjbQNBKylCqzlVG1UkWmi1SdXRjmKBtnCgTTv7FhwcLPgbyRHzT7S6aLS6fw35p/qg1TijLRtNB9oAfbBNO3gxb948mJmZ4YsvvkBaWhoKCgpQUFCAtLQ0fPHFFzA3NxdcdfHhhx8KLn8FagLKAQMG1Psc5ufno1evXggNDcWDBw8afA5///13WFhYYOzYsVi8eDEMDQ0RGRmJTz/9FGPHjoWOjg4SEhKU7KKjo+Hm5oYlS5bAz88Pb7/9Njw8PHDo0CEcPnwYnTp1EtUsfll8FK3/pq1rtD6qT58+WLx4sWh+Ys8hbT8BoNfPpvVTtHrkmi4b2nJpjueQ0TpgweT/OH36tEJQWJeSkhLBUcx169bhwIEDonazZ8/G+PHjlc5/8sknCkfdDRQ++OADjBgxQsnOxcVFLW2wZ8+eiW4OIQatI/zkk08UtNDqMmfOHLz11ltK52kdIe1oI20DUft7k5KSsH37dmzfvh1JSUmC7yjJaUrNqcZqqjWlNmljtKP+yYE2x4nry9LOvn3zzTeCG5fUvh5VtO3kS7rFdNEashPT/cvNzRV8d7ux+nOlpaU4cuSIgsZZQ7a0ZaPpQBug78Sqs0pg2bJlsLOzU1gOzHEc7OzsRIPwysrKen1YZWVlg5udVVdXIy4ujn/XriFN4lu3bmHEiBEwMjLinyMtLS0EBgbixx9/FLQpKSnBu+++i44dO2LixIkoLy/HihUroK2tDY7jEBwcLFretD4qJiZGoz4KoPPftHWN1kft3bsX27ZtE/3e4uJiQX1o2n5CY2isfnZjodUjb2llU1+53Lp1C8OHD9fYc8hoHbBgktEgtI6wIUpLSwUb64YQc4S0jSdtA/Ey8scff+DChQs4d+6cwvKZFwULtJXTaWbfxKAVCdfS0mq0NE9z2qlrqw6qBtpyxAJtgF7YXZ1VAnJycnJw7tw5nDt3TnSX4hdBamoqVq5cye8E2xDV1dUoKCjA/fv3qWWgnj171mipq8ePH+PEiRMt2kfJUcV/09a1pvZR6kLbT3iR3Lx5s8EBVU1QX9ncv38f8+bNQ8+ePeHh4QEvLy+8+eab2Lhxo8Luw2Jo+jlkvNxwANDcWpeMfyZ3794lCxYsIPHx8Rqxa4isrCxSXl5OPDw8iEwma5TNs2fPyOXLl4m5ubmSiPjz58/Jrl27yNixY5vdjhZ18svMzCQXLlwgAQEBxMPDg1y/fp2sWrWKlJeXk8jISNKrV68Xbrdy5UpSUVFRr52coqIikpOTQ6qrq4mdnR1xcXGp9//l+QUGBpIOHTo0+jrLysrI2bNnSXl5OenatSuxtLSsN5/60NbWJmlpacTT01Mw/d///rfg+VWrVpHIyEhefPyLL75oVjt1bWtTWlpKdu3axQt0jxw5slEi65q2U9eWEEJycnJIWVmZSj6rMVy5coWYmZkRV1dXQggh27ZtI+vXryd5eXnE2dmZxMTEkBEjRjRZfs3B1KlTybBhw8jrr7/O7OpQVlZGkpOTSUVFhdo+6kWzZs0akpKSQvr160dGjBhBtm3bRpYuXUqqq6vJW2+9RRYtWiT4bNDa0fLgwQOybt06kpycTB48eEAkEglp27YtiYiIIFFRUUQqlTaZXWpqKgkJCSHt27cnenp65Pz582TUqFGkoqKCHDlyhHh5eZHDhw8TIyOjZr1ORiuiuaNZxstPXl4exo0bp7KdmKTIi7KjvU4xuxs3bvCaZBKJBD169MC9e/f4dLFd/YTsas+ANLUdULOs6syZM4LLqZ49eyYo6q5OfrT6q5q2A2reE4mPj+clAjIzMzF58mSMGzdO1KYp8pNv/NOY/GbMmCF4SCQSjB07lv9cF47j0LlzZ4VlmcHBweA4Dl26dEFwcDB69uzZ7Hbq2NJq9jaVnbOzc6Ps1MmzLiUlJYiPj8ecOXOwZs0a0VcfLl++rPB9W7duRWBgIBwcHNCtWzfRJXTe3t78bNSGDRugp6eHadOmYd26dYiNjYWhoSE2bdrUZPlp2g6g12xu7XYxMTH8Ziqqsnr1aowZM4Yv961bt8LT0xMdOnTA7NmzRWfyaO0WL14MIyMjDB48GLa2tli2bBksLCywZMkSxMXFwcrKCvPnz28yO9prvXTpEkxMTODr64vu3btDKpVizJgxGD58OExNTREYGCg4g0drR6srrunrZLQeWDDJUBux4I5Wu5PWjvY6ae0iIiIQHh6OoqIiZGVlITw8HK6urvwOkWLBlqbtaINC2vwAev1VTdvRBoWazo820Fq6dClcXV2VvrOhTT80baeObe3l7apq9mrSTh1b2gCWNijU09Pj34n08fFRetf8u+++g5eXV5Plp2k7gF6z+Z9gRxOENkdg165dO+zZswdATTstlUrx7bff8ul79+5VeN9TXTvaa6UN7mjtaHXFNX2djNYDCyYZDUIb3NUnKVJbWqSp7DQdvFpbWytsz19dXY3JkyfDyckJ2dnZosGWpu1og0La/AB6/VVN29EGhZrOT50gLSUlBe7u7nj//ff5d19aoh2tbe0AjVazVxN2TZWnKkEobVBoYWHB7x5rbW0tKJkjJH9Cm5+m7QB6zeZ/gh1NEKrpwA4Q1jes/T5rbm5uo3URG2NHe620wR2tHa2uuKavk9F6YMEko0Fogzta7U5aO00Hr0ZGRoIbg0RHR/O6Sy3BjjYopM0PoNdfbQ472uBVk/kB6gVpT58+xdixY+Ht7Y309HRoaWm1SDsaW46j1+zVpJ26edIEobRBYWRkJL8L+dChQzF37lyF9Li4OHTq1KnJ8tO0HUCv2fxPslMlCNV0YAcArq6u/C78N2/ehEQiUZA4O3jwoKCWJq0d7bXSBne0drS64pq+TkbrgQWTjAahDe5otTtp7TQdvHbp0gVbt24VtImOjoapqWmLsKMNCmnzA+j1VzVtRxsUajo/OeoEaUDNbKiNjQ0kEkmLtlPFluPoNXs1aadunjRBKG1QeO/ePbi4uKBHjx7497//DT09PXTv3h3vvvsuevToAW1tbUGtRdr8NG0H0Gs2/1PtGgpCNR3YAcDcuXNhZWWFCRMmwNXVFbNmzYKTkxPWrVuH9evXw9HRUfBdclo72mulDe5o7Wh1xTV9nYzWAwsmGQ1CG9zRanfS2mk6eI2Li0NYWJio3ZQpU1qEHW1QSJsfQK+/qmk72qBQ0/nVRZ0g7e7du9i3bx9KSkpatF1jbWk1ezVtp44tbRBKGxQCwMOHD/HRRx/By8sLurq60NbWhrOzM0aNGoVLly4J2tDmp2k7gF6zubXb0Qahmg7sgJrVHZ9++inefPNNxMXFobq6Gt9//z0cHR1hYWGBqKgoQd9Ba0d7rbTBHa2dHFV1xZvrOhkvPyyYZDQIbXCnaTQdvL4sqBMUtnZog8KWkJ86QRrj5UKdAJYmKFQH2vw0bccQhjYI1XRg1xyoe62qBnfq2tHyslwno+XAdCYZDAaDwWAwGAwGg6Eykua+AAaDwWAwGAwGg8FgvHywYJLBYDAYDAaDwWAwGCrDgkkGg8FgMBgMBoPBYKgMCyYZDAaD0SRERUWRiIiI5r4MBoPBYDAYGkLW3BfAYDAYjJYPx3H1pi9YsICsWrWKtLQ93U6dOkV69uxJHj58SExNTZv7chgMBoPBaFWwYJLBYDAYDfLgwQP+7507d5L58+eTGzdu8OcMDQ2JoaFhc1wag8FgMBiMZoItc2UwGAxGg9ja2vKHiYkJ4ThO4ZyhoaHSMtfg4GAydepUEhsbS8zMzIiNjQ3ZsGEDKS0tJePGjSNGRkakffv25NChQwp5ZWRkkLCwMGJoaEhsbGzImDFjyJ9//il6bXfu3CH9+/cnZmZmxMDAgLzyyivk559/Jrm5uaRnz56EEELMzMwIx3EkKiqKEEJIdXU1Wbp0KXF1dSV6enrk1VdfJbt37+a/89SpU4TjOHLw4EHi7e1NdHV1SdeuXUlGRkbTFSqDwWAwGC85LJhkMBgMxgtjy5YtxNLSkqSkpJCpU6eSKVOmkKFDh5LAwEBy5coV0qdPHzJmzBhSVlZGCCHk0aNHpFevXsTHx4ekpqaSw4cPk8LCQjJs2DDRPKKjo0l5eTk5ffo0SU9PJ8uXLyeGhobE0dGR7NmzhxBCyI0bN8iDBw/IqlWrCCGELF26lGzdupWsX7+eXLt2jcyYMYNERkaSX375ReG7Z86cST7//HNy6dIlYmVlRfr3708qKytfUGkxGAwGg/FywaGlveDCYDAYjBbN5s2bSWxsLHn06JHC+aioKPLo0SOyb98+QkjNzGRVVRU5c+YMIYSQqqoqYmJiQt566y2ydetWQgghBQUFxM7Ojpw/f5507dqVLFmyhJw5c4YcOXKE/978/Hzi6OhIbty4Qdzd3ZWux9vbmwwePJgsWLBAKU3oncny8nJibm5Ojh8/TgICAvj/nTBhAikrKyPbt2/n7Xbs2EGGDx9OCCGkuLiYODg4kM2bN9cb3DIYDAaD8U+BvTPJYDAYjBeGt7c3/7dUKiUWFhakU6dO/DkbGxtCCCF//PEHIYSQtLQ0cvLkScH3L7OzswWDyWnTppEpU6aQo0ePkpCQEDJ48GCFfOty69YtUlZWRnr37q1wvqKigvj4+Cicqx1smpubkw4dOpDMzMz6bpnBYDAYjH8MLJhkMBgMxgtDS0tL4TPHcQrn5LvEVldXE0IIKSkpIf379yfLly9X+i47OzvBPCZMmED69u1LDh48SI4ePUqWLl1KPv/8czJ16lTB/y8pKSGEEHLw4EHSpk0bhTQdHZ1G3hmDwWAwGAwWTDIYDAajxfDaa6+RPXv2EBcXFyKTNb6JcnR0JJMnTyaTJ08ms2fPJhs2bCBTp04l2trahJCaJbZyvLy8iI6ODsnLyyNBQUH1fu+FCxeIk5MTIYSQhw8fkps3bxJPT0+KO2MwGAwGo/XBNuBhMBgMRoshOjqaFBcXk5EjR5JLly6R7OxscuTIETJu3DiFgLA2sbGx5MiRI+T27dvkypUr5OTJk3zA5+zsTDiOIwcOHCBFRUWkpKSEGBkZkQ8++IDMmDGDbNmyhWRnZ5MrV66Q1atXky1btih896JFi8iJEydIRkYGiYqKIpaWlgo71jIYDAaD8U+GBZMMBoPBaDHY29uTs2fPkqqqKtKnTx/SqVMnEhsbS0xNTYlEItxkVVVVkejoaOLp6UlCQ0OJu7s7Wbt2LSGEkDZt2pCFCxeSWbNmERsbGxITE0MIIWTx4sVk3rx5ZOnSpbzdwYMHiaurq8J3L1u2jEyfPp34+vqSgoICkpiYyM92MhgMBoPxT4ft5spgMBgMRh2EdoFlMBgMBoOhCJuZZDAYDAaDwWAwGAyGyrBgksFgMBgMBoPBYDAYKsOWuTIYDAaDwWAwGAwGQ2XYzCSDwWAwGAwGg8FgMFSGBZMMBoPBYDAYDAaDwVAZFkwyGAwGg8FgMBgMBkNlWDDJYDAYDAaDwWAwGAyVYcEkg8FgMBgMBoPBYDBUhgWTDAaDwWAwGAwGg8FQGRZMMhgMBoPBYDAYDAZDZVgwyWAwGAwGg8FgMBgMlWHBJIPBYDAYDAaDwWAwVOb/AGrZcpq6YNIeAAAAAElFTkSuQmCC\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 600x600 with 2 Axes>","image/png":"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jY2VgojS0lJ8+OGHMBgM0Ov10Ov1qKqqAgAMGzYMYWFheOaZZ/D9999jz549eP311xEXFyctpbz00ks4f/48XnvtNZw+fRpr167Fp59+ilmzZjly6rcJarBu3bolAgIChE6nM6lft26dACD27NkjhBDizTffFE2bNhU//fSTSbt58+YJZ2dncfHiRakOgFi4cKH09ZgxY4Sbm5s4d+6cVJefny+8vb3FgAEDpLoFCxYIAOI///mP2TiNRqMQQojc3FwBQKxfv166FhcXJyz9NT1z5owAIJKTk03qR40aJdq0aSP1WZPg4GARHR0tbt26JbRarXjzzTeFEELk5OQIACIjI0OsX79eABBHjx6VXnfz5k2zvjZu3CgAiAMHDkh1CxcuFADEqFGjTNq+8sorAoD4/vvv7zq+fv36iYiICLP6r776SgCosVy+fFlqe/nyZeHj4yOGDh0qysvLxUMPPSRat24tiouLTfr845wqKipE586dxeDBg03qAQh3d3eRm5sr1b3//vsCgNBqtcJgMEj1CQkJAoBJ20ceeUQAECtWrJDqysvLRbdu3YSfn5+oqKgQQlj+ezBkyBDRpUsXUVZWJtUZjUbRp08f0b59+7t8J4VYvny5AGDy97haz549Re/evc3qhw0bJkJDQ+/aLzlecXGxACCuZLcV5efa27RcyW4rAJj9e7HkueeeE8HBwcLNzU20bNlSDBkyRHz55ZdCiLv/m73z38eFCxfEiBEjhKenp2jRooX485//LCorK03e56uvvhLdunUTbm5uom3btib/RhyJGYkGzNnZGRMmTEBmZqZJmjklJQX+/v4YMmQIgNtnmvv374/mzZub/HYbGRmJqqoqHDhwwGL/VVVV+PLLLzFmzBiTteSAgABMnDgRX3/9NQwGAwDg3//+N7p27YrHH3/crB+VSlXruT344IPo1asXPvnkE6nu2rVr2LVrF2JjY63u09nZGePHj8fGjRsB3N5kGRQUhP79+1tsf+daZFlZGX799Vf07t0bAHD8+HGz9nFxcSZfT58+HQBMlhYsuXr1Kpo3b17j9QULFiAtLc2s+Pj4SG20Wi2SkpKQlpaG/v37Izs7G//85z/N1nvvnNP169dRXFyM/v37W5zPkCFD0KZNG+nr6qOSMTEx8Pb2Nqs/f/68yetdXFxMlp3c3Nzw4osvorCwEFlZWRbn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\n"},"metadata":{}}],"execution_count":16},{"cell_type":"code","source":"avg_trace = np.mean(seismograms[:, :, :, :], axis=(0, 3))  # середнє по прикладах і сенсорах\nplt.figure(figsize=(10, 5))\nfor i in range(5):\n    plt.plot(avg_trace[i], label=f'Trace {i}')\nplt.title(\"Середня амплітуда по трасах (усереднено по сенсорах)\")\nplt.xlabel(\"Time step\")\nplt.ylabel(\"Amplitude\")\nplt.legend()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T06:24:36.294954Z","iopub.execute_input":"2025-06-16T06:24:36.29545Z","iopub.status.idle":"2025-06-16T06:24:41.046334Z","shell.execute_reply.started":"2025-06-16T06:24:36.295427Z","shell.execute_reply":"2025-06-16T06:24:41.045356Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1000x500 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAA1kAAAHWCAYAAACFeEMXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACm3klEQVR4nOzdeXhU1fnA8e+9s2dPSMgCYQ+LsoMLuKAWpSKIC6JoBaSCG1pcWqStiPhTS4ti1dYdrdW2oiClWhcU0LKoCIIossWwJ2zZk9nv+f1xk4EhC0mYLMD7eZ55Mvfce899586Seeece46mlFIIIYQQQgghhIgIvbkDEEIIIYQQQohTiSRZQgghhBBCCBFBkmQJIYQQQgghRARJkiWEEEIIIYQQESRJlhBCCCGEEEJEkCRZQgghhBBCCBFBkmQJIYQQQgghRARJkiWEEEIIIYQQESRJlhBCCCGEEEJEkCRZQggRAZqmMXPmzOYOQ5yESktLad26NW+99VZzhyLEKe+FF16gXbt2eL3e5g5FnOIkyRKiEWVnZ3PbbbfRqVMnnE4ncXFxnHfeefz5z3/G7XY3d3hCiBbgz3/+M7Gxsdxwww3NHYoQp7wJEybg8/l48cUXmzsUcYrTlFKquYMQ4lT0wQcfcN111+FwOBg3bhw9e/bE5/OxYsUKFixYwIQJE3jppZeaO0wRIR6PB6vVitVqbe5QxEnE7/fTpk0b7r33XqZPn97c4QhxWpg2bRpvv/02OTk5aJrW3OGIU5QkWUI0gpycHHr37k3btm1ZunQp6enpYeu3b9/OBx98wK9+9atmilAI0RK89957XHPNNWzfvp3OnTs3dzhCnBbWrl3LwIED+eyzz7jkkkuaOxxxipLugkI0gj/+8Y+Ulpby6quvVkmwALp06VIlwXrzzTcZMGAALpeLpKQkbrjhBnbv3h22zUUXXUTPnj1Zu3YtgwcPxuVy0bFjR1544YUqx/B6vTz88MN06dIFh8NBZmYmv/nNb6rth758+XI0Tav2drSZM2eiaRqHDh0KK//mm2/QNI3XX389rPzdd99l4MCBxMbGhtU5Z86cWs9ffn4+DzzwAL169SImJoa4uDguv/xyNmzYUGPc69evD1u3d+9eLBYLmqbx7rvvhsonTJhQ42PVNI3ly5eH1bNjx446nZujr8mqPE/HO87DDz+MzWbj4MGDVc7B5MmTSUhIwOPx1CmWHTt21Pv81aS2uDt06BC2bVlZGffffz+ZmZk4HA66devGnDlzON7vdxdddNFxz9HR8UyZMoW33nqLbt264XQ6GTBgAF988UVYnTt37uTOO++kW7duuFwuWrVqxXXXXRd2bioVFhZy77330qFDBxwOB23btmXcuHGh17bP52PGjBkMGDCA+Ph4oqOjueCCC1i2bFlYPQ8//DC6rvPZZ5+FlU+ePBm73X7cc75o0SI6dOgQlmC99tpraJrGt99+W2X7xx9/HIvFwt69e0NlX331FcOHDycxMZHo6Gh69+7Nn//857D9Nm/ezOjRo0lKSsLpdDJw4EAWL14cts3rr7+Opml88cUX3HbbbbRq1Yq4uDjGjRtHQUFBlVg+/PBDLrjgAqKjo4mNjeWKK67ghx9+qPZxdujQodrn+OjPjMrXd3WfDz179uSiiy4KK6vrZ1zl6+dYI0aMiNjrGY7/mj72dfjXv/6VM888E4fDQUZGBnfddReFhYXHPQ6Yn2+//OUvycjIwOFw0LFjR+644w58Pl9om8LCQqZOnRp6LF26dGH27NkYhhHapr7n3OPxMHPmTLp27YrT6SQ9PZ1rrrmG7Ozsep/DSL6vlVJcfPHFpKSkcODAgVC5z+ejV69edO7cmbKyslD5gAEDSEpK4t///nedzrcQDSH9WoRoBP/5z3/o1KkTgwcPrtP2jz32GA899BBjxozh1ltv5eDBgzz77LNceOGFfPvttyQkJIS2LSgoYPjw4YwZM4axY8cyf/587rjjDux2OxMnTgTAMAyuvPJKVqxYweTJk+nRowcbN25k7ty5bN26lUWLFlUbxz333MNZZ50FwBtvvMGSJUsafA5Wr17NmDFj6NOnD3/4wx+Ij4/n0KFD3Hvvvcfd96effmLRokVcd911dOzYkf379/Piiy8yZMgQNm3aREZGRtj2TqeT1157LeyL5d/+9jfsdntYklLJ4XDwyiuvhJWtWbOGZ555psaYJk+ezAUXXADAwoULee+992rc9pprrqFLly6h5XvvvZcePXowefLkUFmPHj1o27Yts2bN4u233w77Eujz+Xj33Xe59tprcTqdVeofO3Ysw4cPB+C///0v//znP8PW1/f8VefSSy9l3LhxYWVPPvlk2JdtpRRXXnkly5Yt45e//CV9+/bl448/5te//jV79+5l7ty5Ndb/u9/9jltvvRUg9Lo4+hwf6/PPP+ftt9/mnnvuweFw8Ne//pWf//znfP311/Ts2RMwn8NVq1Zxww030LZtW3bs2MHzzz/PRRddxKZNm4iKigLMgSYuuOACfvzxRyZOnEj//v05dOgQixcvZs+ePSQnJ1NcXMwrr7zC2LFjmTRpEiUlJbz66qsMGzaMr7/+mr59+wLw+9//nv/85z/88pe/ZOPGjcTGxvLxxx/z8ssv8+ijj9KnT59az/OqVavo379/WNno0aO56667eOutt+jXr1/YurfeeouLLrqINm3aALBkyRJGjBhBeno6v/rVr0hLS+PHH3/k/fffD/2Q88MPP3DeeefRpk0bHnzwQaKjo5k/fz5XXXUVCxYs4Oqrrw47xpQpU0hISGDmzJls2bKF559/np07d4Z+1AD4+9//zvjx4xk2bBizZ8+mvLyc559/nvPPP59vv/22SvIC0LdvX+6//37AbO2fMWNGreemNg39jKvNibyeK7Vt25YnnngirKy69+jMmTN55JFHGDp0KHfccUfoPK9Zs4aVK1dis9lqPMa+ffs4++yzKSwsZPLkyXTv3p29e/fy7rvvUl5ejt1up7y8nCFDhrB3715uu+022rVrx6pVq5g+fTq5ubk8/fTT9T4/wWCQESNG8Nlnn3HDDTfwq1/9ipKSEpYsWcL3339P586d630OI/W+1jSNefPm0bt3b26//XYWLlwImD+C/PDDDyxfvpzo6OiwY/fv35+VK1fW+zwIUWdKCBFRRUVFClCjRo2q0/Y7duxQFotFPfbYY2HlGzduVFarNax8yJAhClBPPvlkqMzr9aq+ffuq1q1bK5/Pp5RS6u9//7vSdV3973//C6vzhRdeUIBauXJlWPknn3yiAPXuu++Gyu666y517EfEww8/rAB18ODBsPI1a9YoQL322muhsunTpytA5ebmhspycnIUoP70pz/Vek48Ho8KBoNhZTk5OcrhcKhZs2aFypYtW6YANXbsWNWqVSvl9XpD67KystSNN96oAPXOO++EysePH6+io6OrHPOdd95RgFq2bFlY+bZt2xSg/va3v1U5D0cD1MMPP1zt42nfvr0aP358tesGDRqkzjnnnLCyhQsXVhvL1q1bFaDmzJkTKvvTn/6kAJWTkxMqq+v5qwmg7rrrrirlV1xxhWrfvn1oedGi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F03TuPzyyyN2rNWrV4ddf7F7927+/e9/c9lll4VagKt73M8++2yVa0uuvfZaNmzYUO0IkZX7V9Z5dH1fffUVq1evrrLPU089xapVq3jppZd49NFHGTx4MHfccUeVqQ6qM2jQoFAScqzevXvTu3dvXnnlFRYsWMANN9wQ1krUv39/OnbsyNNPP13lC2dl3K1bt+aiiy7ixRdfJDc3t8oxqps+4KWXXgq7Xun5558nEAiEns9hw4YRFxfH448/XuW6purqfOedd0hISKhyjeGJqM9nXF011et56NCh2O12nnnmmbDX16uvvkpRURFXXHFFjfvqus5VV13Ff/7zn2pfN5X1jRkzhtWrV/Pxxx9X2aawsJBAIFDvuK+99loOHTpU5fwcfdz6nsNIvq/BbH0zDINXX32Vl156CavVyi9/+ctqu+SuW7euziMAC9EQ0pIlRCPo3Lkz//jHP7j++uvp0aMH48aNo2fPnvh8PlatWsU777zDhAkTQtv+3//9H9OnT2fHjh1cddVVxMbGkpOTw3vvvcfkyZN54IEHQnVnZGQwe/ZsduzYQdeuXXn77bdZv349L730UujXxZtvvpn58+dz++23s2zZMs477zyCwSCbN29m/vz5fPzxxwwcOJDVq1fz4IMP4na7SUlJ4c033wwdp7J17M033+Tqq6+u8qvm8fzwww/85je/YebMmaFh4etqxIgRzJo1i1tuuYXBgwezceNG3nrrrbBffaszadIkrrvuujpf+1GbTz/9lIceeojvvvuO//znPydcX21sNhs33HADzz33HBaLhbFjx4at/+6773jkkUfYs2cPV1xxRdjzVPkFZdGiRYwdO5bU1NQGn7/6GjlyJBdffDG/+93v2LFjB3369OGTTz7h3//+N1OnTo3o5Lo9e/Zk2LBhYUM9AzzyyCOhbUaMGMHf//534uPjOeOMM1i9ejWffvoprVq1Cqvr17/+Ne+++y7XXXcdEydOZMCAAeTn57N48WJeeOEF+vTpw4gRI1i4cCFXX301V1xxBTk5ObzwwgucccYZlJaWhur68ccfeeihh5gwYQIjR44EzPmm+vbty5133sn8+fNrfVyjRo3i73//O1u3bq22JXvcuHGh9/+xybeu6zz//POMHDmSvn37csstt5Cens7mzZv54YcfQl+w//KXv3D++efTq1cvJk2aRKdOndi/fz+rV69mz549Veby8vl8/OxnP2PMmDFs2bKFv/71r5x//vmhH2Li4uJ4/vnnufnmm+nfvz833HADKSkp7Nq1iw8++IDzzjuP5557jv379/PMM8/wzjvvcOGFF7JgwYLQMSpb71avXk3//v3p3bt3refpWHX9jKuPpno9p6SkMH36dB555BF+/vOfc+WVV4bO81lnnXXc1v7HH3+cTz75hCFDhoSGr8/NzeWdd95hxYoVJCQk8Otf/5rFixczYsQIJkyYwIABAygrK2Pjxo28++677Nixo96t2uPGjeONN97gvvvu4+uvv+aCCy6grKyMTz/9lDvvvJNRo0bV+xxG8n392muv8cEHH/D666+HemU8++yz/OIXv+D555/nzjvvDG27du1a8vPzGTVqVL3OgRD10pRDGQpxutm6dauaNGmS6tChg7Lb7So2Nladd9556tlnnw0bTlkppRYsWKDOP/98FR0draKjo1X37t3VXXfdpbZs2RLapnKI4G+++UYNGjRIOZ1O1b59e/Xcc89VObbP51OzZ89WZ555pnI4HCoxMVENGDBAPfLII6qoqEgpZQ5nTsUwurXdKocerusQ7h6PR/Xu3Vudf/75KhAIhLarzxDu999/v0pPT1cul0udd955avXq1WrIkCFhQwpXDuF+9BDtR6tufV2HcL/77rvVhRdeqD766KMq20ZyCPdKX3/9tQLUZZddVuPxjnerjL2u568m1HHIa6XM4bzvvfdelZGRoWw2m8rKylJ/+tOfwoYQP566DOF+1113qTfffFNlZWUph8Oh+vXrV2WI+4KCAnXLLbeo5ORkFRMTo4YNG6Y2b95c7fk/fPiwmjJlimrTpo2y2+2qbdu2avz48erQoUNKKXNI6scff1y1b98+dLz3339fjR8/PnQOAoGAOuuss1Tbtm1VYWFhWP1//vOfFaDefvvtWh+71+tVycnJ6tFHH612fW5urrJYLKpr16411rFixQp16aWXqtjYWBUdHa169+6tnn322bBtsrOz1bhx41RaWpqy2WyqTZs2asSIEWHTNlQO4f7555+ryZMnq8TERBUTE6Nuuukmdfjw4SrHXbZsmRo2bJiKj49XTqdTde7cWU2YMCE0JHfl++94t8r3TX2GE1eqbp9xSjXd67muQ7hXeu6551T37t2VzWZTqamp6o477qgyFH9Ndu7cqcaN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x850LQyFQpKk5uZm3XrrrXrmmWe6vVZBQUGPv+M73/mO5s6dqzfeeEN//vOfVVZWph//+Me6//77exzf3NwsSXrjjTdUVFQUcc7pdEb5zgAAwx0hCwAASVdeeaV+97vfady4cbLbo//nsbi4WPfee6/uvfdePfroo3rhhRd0//33y+FwSLIuVTzj0ksvldPpVFVVlW644YZeX3fTpk0qKSmRJNXX12vPnj2aPHnyAN4ZAGCo0fgCAABZTSzq6up05513asuWLdq/f7/efvtt3XPPPRFB6bOWLl2qt99+WwcPHtTHH3+sdevWhYPQ2LFjZbPZ9Prrr+vkyZNqbm5Wamqq/uVf/kUPPvigVq9erf379+vjjz/Wz372M61evTritZ966imtXbtWFRUVWrRokbKzs7nhMgCMEIQsAAAkFRYW6q9//auCwaDmzJmjKVOmaOnSpfJ6vUpI6Pmfy2AwqCVLlmjy5MmaN2+eJkyYoF/84heSpKKiIj355JNatmyZ8vLydN9990mSnn76aT3++OMqKysLz3vjjTdUWloa8dorV67UAw88oKuuuko1NTV67bXXwrtjAIDhje6CAAAMIz11JQQAjCzsZAEAAABADBGyAAAAACCGuFwQAAAAAGKInSwAAAAAiCFCFgAAAADEECELAAAAAGKIkAUAAAAAMUTIAgAAAIAYImQBAAAAQAwRsgAAAAAghghZAAAAABBD/x9p9JrqA+MBTQAAAABJRU5ErkJggg==\n"},"metadata":{}}],"execution_count":17},{"cell_type":"code","source":"plt.hist(velocity_maps.flatten(), bins=100, color='purple')\nplt.title(\"Гістограма значень швидкості\")\nplt.xlabel(\"Velocity\")\nplt.ylabel(\"Кількість\")\nplt.grid(True)\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T06:25:06.174125Z","iopub.execute_input":"2025-06-16T06:25:06.174504Z","iopub.status.idle":"2025-06-16T06:25:07.582075Z","shell.execute_reply.started":"2025-06-16T06:25:06.174481Z","shell.execute_reply":"2025-06-16T06:25:07.580837Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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7Eq54//5z38qLCws3zH169d3eBwXF6e7777bfJyWlqY+ffrk+9zc13Px4kUtWbJEr7/+uux2u1566aV8x1vlo48+kp+fn9LT07VmzRpFRkbK09PTvGj7SqNHj1ZYWJg6d+6c50L4XLkXnl99cXtBduzYoS+++EJRUVEaNmyY1qxZU7QXAliAUAXcYrkXs+Ze/HojAgICJEkHDhxQ3bp1zeWZmZk6ePBgkeb/+eef8yz76aef5O3tbR4B+vTTTxUREaGpU6eaY9LT0/O84/BKPXr0kKenp/r166cOHTqoXr16eULVnj179NNPP+mDDz7QwIEDzeUJCQlO1+/i4mK+7ocfflinTp3SuHHj8oSqjh07qmrVqubjq0/Fnj59WomJiYqNjdW4cePM5fn1x9PTUytWrNBPP/2kw4cPyzAMpaam6r/+67/MMbnfHzc3N6e/L61bt3a4Xce13uF35et5+OGH9f3332vVqlU3PVS1b9/eDEA9e/bU3r17NWnSpDyhaunSpUpKSsr39PCVtm3bpnLlyqlZs2ZObf+9997Tww8/LFdXV/Xs2VPvv/++hgwZYq4PCAjQgQMH8jxv//795nrp75/LzZs3Kysry+HNHcD14Joq4BZr0aKFAgMDNWPGjDwh5MrTaM4IDQ2Vu7u73nzzTYfnvv/++zp79qzCw8Ovu76r//AdPnxYX3zxhbp162aeSnJ1dc1T61tvvWVec5WfcuXKaeDAgdq9e7cGDx6c75jc+a+c2zAM81YTRXHixAllZGRc9/Pyq0WSZsyYUeBz7r77bnXp0kWhoaFq3769wzpfX1916tRJ77zzjv766688z736lhM3wjAMGYZx00/95efSpUt5+p2dna2XX35ZTz755DXDUmZmppYtW6bOnTurQoUKTm3vvvvukySFh4erX79+GjVqlFJTU831Dz74oLZs2aKkpCRz2YULF/Tuu++qTp06CgoKkiT16dNHJ06c0KxZs/Js43p/LlF2caQKuMVcXFz09ttv66GHHlKzZs00aNAgVa9eXfv379fevXv19ddfOz1XtWrVNHbsWMXGxqp79+56+OGHdeDAAc2ePVv33nuvw5ESZzVu3FhhYWEOt1SQpNjYWHNMz5499X//93/y8fFRUFCQkpKS9M033+S5SPhqr732mkaNGqVKlSrlu75hw4aqV6+e/vnPf+ro0aOy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Kie5u7urZcuWSkxMVK9evST9HZISExMVFRWV73M8PDzk4eHhsKxixYo3rUa73c4P3XWgX86jV86jV86jV86jV867Wb261hGqXISq6xATE6OIiAi1atVKrVu31owZM3ThwgUNGjSouEsDAADFjFB1Hfr27avjx49r3LhxSklJUbNmzbRq1ao8F68DAICyh1B1naKiogo83VdcPDw8NH78+DynGpE/+uU8euU8euU8euU8euW8ktArm1HY+wMBAABQKG7+CQAAYAFCFQAAgAUIVQAAABYgVAEAAFiAUFVCrF+/Xg899JBq1Kghm82mpUuXOqx/+umnZbPZHL66d+/uMObUqVMaMGCA7Ha7KlasqCFDhuj8+fMOY3bv3q377rtPnp6eqlWrlqZMmXKzX5rlJk2apHvvvVd33HGHfH191atXLx04cMBhTHp6uiIjI1WlShVVqFBBffr0yXM3/EOHDik8PFze3t7y9fXVqFGjdPnyZYcxa9euVYsWLeTh4aH69esrPj7+Zr88SznTq06dOuXZt5577jmHMWWhV2+//baCg4PNGweGhIToq6++MtezTzkqrF/sV/mbPHmybDaboqOjzWXsWwXLr18let8yUCKsXLnS+H//7/8Zn3/+uSHJWLJkicP6iIgIo3v37sZff/1lfp06dcphTPfu3Y2mTZsamzZtMjZs2GDUr1/f6N+/v7n+7Nmzhp+fnzFgwAAjOTnZWLBggeHl5WW88847t+IlWiYsLMyYN2+ekZycbOzatct48MEHjdq1axvnz583xzz33HNGrVq1jMTERGPbtm1G27ZtjXbt2pnrL1++bDRu3NgIDQ01du7caaxcudKoWrWqMXbsWHPMb7/9Znh7exsxMTHGvn37jLfeestwdXU1Vq1adUtf741wplf333+/MXToUId96+zZs+b6stKrZcuWGStWrDB++ukn48CBA8bLL79suLm5GcnJyYZhsE9drbB+sV/ltWXLFqNOnTpGcHCw8eKLL5rL2bfyV1C/SvK+RagqgQoKVY888kiBz9m3b58hydi6dau57KuvvjJsNptx9OhRwzAMY/bs2UalSpWMjIwMc8zo0aONBg0aWFr/rXbs2DFDkrFu3TrDMAzjzJkzhpubm7F48WJzzI8//mhIMpKSkgzD+DvEuri4GCkpKeaYt99+27Db7WZ/XnrpJeOee+5x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\n"},"metadata":{}}],"execution_count":18},{"cell_type":"code","source":"fig, axs = plt.subplots(1, 3, figsize=(15, 4))\nfor i in range(3):\n    sns.heatmap(seismograms[i, 0].T, ax=axs[i], cmap=\"viridis\")\n    axs[i].set_title(f\"Приклад {i} — Trace 0\")\nplt.tight_layout()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T06:25:24.251331Z","iopub.execute_input":"2025-06-16T06:25:24.251708Z","iopub.status.idle":"2025-06-16T06:25:26.047885Z","shell.execute_reply.started":"2025-06-16T06:25:24.251682Z","shell.execute_reply":"2025-06-16T06:25:26.046823Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1500x400 with 6 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAABcIAAAGGCAYAAABYCPK9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADc4ElEQVR4nOzde3wU5b0/8M8zs5dwS7goCVTBG4KAQMVbaCuIKCKlWmm11lb0eKptIyr0tCXnaNFaGj1e0GqkHn8Ith4OrRes2gpFFKwVLEZpvRypWit6MKFqCZCQze7M8/tjnpmd2Uuym93Z7G4+79drXsnOzs4+u5D9zDO7+/0KKaUEEREREREREREREVGZ0np7AEREREREREREREREfuKJcCIiIiIiIiIiIiIqazwRTkRERERERERERERljSfCiYiIiIiIiIiIiKis8UQ4EREREREREREREZU1nggnIiIiIiIiIiIiorLGE+FEREREREREREREVNZ4IpyIiIiIiIiIiIiIyhpPhBMRERERERERERFRWeOJcCIiIiIiIiIiIiIqazwRTli9ejWEEF0uEydO7O1hloSVK1fiuOOOQ0VFBcaMGYO77767V8bx97//vdt/U3v5+9//3itjzFaxPLdERMWA2Z0fK1aswFe/+lWMGjUKQghceumlvTqeTLN78+bNvTrOTD3xxBM44YQTUFFRgVGjRmHp0qWIxWK9PSwiol7B7M7dBx98gBtvvBEnn3wyhgwZgkMOOQQzZszAM88802tjYnYTlZZAbw+AisePf/xjHHnkkUnrly1b1gujKT333Xcfvv3tb2P+/PlYvHgx/vCHP+Dqq69Ge3s7fvjDHxZ0LIceeih++ctfetbdfvvt+PDDD7F8+fKkbYtdMT23RETFhNmdm1tuuQX79+/HySefjI8++qi3h5OU3b/4xS+wcePGpPXHHXdcIYfVI08//TTOO+88zJgxA3fffTdee+01/OQnP8GePXuwYsWK3h4eEVGvYXb33G9+8xvccsstOO+887BgwQLEYjH84he/wJlnnokHHngAl112WcHHxOwmKi1CSil7exDUu1avXo3LLrsM27dvx4knnph0/YwZM/Dxxx/j9ddf74XRlYaDBw/i8MMPx6mnnoqnnnrKWf+Nb3wDjz/+OD744AMMGTKkF0cIfPGLX8Trr7/e5SfApZTo6OhAv379CjewbpTCc0tEVGjM7vx4//33nU+DDxw4EF/5ylewevXq3h6W46qrrkJjYyO6O1xvb29H//79CzSqzEyYMAHBYBAvv/wyAgHrszfXXXcdfvrTn+LNN9/EuHHjenmERESFxezO3RtvvIHq6moccsghzrpIJIIpU6bgwIED+OCDD3pxdBZmN1FxY2kU6hEhBK666ir893//N8aOHYuKigpMnToVzz//vGe7G264AUIIz7oDBw6gpqYm6etBM2bMwIwZMzzbLlu2DJqmYc2aNZ71XZX+cLvtttswbdo0DBs2DP369cPUqVPxyCOPpHxMmzdvzmifqTz33HP45JNP8N3vftezvq6uDm1tbfjtb3/b7T56wxFHHIEvfvGL2LBhA0488UT069cP9913HwBg1apVmDlzJoYPH45wOIzx48enfRf46aefxvTp0zFo0CBUVlbipJNOSvo3e+mll3D22WejqqoK/fv3x/Tp0/HHP/6x2zGW6nNLRFRsmN3JRo8enfG2xWLGjBmYOHEimpqacNppp6F///7493//dwDWJ+Xmzp2LkSNHIhwO4+ijj8ZNN90EwzCS9vPSSy/hnHPOwZAhQzBgwABMmjQJd911l2ebt956C1/5ylcwdOhQVFRU4MQTT8QTTzzR7RjffPNNvPnmm7jiiiuciTQAfPe734WUMu2/JxEReTG7vSZMmOA5CQ4A4XAY55xzDj788EPs37+/2330BmY3UfHgiXDqsS1btuDaa6/FN77xDfz4xz/GJ598grPPPrvbd7Bvv/12tLS0dLv/VatW4brrrsNtt92Gr3/96ym3ueKKK/DLX/4Sv/zlL/HlL3856fq77roLn/3sZ/HjH/8YP/3pTxEIBPDVr361y5OnV199tbPPM888s9txAsCrr74KAEnv7E+dOhWapjnXF6OdO3fioosuwplnnom77roLU6ZMAWDVTR09ejT+/d//HbfffjsOP/xwfPe730VjY6Pn9qtXr8bcuXPx6aefor6+HjfffDOmTJmC9evXO9s8++yzOO2007Bv3z4sXboUP/3pT7F3717MnDkTf/rTn7ocXyk/t0RExYbZXR4++eQTzJkzB1OmTMGdd96J008/HYCVyQMHDsTixYtx1113YerUqfjRj36EJUuWeG6/ceNGnHbaaXjzzTdxzTXX4Pbbb8fpp5/u+ebVG2+8gVNPPRX/+7//iyVLluD222/HgAEDcN5552HdunVdji9ddo8cORKHHXYYs5uIKAvM7u41Nzejf//+RfcJazdmN1GRkNTnrVq1SgKQ27dvT3n99OnT5YQJEzzrAEgA8uWXX3bWvf/++7KiokJ++ctfdtYtXbpUuv+b7dmzRw4aNEjOmTNHApDPPfec536mT58upZTyt7/9rQwEAvJ73/teyjG9/fbbEoB88MEH096XlFK2t7d7Lnd2dsqJEyfKmTNnJu3z97//vQQgH3nkEWddXV1d0j5Tqaurk7qup7zu0EMPlV/72te63Yff5s6dK0ePHu1ZN3r0aAlArl+/Pmn7xOdOSilnz54tjzrqKOfy3r175aBBg+Qpp5wiDx486NnWNE3n55gxY+Ts2bOddfb+jzzySHnmmWd2Oe5SeG6JiAqN2W3JJbsTDRgwQC5YsCDr2/kp1WOZPn26BCB//vOfJ22fKruvvPJK2b9/f9nR0SGllDIWi8kjjzxSjh49Wv7zn//0bOvO6TPOOEMef/zxzu3s66dNmybHjBnT5bhvvfVWCUDu2rUr6bqTTjpJnnrqqV3enoioHDG7LfnMbnuMFRUV8pvf/GaPbp9vzG6i4sZPhFOP1dbWYurUqc7lUaNG4dxzz8WGDRtSfo0HAG666SZUVVXh6quvTrvfP/3pT7jgggswf/583HrrrSm36ezsBGB9Daor7lrX//znP9Ha2oovfOELeOWVV5K27ejoAABUVFR0uc9UDh48iFAolPK6iooKHDx4MOt9FsqRRx6J2bNnJ613P3etra34+OOPMX36dPztb39Da2srAOtd6f3792PJkiVJz5v91bYdO3bg7bffxte//nV88skn+Pjjj/Hxxx+jra0NZ5xxBp5//nmYppl2fKX83BIRFRtmd3kIh8MpG4K5n7v9+/fj448/xhe+8AW0t7fjrbfeAmB94uu9997Dtddei8GDB3tub2f3p59+imeffRYXXHCBs5+PP/4Yn3zyCWbPno23334b//d//5d2fHY2p/q3ZnYTEWWH2Z1ee3s7vvrVr6Jfv364+eabc96fn5jdRMUh0P0mRKmNGTMmad2xxx6L9vZ2/OMf/0BNTY3nuvfeew/33XcfVqxYkTb0/u///g9z585FW1sbPvnkk7R1wvbu3QsAGDhwYJdjfOqpp/CTn/wEO3bsQCQScdan2u/HH38MAKiqqupyn6n069fPOUhI1F3zyc7OTnz66adZ3ycAhEIhDB06tEe3taXqWA4Af/zjH7F06VJs3boV7e3tnutaW1tRVVWFd999FwAwceLEtPt/++23AQALFixIu01ra2vahpe5PLdEROTF7M4PwzDwj3/8o0e31XUdhx56aE73/5nPfCblm8RvvPEGrrvuOjz77LPYt2+f5zr7TexMsvudd96BlBLXX389rr/++pTb7NmzB5/5zGdSXmdns/vfz8bsJiLKDrM7NcMw8LWvfQ1vvvkmnn76aYwcObLb7ZndzG4ingingvmP//gPjBkzBgsWLMAf/vCHlNu88847OOGEE7B8+XJ885vfxIMPPpjyBGpzczMAJIW+2x/+8Ad86UtfwmmnnYZ7770XI0aMQDAYxKpVq5KagABWIxDAaiCZrREjRsAwDOzZswfDhw931nd2duKTTz7pMpRffPFFpz5YtqZPn+5pfNITqQLt3XffxRlnnIFx48bhjjvuwOGHH45QKITf/e53WL58eZef4E5kb3vrrbc69ccTdXVglctzS0REuSnn7M7FBx98kPaN5O6MHj3aGXdPpcruvXv3Yvr06aisrMSPf/xjHH300aioqMArr7yCH/7whz3K7n/7t39L+a0xADjmmGPS3n7EiBEAgI8++giHH36457qPPvoIJ598csZjISKi7PSV7P7Wt76Fp556Cv/93/+NmTNndrs9s5vZTQTwRDjlwP6kr9tf//pX9O/fP+nd0ldffRVr167F448/Dl3X0+5zxIgR+N3vfofq6mr85je/wfe+9z2cc845Sft78803IYTA2LFj0+7r0UcfRUVFBTZs2OD5es+qVatSbv/yyy+jpqYGhx12WNp9pmOf4H355ZdxzjnnePZpmmbaE8AAMHnyZGzcuDHr+wSQ9lPUuXryyScRiUTwxBNPYNSoUc765557zrPd0UcfDQB4/fXX04aqvU1lZSVmzZqV9VhyeW6JiMiL2Z0fNTU1Pc5uvz5RtXnzZnzyySd47LHHcNpppznr33vvPc927uxOl8tHHXUUACAYDOac3e6J8+7du/Hhhx/iiiuuyHqfRER9FbM72fe//32sWrUKd955Jy666KKMbsPs7hqzm/oKnginHtu6dSteeeUVnHDCCQCsd1h/85vf4Oyzz04K3SVLluBzn/scvvSlL3W5z2OPPRbV1dUAgLvvvhvjx4/HNddc43knORaL4dFHH8XJJ5/c5SeJdV2HEMJTN+3vf/87Hn/88aRtP/nkEzz33HP45je/2e3jTmXmzJkYOnQoVqxY4TlZu2LFCvTv3x9z585Ne9shQ4b0KKj8ZP/7SSmdda2trUkHM2eddRYGDRqEhoYGnH322Z6v3kkpIYTA1KlTcfTRRztdyBP/zf7xj390+TWzXJ5bIiLyYnbnR0VFRUlkd2dnJ+69917PdieccAKOPPJI3Hnnnbj00ks9tUbt7B4+fDhmzJiB++67DwsXLnQ+JWbrLrsnTJiAcePG4b/+679w5ZVXOmNbsWIFhBD4yle+kuvDJSLqM5jdXrfeeituu+02/Pu//zuuueaajG/H7GZ2EwE8EU45mDhxImbPno2rr74a4XDYebG+8cYbk7b9/e9/jz/+8Y9Z7b+mpga33nor/vVf/xXf+MY3cM455+CZZ57B9ddfj7/85S948sknu7z93Llzcccdd+Dss8/G17/+dezZsweNjY045phj8Je//MXZbuvWrViyZAkOHjyIQw89FA899JBz3V//+lcAwEMPPYQvf/nLGDBgQMr76tevH2666SbU1dXhq1/9KmbPno0//OEPeOihh7Bs2bKc63gX2llnnYVQKIR58+bhyiuvxIEDB3D//fdj+PDh+Oijj5ztKisrsXz5cvzrv/4rTjrpJHz961/HkCFD8Oc//xnt7e148MEHoWka/t//+3+YM2cOJkyYgMsuuwyf+cxn8H//93947rnnUFlZ2eW/Zbk9t0REvYnZ7fXkk0/iz3/+MwAgGo3iL3/5C37yk58AAL70pS9h0qRJWT3+3jRt2jQMGTIECxYswNVXXw0hBH75y196JtcAoGkaVqxYgXnz5mHKlCm47LLLMGLECLz11lt44403sGHDBgBAY2MjPv/5z+P444/Ht771LRx11FFoaWnB1q1b8eGHHzrPWzq33norvvSlL+Gss87C1772Nbz++uu455578K//+q847rjjfHseiIjKDbM7bt26dfjBD36AMWPG4LjjjvPsAwDOPPNM5wR/KWB2E/UCSX3eqlWrJAC5ffv2lNdPnz5dTpgwwbMOgKyrq5MPPfSQHDNmjAyHw/Kzn/2sfO655zzbLV26VAKQ5557rmf9c889JwF4tp8+fbqcPn160v3PnDlTjho1Su7f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22PXrl2lHgjiz1r683JycooM52jUqBFOnTpV7rXuuOMOLFy4EADQtWtXfPjhh6b177//PhISEsq9lqeQkBAMHjwYa9aswaFDhzB27Fi88847aN26dbnXiomJwY8//ggA2L9/PxwOh3EbAHbv3m1poMiAAQNw//33Y82aNdiwYQOGDRuGrl27IiIiAgCwd+9eNGrUyPLX5e96RJUBs5vZHehazG5mtztmN1HZMbuZ3YGuxexmdrtjdhP/IrwYffv2lSeeeKLY9du2bRNFUcq9VocOHeTNN9/0um7ChAkSGRlp+d1kf9a69tprZfXq1cbtnTt3Sn5+vnH766+/lvj4+HKv5Wn58uUSHR0tqqqW6p1pf9VSFEWuueYaadeundSoUUM+/PBD0/qvvvpKGjVqVO61jh07Js2aNZMuXbrIlClTJCIiQm6++WYZO3asdOnSRUJDQ+U///lPudfSv0793WRvNE0r8q58edR6/PHHJSoqSu677z6Jj4+X6dOnS9OmTWXhwoWyaNEiadKkiTz88MOXrfP777/L4MGDxW63i6IokpycbOoxt3btWnn//fctbVMg6hFVBsxuZncgazG7md2emN1EZcfsZnYHshazm9ntidlNJY9TvYJNmzYN2dnZxa5PSEjAhg0byr3WwIEDsXz5cowYMaLIugULFkDTNCxatKjcaz3wwANwOBzG7auvvtq0fvXq1ZYnTvuzlqchQ4bg5ptvRnp6OuLi4kpVwx+1Zs6cabpdo0YN0+1Vq1ZZnqzsz1oNGzbEDz/8gOeffx6rVq2CiGDLli34+eef0blzZ2zatAnt27cv91oAEBcXB5vNVux6RVFw++23l3utp59+2pgOPXbsWEyfPh3XXXcdHnnkEVy8eBF9+/bFX//618vWqVGjBt577z3k5OSgoKCgyP9jz549LW1PoOoRVQbMbmZ3IGsxu5ndnpjdRGXH7GZ2B7IWs5vZ7YnZTYqISEVvBBERERERERERERFRoLBHOBERERERERERERFVaTwRTkRERERERERERERVGk+EExEREREREREREVGVxhPhRERERERERERERFSl8UQ4EREREREREREREVVpPBFORERERERERERERFUaT4QTERERERERERERUZXGE+FEREREREREREREVKX9PwmLfgDABQccAAAAAElFTkSuQmCC\n"},"metadata":{}}],"execution_count":19},{"cell_type":"code","source":"import tensorflow as tf\nfrom tensorflow.keras import layers, models\n\n# Параметри\nN = 1000  # розмір для швидкого навчання\n\nX_small = seismograms[:N, 0, :, :]        # (N, 1000, 70)\ny_small = velocity_maps[:N, 0, :, :]      # (N, 70, 70)\n\n# Нормалізація\nX_small = (X_small - np.mean(X_small)) / np.std(X_small)\ny_small = y_small / np.max(y_small)  # нормування до [0, 1]\n\n# Додай канал\nX_small = X_small[..., np.newaxis]  # (N, 1000, 70, 1)\ny_small = y_small[..., np.newaxis]  # (N, 70, 70, 1)\n\n# Модель\nmodel = models.Sequential([\n    layers.Conv2D(16, (5, 5), activation='relu', padding='same', input_shape=(1000, 70, 1)),\n    layers.MaxPooling2D((2, 2)),\n    layers.Conv2D(32, (3, 3), activation='relu', padding='same'),\n    layers.MaxPooling2D((2, 2)),\n    layers.Flatten(),\n    layers.Dense(70*70, activation='sigmoid'),\n    layers.Reshape((70, 70, 1))\n])\n\nmodel.compile(optimizer='adam', loss='mse')\nmodel.summary()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T18:50:19.477171Z","iopub.execute_input":"2025-06-16T18:50:19.477582Z","iopub.status.idle":"2025-06-16T18:50:25.725555Z","shell.execute_reply.started":"2025-06-16T18:50:19.477554Z","shell.execute_reply":"2025-06-16T18:50:25.724578Z"}},"outputs":[{"name":"stderr","text":"/usr/local/lib/python3.11/dist-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n  super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n2025-06-16 18:50:20.382583: E external/local_xla/xla/stream_executor/cuda/cuda_driver.cc:152] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"\u001b[1mModel: \"sequential\"\u001b[0m\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential\"</span>\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n┃\u001b[1m \u001b[0m\u001b[1mLayer (type)                        \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape               \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m        Param #\u001b[0m\u001b[1m \u001b[0m┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n│ conv2d (\u001b[38;5;33mConv2D\u001b[0m)                      │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1000\u001b[0m, \u001b[38;5;34m70\u001b[0m, \u001b[38;5;34m16\u001b[0m)        │             \u001b[38;5;34m416\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ max_pooling2d (\u001b[38;5;33mMaxPooling2D\u001b[0m)         │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m500\u001b[0m, \u001b[38;5;34m35\u001b[0m, \u001b[38;5;34m16\u001b[0m)         │               \u001b[38;5;34m0\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m)                    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m500\u001b[0m, \u001b[38;5;34m35\u001b[0m, \u001b[38;5;34m32\u001b[0m)         │           \u001b[38;5;34m4,640\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ max_pooling2d_1 (\u001b[38;5;33mMaxPooling2D\u001b[0m)       │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m250\u001b[0m, \u001b[38;5;34m17\u001b[0m, \u001b[38;5;34m32\u001b[0m)         │               \u001b[38;5;34m0\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ flatten (\u001b[38;5;33mFlatten\u001b[0m)                    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m136000\u001b[0m)              │               \u001b[38;5;34m0\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ dense (\u001b[38;5;33mDense\u001b[0m)                        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m4900\u001b[0m)                │     \u001b[38;5;34m666,404,900\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ reshape (\u001b[38;5;33mReshape\u001b[0m)                    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m70\u001b[0m, \u001b[38;5;34m70\u001b[0m, \u001b[38;5;34m1\u001b[0m)           │               \u001b[38;5;34m0\u001b[0m │\n└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n┃<span style=\"font-weight: bold\"> Layer (type)                         </span>┃<span style=\"font-weight: bold\"> Output Shape                </span>┃<span style=\"font-weight: bold\">         Param # </span>┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n│ conv2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                      │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1000</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">70</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)        │             <span style=\"color: #00af00; text-decoration-color: #00af00\">416</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ max_pooling2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)         │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">500</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">35</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)         │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ conv2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">500</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">35</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)         │           <span style=\"color: #00af00; text-decoration-color: #00af00\">4,640</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ max_pooling2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)       │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">250</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">17</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)         │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ flatten (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Flatten</span>)                    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">136000</span>)              │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">4900</span>)                │     <span style=\"color: #00af00; text-decoration-color: #00af00\">666,404,900</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ reshape (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Reshape</span>)                    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">70</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">70</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)           │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m666,409,956\u001b[0m (2.48 GB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">666,409,956</span> (2.48 GB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m666,409,956\u001b[0m (2.48 GB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">666,409,956</span> (2.48 GB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n</pre>\n"},"metadata":{}}],"execution_count":6},{"cell_type":"code","source":"model.fit(X_small, y_small, epochs=3, batch_size=16, validation_split=0.1)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-16T18:50:35.860387Z","iopub.execute_input":"2025-06-16T18:50:35.861534Z","execution_failed":"2025-06-16T18:48:29.436Z"}},"outputs":[{"name":"stdout","text":"Epoch 1/3\n\u001b[1m 1/57\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m12:39\u001b[0m 14s/step - loss: 0.0570","output_type":"stream"}],"execution_count":null},{"cell_type":"code","source":"# Завантаження тесту\ntest_dir = \"/kaggle/input/waveform-inversion/test\"\ntest_samples = []\n\nfor root, _, files in os.walk(test_dir):\n    for f in files:\n        if f.endswith(\".npy\"):\n            arr = np.load(os.path.join(root, f))  # (5, 1000, 70)\n            test_samples.append(arr[0])  # лише перший trace\n\ntest_samples = np.stack(test_samples, axis=0)  # (num_test, 1000, 70)\n\n# Підготовка\ntest_samples = (test_samples - np.mean(X_small)) / np.std(X_small)\ntest_samples = test_samples[..., np.newaxis]  # (num_test, 1000, 70, 1)\n\n# Прогноз\npreds = model.predict(test_samples)\n\n# Збереження submission\nsubmission = preds.squeeze().reshape(preds.shape[0], -1)\nimport pandas as pd\ndf = pd.DataFrame(submission)\ndf.insert(0, \"id\", range(len(df)))  # додаємо стовпчик ID\n\ndf.to_csv(\"submission.csv\", index=False)\nprint(\"✅ submission.csv готовий\")","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import os\nimport numpy as np\nimport pandas as pd\nimport tensorflow as tf\nfrom tensorflow.keras import Input, Model\nfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, GlobalAveragePooling2D, Dense\n\n# ---------- 1. Завантаження та обрізка пар seis / vel ----------\ndef collect_train_data(root):\n    seis_data = []\n    vel_data = []\n    min_shape = None\n\n    for folder in os.listdir(root):\n        folder_path = os.path.join(root, folder)\n        if not os.path.isdir(folder_path):\n            continue\n\n        seis_files = sorted([f for f in os.listdir(folder_path) if f.startswith(\"seis\") and f.endswith(\".npy\")])\n        for seis_fname in seis_files:\n            vel_fname = seis_fname.replace(\"seis\", \"vel\")\n            seis_path = os.path.join(folder_path, seis_fname)\n            vel_path = os.path.join(folder_path, vel_fname)\n\n            if not os.path.exists(vel_path):\n                print(f\"⚠️ Пропущено: {vel_path}\")\n                continue\n\n            seis = np.load(seis_path)\n            vel = np.load(vel_path)\n\n            if min_shape is None:\n                min_shape = seis.shape\n            else:\n                min_shape = tuple(min(min_shape[i], seis.shape[i]) for i in range(3))\n\n            seis_data.append(seis)\n            vel_data.append(vel)\n\n    if not seis_data:\n        raise ValueError(\"❌ Не знайдено жодної пари seis/vel .npy\")\n\n    # Усічення до мінімальної форми\n    X = np.stack([arr[:min_shape[0], :min_shape[1], :min_shape[2]] for arr in seis_data])\n    y = np.stack([arr[:min_shape[0], :min_shape[1], :min_shape[2]] for arr in vel_data])\n\n    print(f\"✅ Завантажено {len(X)} прикладів з формою {X.shape}\")\n    return X, y\n\n# ---------- 2. Завантаження тестових даних ----------\ndef load_test_data(path, target_shape):\n    arrays = []\n    filenames = []\n    for fname in sorted(os.listdir(path)):\n        if not fname.endswith(\".npy\"): continue\n        arr = np.load(os.path.join(path, fname))\n        cropped = arr[:target_shape[0], :target_shape[1], :target_shape[2]]\n        arrays.append(cropped)\n        filenames.append(fname)\n    if not arrays:\n        raise ValueError(\"❌ Тестові .npy не знайдено\")\n    print(f\"✅ Завантажено {len(arrays)} тестових прикладів з формою {arrays[0].shape}\")\n    return np.stack(arrays), filenames\n\n# ---------- 3. Підготовка даних ----------\nX, y = collect_train_data(\"/kaggle/input/waveform-inversion/train_samples\")\n\n# Усереднення по каналу часу (вздовж осі -1 → 70 → 1)\nX = np.mean(X, axis=-1, keepdims=True)  # (8, 500, 5, 1000, 1) → (8, 500, 5, 1000, 1) → avg → (8, 500, 5, 1000, 1)\ny = np.mean(y, axis=-1)                 # (8, 500, 5, 1000, 70) → (8, 500, 5, 1000)\n\n# Залишаємо лише \"середній зріз\" по осі y=5 → (500, 1000)\ncenter_idx = X.shape[2] // 2 if X.shape[2] > 1 else 0\nX = X[:, :, center_idx, :, 0]\n\ncenter_idx_y = y.shape[2] // 2 if y.shape[2] > 1 else 0\ny = y[:, :, center_idx_y, :]\n\n\n# Масштабування\nX = (X - np.mean(X)) / np.std(X)\nX = X[..., np.newaxis]  # (8, 500, 1000, 1)\n\ny = y.reshape((y.shape[0], -1))  # (8, 500000)\n\nprint(f\"✅ Shapes після підготовки: {X.shape}, {y.shape}\")\n\n# ---------- 4. Побудова моделі ----------\ninput_shape = X.shape[1:]\ninp = Input(shape=input_shape)\nx = Conv2D(8, (3, 3), activation='relu', padding='same')(inp)\nx = MaxPooling2D((2, 2))(x)\nx = Conv2D(16, (3, 3), activation='relu', padding='same')(x)\nx = GlobalAveragePooling2D()(x)\nout = Dense(y.shape[1])(x)\n\nmodel = Model(inputs=inp, outputs=out)\nmodel.compile(optimizer='adam', loss='mse')\nmodel.summary()\n\n# ---------- 5. Навчання ----------\nmodel.fit(X, y, epochs=5, batch_size=2, validation_split=0.1)\n\n# ---------- 6. Тестування ----------\nX_test_raw, test_files = load_test_data(\"/kaggle/input/waveform-inversion/test\", (500, 5, 1000, 70))\nX_test = np.mean(X_test_raw, axis=-1, keepdims=True)  # (samples, 500, 5, 1000, 1)\nX_test = X_test[:, :, 2, :, 0]  # середній зріз по y=2 → (samples, 500, 1000)\nX_test = (X_test - np.mean(X_test)) / np.std(X_test)\nX_test = X_test[..., np.newaxis]  # (samples, 500, 1000, 1)\n\npreds = model.predict(X_test)  # (samples, 500000)\n# ---------- 7. Формування submission ----------\nsubmission = pd.DataFrame()\nsubmission[\"oid_ypos\"] = [fname.replace(\".npy\", \"\") for fname in test_files]\nfor i in range(preds.shape[1]):\n    submission[f\"# x.{2*i+1}\"] = preds[:, i]\n\nsubmission.to_csv(\"submission.csv\", index=False)\nprint(\"✅ submission.csv збережено!\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-18T10:46:58.871013Z","iopub.execute_input":"2025-06-18T10:46:58.871445Z","execution_failed":"2025-06-18T10:57:25.063Z"}},"outputs":[{"name":"stdout","text":"✅ Завантажено 8 прикладів з формою (8, 500, 5, 1000, 70)\n✅ Shapes після підготовки: (8, 500, 1000, 1), (8, 35000)\n","output_type":"stream"},{"name":"stderr","text":"2025-06-18 10:47:45.041299: E external/local_xla/xla/stream_executor/cuda/cuda_driver.cc:152] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"\u001b[1mModel: \"functional\"\u001b[0m\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"functional\"</span>\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n┃\u001b[1m \u001b[0m\u001b[1mLayer (type)                        \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape               \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m        Param #\u001b[0m\u001b[1m \u001b[0m┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n│ input_layer (\u001b[38;5;33mInputLayer\u001b[0m)             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m500\u001b[0m, \u001b[38;5;34m1000\u001b[0m, \u001b[38;5;34m1\u001b[0m)        │               \u001b[38;5;34m0\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ conv2d (\u001b[38;5;33mConv2D\u001b[0m)                      │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m500\u001b[0m, \u001b[38;5;34m1000\u001b[0m, \u001b[38;5;34m8\u001b[0m)        │              \u001b[38;5;34m80\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ max_pooling2d (\u001b[38;5;33mMaxPooling2D\u001b[0m)         │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m250\u001b[0m, \u001b[38;5;34m500\u001b[0m, \u001b[38;5;34m8\u001b[0m)         │               \u001b[38;5;34m0\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m)                    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m250\u001b[0m, \u001b[38;5;34m500\u001b[0m, \u001b[38;5;34m16\u001b[0m)        │           \u001b[38;5;34m1,168\u001b[0m │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ global_average_pooling2d             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m)                  │               \u001b[38;5;34m0\u001b[0m │\n│ (\u001b[38;5;33mGlobalAveragePooling2D\u001b[0m)             │                             │                 │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ dense (\u001b[38;5;33mDense\u001b[0m)                        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m35000\u001b[0m)               │         \u001b[38;5;34m595,000\u001b[0m │\n└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n┃<span style=\"font-weight: bold\"> Layer (type)                         </span>┃<span style=\"font-weight: bold\"> Output Shape                </span>┃<span style=\"font-weight: bold\">         Param # </span>┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n│ input_layer (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">InputLayer</span>)             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">500</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1000</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)        │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ conv2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                      │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">500</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1000</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>)        │              <span style=\"color: #00af00; text-decoration-color: #00af00\">80</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ max_pooling2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)         │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">250</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">500</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>)         │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ conv2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">250</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">500</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)        │           <span style=\"color: #00af00; text-decoration-color: #00af00\">1,168</span> │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ global_average_pooling2d             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)                  │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">GlobalAveragePooling2D</span>)             │                             │                 │\n├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">35000</span>)               │         <span style=\"color: #00af00; text-decoration-color: #00af00\">595,000</span> │\n└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m596,248\u001b[0m (2.27 MB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">596,248</span> (2.27 MB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m596,248\u001b[0m (2.27 MB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">596,248</span> (2.27 MB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n</pre>\n"},"metadata":{}},{"name":"stdout","text":"Epoch 1/5\n\u001b[1m4/4\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 367ms/step - loss: 9719197.0000 - val_loss: 9613870.0000\nEpoch 2/5\n\u001b[1m4/4\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 247ms/step - loss: 9698662.0000 - val_loss: 9613807.0000\nEpoch 3/5\n\u001b[1m4/4\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 266ms/step - loss: 9722261.0000 - val_loss: 9613716.0000\nEpoch 4/5\n\u001b[1m4/4\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 242ms/step - loss: 9749167.0000 - val_loss: 9613582.0000\nEpoch 5/5\n\u001b[1m4/4\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 247ms/step - loss: 9735066.0000 - val_loss: 9613388.0000\n","output_type":"stream"}],"execution_count":null},{"cell_type":"code","source":"import os\n\ncsv_path = \"submission.csv\"\nif os.path.exists(csv_path):\n    os.remove(csv_path)\n    print(f\"{csv_path} видалено\")\nelse:\n    print(f\"{csv_path} не знайдено\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-18T14:00:17.355587Z","iopub.execute_input":"2025-06-18T14:00:17.356378Z","iopub.status.idle":"2025-06-18T14:02:56.739472Z","shell.execute_reply.started":"2025-06-18T14:00:17.356346Z","shell.execute_reply":"2025-06-18T14:02:56.738031Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"\u001b[1mModel: \"functional_9\"\u001b[0m\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"functional_9\"</span>\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃\u001b[1m \u001b[0m\u001b[1mLayer (type)             \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape          \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m       Param #\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mConnected to          \u001b[0m\u001b[1m \u001b[0m┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ input_layer_10            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m1\u001b[0m)      │              \u001b[38;5;34m0\u001b[0m │ -                      │\n│ (\u001b[38;5;33mInputLayer\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_30 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m1\u001b[0m)      │              \u001b[38;5;34m0\u001b[0m │ input_layer_10[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]   │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_43 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │            \u001b[38;5;34m160\u001b[0m │ cast_30[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_31 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_43[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_14    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │             \u001b[38;5;34m64\u001b[0m │ cast_31[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_32 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_14             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_32[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_44 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │          \u001b[38;5;34m2,320\u001b[0m │ activation_14[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_33 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_44[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_15    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │             \u001b[38;5;34m64\u001b[0m │ cast_33[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_34 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_15             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_34[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_9           │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ activation_15[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mMaxPooling2D\u001b[0m)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_45 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │          \u001b[38;5;34m4,640\u001b[0m │ max_pooling2d_9[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]  │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_35 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_45[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_16    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │            \u001b[38;5;34m128\u001b[0m │ cast_35[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_36 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_16             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_36[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_46 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │          \u001b[38;5;34m9,248\u001b[0m │ activation_16[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_37 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_46[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_17    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │            \u001b[38;5;34m128\u001b[0m │ cast_37[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_38 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_17             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_38[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_10          │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m32\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ activation_17[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mMaxPooling2D\u001b[0m)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_47 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │         \u001b[38;5;34m18,496\u001b[0m │ max_pooling2d_10[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_39 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ conv2d_47[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_18    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │            \u001b[38;5;34m256\u001b[0m │ cast_39[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_40 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_18             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ cast_40[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_48 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │         \u001b[38;5;34m36,928\u001b[0m │ activation_18[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_41 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ conv2d_48[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_19    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │            \u001b[38;5;34m256\u001b[0m │ cast_41[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_42 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_19             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ cast_42[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_transpose_4        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │          \u001b[38;5;34m8,224\u001b[0m │ activation_19[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mConv2DTranspose\u001b[0m)         │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_2             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_transpose_4[\u001b[38;5;34m0\u001b[0m]… │\n│ (\u001b[38;5;33mConcatenate\u001b[0m)             │                        │                │ activation_17[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_49 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │         \u001b[38;5;34m18,464\u001b[0m │ concatenate_2[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_43 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_49[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_20    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │            \u001b[38;5;34m128\u001b[0m │ cast_43[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_44 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_20             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_44[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_50 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │          \u001b[38;5;34m9,248\u001b[0m │ activation_20[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_45 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_50[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_21    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │            \u001b[38;5;34m128\u001b[0m │ cast_45[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_46 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_21             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_46[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_transpose_5        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │          \u001b[38;5;34m2,064\u001b[0m │ activation_21[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mConv2DTranspose\u001b[0m)         │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_3             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_transpose_5[\u001b[38;5;34m0\u001b[0m]… │\n│ (\u001b[38;5;33mConcatenate\u001b[0m)             │                        │                │ activation_15[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_51 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │          \u001b[38;5;34m4,624\u001b[0m │ concatenate_3[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_47 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_51[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_22    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │             \u001b[38;5;34m64\u001b[0m │ cast_47[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_48 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_22             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_48[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_52 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │          \u001b[38;5;34m2,320\u001b[0m │ activation_22[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_49 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_52[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_23    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │             \u001b[38;5;34m64\u001b[0m │ cast_49[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_50 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_23             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_50[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_53 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m1\u001b[0m)      │             \u001b[38;5;34m17\u001b[0m │ activation_23[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n└───────────────────────────┴────────────────────────┴────────────────┴────────────────────────┘\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃<span style=\"font-weight: bold\"> Layer (type)              </span>┃<span style=\"font-weight: bold\"> Output Shape           </span>┃<span style=\"font-weight: bold\">        Param # </span>┃<span style=\"font-weight: bold\"> Connected to           </span>┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ input_layer_10            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)      │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ -                      │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">InputLayer</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_30 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)      │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ input_layer_10[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]   │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_43 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">160</span> │ cast_30[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_31 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_43[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_14    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span> │ cast_31[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_32 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_14             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_32[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_44 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">2,320</span> │ activation_14[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_33 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_44[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_15    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span> │ cast_33[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_34 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_15             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_34[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_9           │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_15[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_45 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">4,640</span> │ max_pooling2d_9[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]  │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_35 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_45[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_16    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span> │ cast_35[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_36 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_16             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_36[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_46 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">9,248</span> │ activation_16[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_37 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_46[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_17    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span> │ cast_37[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_38 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_17             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_38[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_10          │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_17[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_47 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │         <span style=\"color: #00af00; text-decoration-color: #00af00\">18,496</span> │ max_pooling2d_10[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_39 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_47[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_18    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │            <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │ cast_39[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_40 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_18             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_40[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_48 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │         <span style=\"color: #00af00; text-decoration-color: #00af00\">36,928</span> │ activation_18[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_41 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_48[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_19    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │            <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │ cast_41[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_42 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_1… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_19             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_42[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_transpose_4        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">8,224</span> │ activation_19[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2DTranspose</span>)         │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_2             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_transpose_4[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Concatenate</span>)             │                        │                │ activation_17[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_49 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │         <span style=\"color: #00af00; text-decoration-color: #00af00\">18,464</span> │ concatenate_2[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_43 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_49[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_20    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span> │ cast_43[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_44 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_20             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_44[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_50 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">9,248</span> │ activation_20[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_45 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_50[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_21    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span> │ cast_45[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_46 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_21             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_46[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_transpose_5        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">2,064</span> │ activation_21[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2DTranspose</span>)         │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_3             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_transpose_5[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Concatenate</span>)             │                        │                │ activation_15[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_51 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">4,624</span> │ concatenate_3[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_47 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_51[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_22    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span> │ cast_47[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_48 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_22             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_48[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_52 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">2,320</span> │ activation_22[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_49 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_52[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_23    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span> │ cast_49[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_50 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_23             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_50[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_53 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)      │             <span style=\"color: #00af00; text-decoration-color: #00af00\">17</span> │ activation_23[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n└───────────────────────────┴────────────────────────┴────────────────┴────────────────────────┘\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m118,033\u001b[0m (233.03 KB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">118,033</span> (233.03 KB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m117,393\u001b[0m (230.53 KB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">117,393</span> (230.53 KB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m640\u001b[0m (2.50 KB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">640</span> (2.50 KB)\n</pre>\n"},"metadata":{}},{"name":"stdout","text":"Epoch 1/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m57s\u001b[0m 228ms/step\nEpoch 2/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 14ms/step\nEpoch 3/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 4/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 5/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 6/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 7/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 8/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 9/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 10/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 10ms/step\nEpoch 11/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 12/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 13/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 14/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 15/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 16/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 17/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 18/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 19/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 20/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\n","output_type":"stream"},{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)","\u001b[0;32m/tmp/ipykernel_35/1334638951.py\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     99\u001b[0m         \u001b[0mids\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfname\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\".npy\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    100\u001b[0m         \u001b[0mseis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest_dir\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat32\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 101\u001b[0;31m         \u001b[0mseis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mseis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m...\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    102\u001b[0m         \u001b[0mh\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mseis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    103\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mheight\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/numpy/core/fromnumeric.py\u001b[0m in \u001b[0;36mmean\u001b[0;34m(a, axis, dtype, out, keepdims, where)\u001b[0m\n\u001b[1;32m   3502\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3503\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3504\u001b[0;31m     return _methods._mean(a, axis=axis, dtype=dtype,\n\u001b[0m\u001b[1;32m   3505\u001b[0m                           out=out, **kwargs)\n\u001b[1;32m   3506\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/numpy/core/_methods.py\u001b[0m in \u001b[0;36m_mean\u001b[0;34m(a, axis, dtype, out, keepdims, where)\u001b[0m\n\u001b[1;32m    118\u001b[0m     \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mumr_sum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeepdims\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwhere\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mwhere\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    119\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mret\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmu\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndarray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 120\u001b[0;31m         \u001b[0;32mwith\u001b[0m \u001b[0m_no_nep50_warning\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    121\u001b[0m             ret = um.true_divide(\n\u001b[1;32m    122\u001b[0m                     ret, rcount, out=ret, casting='unsafe', subok=False)\n","\u001b[0;32m/usr/lib/python3.11/contextlib.py\u001b[0m in \u001b[0;36mhelper\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m    299\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0mwraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    300\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mhelper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 301\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0m_GeneratorContextManager\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    302\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mhelper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    303\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/lib/python3.11/contextlib.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, func, args, kwds)\u001b[0m\n\u001b[1;32m    103\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    104\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 105\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgen\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    106\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkwds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    107\u001b[0m         \u001b[0;31m# Issue 19330: ensure context manager instances have good docstrings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "],"ename":"KeyboardInterrupt","evalue":"","output_type":"error"}],"execution_count":15},{"cell_type":"code","source":"import os\nimport numpy as np\nimport tensorflow as tf\nfrom tensorflow.keras import Input, Model\nfrom tensorflow.keras.layers import Conv2D, Conv2DTranspose, MaxPooling2D, Concatenate, BatchNormalization, Activation\n\n# Mixed precision\nfrom tensorflow.keras import mixed_precision\nmixed_precision.set_global_policy('mixed_float16')\n\nfor gpu in tf.config.list_physical_devices('GPU'):\n    tf.config.experimental.set_memory_growth(gpu, True)\n\nPH, PW = 32, 32\nLIMIT = 2000\nBATCH_SIZE = 8\nSTEPS_PER_EPOCH = LIMIT // BATCH_SIZE\n\ndef train_gen(root, limit=None, ph=PH, pw=PW):\n    count = 0\n    for fld in os.listdir(root):\n        fp = os.path.join(root, fld)\n        if not os.path.isdir(fp): continue\n        for f in sorted(os.listdir(fp)):\n            if not f.startswith(\"seis\") or not f.endswith(\".npy\"): continue\n            seis = np.load(os.path.join(fp, f)).astype(np.float32)\n            vel = np.load(os.path.join(fp, f.replace(\"seis\",\"vel\"))).astype(np.float32)\n            seis = np.mean(seis, axis=-1)[..., None]\n            vel = np.mean(vel, axis=-1)\n            h, w = seis.shape[:2]\n            if h < ph or w < pw: continue\n            i = np.random.randint(0, h - ph + 1)\n            j = np.random.randint(0, w - pw + 1)\n            xs = seis[i:i+ph, j:j+pw, :]\n            ys = vel[i:i+ph, j:j+pw]\n            xs = (xs - xs.mean())/(xs.std()+1e-6)\n            ys = (ys - ys.min())/(ys.max()-ys.min()+1e-6)  # MinMax нормалізація цілі\n            yield xs, ys[..., None]\n            count += 1\n            if limit and count >= limit:\n                return\n\nds = tf.data.Dataset.from_generator(\n    lambda: train_gen(\"/kaggle/input/waveform-inversion/train_samples\", limit=LIMIT, ph=PH, pw=PW),\n    output_signature=(\n        tf.TensorSpec(shape=(PH, PW, 1), dtype=tf.float32),\n        tf.TensorSpec(shape=(PH, PW, 1), dtype=tf.float32),\n    )\n).shuffle(1000).batch(BATCH_SIZE).repeat().prefetch(tf.data.AUTOTUNE)\n\ndef conv_block(x, filters):\n    x = Conv2D(filters, 3, padding='same', dtype='float16')(x)\n    x = BatchNormalization(dtype='float32')(x)\n    x = Activation('relu')(x)\n    x = Conv2D(filters, 3, padding='same', dtype='float16')(x)\n    x = BatchNormalization(dtype='float32')(x)\n    x = Activation('relu')(x)\n    return x\n\ndef encoder_block(x, filters):\n    c = conv_block(x, filters)\n    p = MaxPooling2D()(c)\n    return c, p\n\ndef decoder_block(x, skip, filters):\n    x = Conv2DTranspose(filters, 2, strides=2, padding='same', dtype='float16')(x)\n    x = Concatenate()([x, skip])\n    x = conv_block(x, filters)\n    return x\n\ninp = Input((PH, PW, 1))\n\nc1, p1 = encoder_block(inp, 16)\nc2, p2 = encoder_block(p1, 32)\n\nb = conv_block(p2, 64)\n\nd1 = decoder_block(b, c2, 32)\nd2 = decoder_block(d1, c1, 16)\n\nout = Conv2D(1, 1, activation='sigmoid', dtype='float16')(d2)  # sigmoid бо ціль у [0,1]\n\nmodel = Model(inp, out)\nmodel.compile(optimizer='adam', loss='mse')\nmodel.summary()\n\nmodel.fit(ds, epochs=20, steps_per_epoch=STEPS_PER_EPOCH)\n\n# --- Прогноз (як раніше, з урахуванням нормалізації цілей) ---\n\ntest_dir = \"/kaggle/input/waveform-inversion/test\"\ncsv_path = \"submission.csv\"\n\nheight, width = None, None\nwith open(csv_path, \"w\") as f:\n    for fname in sorted(os.listdir(test_dir)):\n        if not fname.endswith(\".npy\"):\n            continue\n        ids = fname.replace(\".npy\", \"\")\n        seis = np.load(os.path.join(test_dir, fname)).astype(np.float32)\n        seis = np.mean(seis, axis=-1)[..., None]\n        h, w = seis.shape[:2]\n        if height is None:\n            height, width = h, w\n            header = [\"oid_ypos\"] + [f\"# x.{i}\" for i in range(1, width*2, 2)]\n            f.write(\",\".join(header) + \"\\n\")\n\n        pred = np.zeros((h, w), dtype=np.float32)\n        cnt = np.zeros((h, w), dtype=np.float32)\n\n        for i in range(0, h - PH + 1, PH // 2):\n            for j in range(0, w - PW + 1, PW // 2):\n                patch = seis[i:i+PH, j:j+PW, :]\n                patch = (patch - patch.mean())/(patch.std()+1e-6)\n                out_patch = model.predict(patch[None], verbose=0)[0,...,0]\n                # Денормалізація, якщо потрібно (залежить від методу нормалізації в тренуванні)\n                # Але поки залишаємо як є, бо true масштаб невідомий\n                pred[i:i+PH, j:j+PW] += out_patch\n                cnt[i:i+PH, j:j+PW] += 1\n\n        pred /= (cnt + 1e-6)\n        row = [ids] + pred[:, ::2].ravel().tolist()\n        f.write(\",\".join(map(str, row)) + \"\\n\")\n\nprint(\"✅ submission.csv збережено\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-18T14:04:26.14249Z","iopub.execute_input":"2025-06-18T14:04:26.142769Z","iopub.status.idle":"2025-06-18T14:23:25.805282Z","shell.execute_reply.started":"2025-06-18T14:04:26.142754Z","shell.execute_reply":"2025-06-18T14:23:25.802972Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"\u001b[1mModel: \"functional_10\"\u001b[0m\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"functional_10\"</span>\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃\u001b[1m \u001b[0m\u001b[1mLayer (type)             \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape          \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m       Param #\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mConnected to          \u001b[0m\u001b[1m \u001b[0m┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ input_layer_11            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m1\u001b[0m)      │              \u001b[38;5;34m0\u001b[0m │ -                      │\n│ (\u001b[38;5;33mInputLayer\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_51 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m1\u001b[0m)      │              \u001b[38;5;34m0\u001b[0m │ input_layer_11[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]   │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_54 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │            \u001b[38;5;34m160\u001b[0m │ cast_51[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_52 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_54[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_24    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │             \u001b[38;5;34m64\u001b[0m │ cast_52[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_53 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_24             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_53[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_55 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │          \u001b[38;5;34m2,320\u001b[0m │ activation_24[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_54 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_55[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_25    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │             \u001b[38;5;34m64\u001b[0m │ cast_54[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_55 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_25             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_55[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_11          │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ activation_25[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mMaxPooling2D\u001b[0m)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_56 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │          \u001b[38;5;34m4,640\u001b[0m │ max_pooling2d_11[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_56 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_56[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_26    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │            \u001b[38;5;34m128\u001b[0m │ cast_56[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_57 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_26             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_57[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_57 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │          \u001b[38;5;34m9,248\u001b[0m │ activation_26[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_58 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_57[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_27    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │            \u001b[38;5;34m128\u001b[0m │ cast_58[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_59 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_27             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_59[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_12          │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m32\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ activation_27[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mMaxPooling2D\u001b[0m)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_58 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │         \u001b[38;5;34m18,496\u001b[0m │ max_pooling2d_12[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_60 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ conv2d_58[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_28    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │            \u001b[38;5;34m256\u001b[0m │ cast_60[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_61 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_28             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ cast_61[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_59 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │         \u001b[38;5;34m36,928\u001b[0m │ activation_28[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_62 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ conv2d_59[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_29    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │            \u001b[38;5;34m256\u001b[0m │ cast_62[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_63 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_29             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │              \u001b[38;5;34m0\u001b[0m │ cast_63[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_transpose_6        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │          \u001b[38;5;34m8,224\u001b[0m │ activation_29[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mConv2DTranspose\u001b[0m)         │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_4             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_transpose_6[\u001b[38;5;34m0\u001b[0m]… │\n│ (\u001b[38;5;33mConcatenate\u001b[0m)             │                        │                │ activation_27[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_60 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │         \u001b[38;5;34m18,464\u001b[0m │ concatenate_4[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_64 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_60[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_30    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │            \u001b[38;5;34m128\u001b[0m │ cast_64[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_65 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_3… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_30             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_65[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_61 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │          \u001b[38;5;34m9,248\u001b[0m │ activation_30[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_66 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_61[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_31    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │            \u001b[38;5;34m128\u001b[0m │ cast_66[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_67 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_3… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_31             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_67[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_transpose_7        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │          \u001b[38;5;34m2,064\u001b[0m │ activation_31[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mConv2DTranspose\u001b[0m)         │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_5             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_transpose_7[\u001b[38;5;34m0\u001b[0m]… │\n│ (\u001b[38;5;33mConcatenate\u001b[0m)             │                        │                │ activation_25[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_62 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │          \u001b[38;5;34m4,624\u001b[0m │ concatenate_5[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_68 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_62[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_32    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │             \u001b[38;5;34m64\u001b[0m │ cast_68[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_69 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_3… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_32             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_69[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_63 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │          \u001b[38;5;34m2,320\u001b[0m │ activation_32[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_70 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_63[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_33    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │             \u001b[38;5;34m64\u001b[0m │ cast_70[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mBatchNormalization\u001b[0m)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_71 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ batch_normalization_3… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_33             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ cast_71[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n│ (\u001b[38;5;33mActivation\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_64 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m1\u001b[0m)      │             \u001b[38;5;34m17\u001b[0m │ activation_33[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n└───────────────────────────┴────────────────────────┴────────────────┴────────────────────────┘\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃<span style=\"font-weight: bold\"> Layer (type)              </span>┃<span style=\"font-weight: bold\"> Output Shape           </span>┃<span style=\"font-weight: bold\">        Param # </span>┃<span style=\"font-weight: bold\"> Connected to           </span>┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ input_layer_11            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)      │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ -                      │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">InputLayer</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_51 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)      │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ input_layer_11[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]   │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_54 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">160</span> │ cast_51[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_52 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_54[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_24    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span> │ cast_52[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_53 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_24             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_53[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_55 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">2,320</span> │ activation_24[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_54 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_55[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_25    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span> │ cast_54[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_55 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_25             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_55[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_11          │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_25[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_56 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">4,640</span> │ max_pooling2d_11[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_56 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_56[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_26    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span> │ cast_56[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_57 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_26             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_57[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_57 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">9,248</span> │ activation_26[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_58 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_57[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_27    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span> │ cast_58[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_59 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_27             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_59[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_12          │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_27[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_58 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │         <span style=\"color: #00af00; text-decoration-color: #00af00\">18,496</span> │ max_pooling2d_12[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_60 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_58[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_28    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │            <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │ cast_60[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_61 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_28             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_61[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_59 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │         <span style=\"color: #00af00; text-decoration-color: #00af00\">36,928</span> │ activation_28[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_62 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_59[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_29    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │            <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │ cast_62[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_63 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_2… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_29             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">8</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_63[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_transpose_6        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">8,224</span> │ activation_29[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2DTranspose</span>)         │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_4             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_transpose_6[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Concatenate</span>)             │                        │                │ activation_27[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_60 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │         <span style=\"color: #00af00; text-decoration-color: #00af00\">18,464</span> │ concatenate_4[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_64 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_60[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_30    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span> │ cast_64[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_65 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_3… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_30             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_65[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_61 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">9,248</span> │ activation_30[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_66 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_61[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_31    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span> │ cast_66[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_67 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_3… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_31             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_67[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_transpose_7        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">2,064</span> │ activation_31[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2DTranspose</span>)         │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_5             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_transpose_7[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Concatenate</span>)             │                        │                │ activation_25[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_62 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">4,624</span> │ concatenate_5[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_68 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_62[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_32    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span> │ cast_68[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_69 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_3… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_32             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_69[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_63 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">2,320</span> │ activation_32[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_70 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_63[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ batch_normalization_33    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span> │ cast_70[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)      │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_71 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalization_3… │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ activation_33             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ cast_71[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_64 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)      │             <span style=\"color: #00af00; text-decoration-color: #00af00\">17</span> │ activation_33[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n└───────────────────────────┴────────────────────────┴────────────────┴────────────────────────┘\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m118,033\u001b[0m (233.03 KB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">118,033</span> (233.03 KB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m117,393\u001b[0m (230.53 KB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">117,393</span> (230.53 KB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m640\u001b[0m (2.50 KB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">640</span> (2.50 KB)\n</pre>\n"},"metadata":{}},{"name":"stdout","text":"Epoch 1/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 63ms/step\nEpoch 2/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 15ms/step\nEpoch 3/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 21ms/step\nEpoch 4/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m33s\u001b[0m 132ms/step\nEpoch 5/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 6/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 7/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 8/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 9/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 10ms/step\nEpoch 10/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 10ms/step\nEpoch 11/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 12/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 13/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 14/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 15/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 16/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 10ms/step\nEpoch 17/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 21ms/step\nEpoch 18/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 19/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\nEpoch 20/20\n\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 11ms/step\n✅ submission.csv збережено\n","output_type":"stream"}],"execution_count":18},{"cell_type":"code","source":"import os\n\ncsv_path = \"submission.csv\"\nif os.path.exists(csv_path):\n    os.remove(csv_path)\n    print(f\"{csv_path} видалено\")\nelse:\n    print(f\"{csv_path} не знайдено\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-18T14:03:21.516775Z","iopub.execute_input":"2025-06-18T14:03:21.517071Z","iopub.status.idle":"2025-06-18T14:03:21.522474Z","shell.execute_reply.started":"2025-06-18T14:03:21.517053Z","shell.execute_reply":"2025-06-18T14:03:21.521722Z"}},"outputs":[{"name":"stdout","text":"submission.csv не знайдено\n","output_type":"stream"}],"execution_count":17},{"cell_type":"code","source":"import shutil\n\n# Створюємо ZIP-файл з submission.csv\nshutil.make_archive('/kaggle/working/submission', 'zip', '/kaggle/working', 'submission.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-18T14:34:46.090222Z","iopub.execute_input":"2025-06-18T14:34:46.091883Z","iopub.status.idle":"2025-06-18T14:34:50.300318Z","shell.execute_reply.started":"2025-06-18T14:34:46.091844Z","shell.execute_reply":"2025-06-18T14:34:50.299344Z"}},"outputs":[{"execution_count":21,"output_type":"execute_result","data":{"text/plain":"'/kaggle/working/submission.zip'"},"metadata":{}}],"execution_count":21},{"cell_type":"code","source":"# !pip install -q tensorflow  # розкоментуй у Colab\nimport os\nimport numpy as np\nimport tensorflow as tf\n\n# — Параметри\nPH, PW = 64, 64\nLIMIT = 500  # скільки патчів зберегти\nDATA_DIR = \"/kaggle/input/waveform-inversion/train_samples\"\nTFRECORD_PATH = \"/kaggle/working/train_patches.tfrecord\"\n\n# — Генератор патчів\ndef generate_patches(root, limit=None, ph=64, pw=64):\n    count = 0\n    for fld in os.listdir(root):\n        path = os.path.join(root, fld)\n        if not os.path.isdir(path): continue\n        for file in sorted(os.listdir(path)):\n            if not file.startswith(\"seis\") or not file.endswith(\".npy\"): continue\n            seis = np.load(os.path.join(path, file)).astype(np.float32)\n            vel = np.load(os.path.join(path, file.replace(\"seis\", \"vel\"))).astype(np.float32)\n            seis = np.mean(seis, axis=-1)[..., None]\n            vel = np.mean(vel, axis=-1)\n            h, w = seis.shape[:2]\n            if h < ph or w < pw: continue\n            i = np.random.randint(0, h - ph + 1)\n            j = np.random.randint(0, w - pw + 1)\n            patch_x = seis[i:i+ph, j:j+pw, :]\n            patch_y = vel[i:i+ph, j:j+pw]\n            patch_x = (patch_x - patch_x.mean()) / (patch_x.std() + 1e-6)\n            yield patch_x.astype(np.float16), patch_y.astype(np.float16)\n            count += 1\n            if limit and count >= limit:\n                return\n\n# — Запис у TFRecord\ndef write_tfrecord(filename, generator):\n    with tf.io.TFRecordWriter(filename) as writer:\n        for x, y in generator:\n            feature = {\n                'x': tf.train.Feature(bytes_list=tf.train.BytesList(value=[x.tobytes()])),\n                'y': tf.train.Feature(bytes_list=tf.train.BytesList(value=[y.tobytes()])),\n            }\n            example = tf.train.Example(features=tf.train.Features(feature=feature))\n            writer.write(example.SerializeToString())\n\n# — Виконати\nwrite_tfrecord(TFRECORD_PATH, generate_patches(DATA_DIR, limit=LIMIT, ph=PH, pw=PW))\nprint(\"✅ TFRecord збережено:\", TFRECORD_PATH)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-18T14:43:03.593902Z","iopub.execute_input":"2025-06-18T14:43:03.594193Z","iopub.status.idle":"2025-06-18T14:43:48.100617Z","shell.execute_reply.started":"2025-06-18T14:43:03.594175Z","shell.execute_reply":"2025-06-18T14:43:48.099433Z"}},"outputs":[{"name":"stdout","text":"✅ TFRecord збережено: /kaggle/working/train_patches.tfrecord\n","output_type":"stream"}],"execution_count":23},{"cell_type":"code","source":"import os\nimport numpy as np\nimport tensorflow as tf\nfrom tensorflow.keras import Input, Model\nfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, UpSampling2D, Concatenate\n\n# --- GPU пам'ять ---\nfor gpu in tf.config.list_physical_devices('GPU'):\n    tf.config.experimental.set_memory_growth(gpu, True)\n\n# --- Параметри ---\nPH, PW = 64, 64     # Розмір патчів\nLIMIT = 200         # Кількість патчів\nB = 4               # Розмір батчу\nSTEPS = LIMIT // B  # Кількість кроків на епоху\n\n# --- Генератор даних ---\ndef train_gen(root, limit=None, ph=64, pw=64):\n    count = 0\n    for fld in os.listdir(root):\n        fp = os.path.join(root, fld)\n        if not os.path.isdir(fp): continue\n        for f in sorted(os.listdir(fp)):\n            if not f.startswith(\"seis\") or not f.endswith(\".npy\"): continue\n            seis = np.load(os.path.join(fp, f)).astype(np.float32)\n            vel = np.load(os.path.join(fp, f.replace(\"seis\",\"vel\"))).astype(np.float32)\n            seis = np.mean(seis, axis=-1)[..., None]\n            vel = np.mean(vel, axis=-1)\n            h, w = seis.shape[:2]\n            if h < ph or w < pw: continue\n            i = np.random.randint(0, h - ph + 1)\n            j = np.random.randint(0, w - pw + 1)\n            xs = seis[i:i+ph, j:j+pw, :]\n            ys = vel[i:i+ph, j:j+pw]\n            xs = (xs - xs.mean()) / (xs.std() + 1e-6)\n            yield xs, ys\n            count += 1\n            if limit and count >= limit: return\n\n# --- Dataset ---\nds = tf.data.Dataset.from_generator(\n    lambda: train_gen(\"/kaggle/input/waveform-inversion/train_samples\", limit=LIMIT, ph=PH, pw=PW),\n    output_signature=(\n        tf.TensorSpec(shape=(PH, PW, 1), dtype=tf.float32),\n        tf.TensorSpec(shape=(PH, PW), dtype=tf.float32),\n    )\n).batch(B).repeat().prefetch(tf.data.AUTOTUNE)\n\n# --- Модель ---\ninp = Input((PH, PW, 1))\nx1 = Conv2D(16, 3, activation='relu', padding='same')(inp)\nx2 = MaxPooling2D()(x1)\nx2 = Conv2D(32, 3, activation='relu', padding='same')(x2)\nx3 = MaxPooling2D()(x2)\nx3 = Conv2D(64, 3, activation='relu', padding='same')(x3)\nx = UpSampling2D()(x3)\nx = Concatenate()([x, x2])\nx = Conv2D(32, 3, activation='relu', padding='same')(x)\nx = UpSampling2D()(x)\nx = Concatenate()([x, x1])\nx = Conv2D(16, 3, activation='relu', padding='same')(x)\nout = Conv2D(1, 1, activation='linear', padding='same')(x)\n\nmodel = Model(inp, out)\nmodel.compile(optimizer='adam', loss='mse')\nmodel.summary()\n\n# --- Навчання ---\nmodel.fit(ds, epochs=10, steps_per_epoch=STEPS)\n\n# --- Прогноз ---\ntest_dir = \"/kaggle/input/waveform-inversion/test\"\ncsv_path = \"submission.csv\"\n\nheight, width = None, None\nwith open(csv_path, \"w\") as f:\n    for fname in sorted(os.listdir(test_dir)):\n        if not fname.endswith(\".npy\"): continue\n        ids = fname.replace(\".npy\", \"\")\n        seis = np.load(os.path.join(test_dir, fname)).astype(np.float32)\n        seis = np.mean(seis, axis=-1)[..., None]\n        h, w = seis.shape[:2]\n        if height is None:\n            height, width = h, w\n            header = [\"oid_ypos\"] + [f\"# x.{i}\" for i in range(1, width*2, 2)]\n            f.write(\",\".join(header) + \"\\n\")\n        pred = np.zeros((h, w), np.float32)\n        cnt = np.zeros((h, w), np.float32)\n        for i in range(0, h-PH+1, PH//2):\n            for j in range(0, w-PW+1, PW//2):\n                patch = seis[i:i+PH, j:j+PW, :]\n                patch = (patch - patch.mean()) / (patch.std() + 1e-6)\n                out_patch = model.predict(patch[None], verbose=0)[0,...,0]\n                pred[i:i+PH, j:j+PW] += out_patch\n                cnt[i:i+PH, j:j+PW] += 1\n        pred /= (cnt + 1e-6)\n        row = [ids] + pred[:, ::2].ravel().tolist()\n        f.write(\",\".join(map(str, row)) + \"\\n\")\n\nprint(\"✅ submission.csv збережено\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-18T14:46:33.552625Z","iopub.execute_input":"2025-06-18T14:46:33.552928Z","iopub.status.idle":"2025-06-18T15:06:34.075071Z","shell.execute_reply.started":"2025-06-18T14:46:33.55291Z","shell.execute_reply":"2025-06-18T15:06:34.072752Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"\u001b[1mModel: \"functional_12\"\u001b[0m\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"functional_12\"</span>\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃\u001b[1m \u001b[0m\u001b[1mLayer (type)             \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape          \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m       Param #\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mConnected to          \u001b[0m\u001b[1m \u001b[0m┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ input_layer_13            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m1\u001b[0m)      │              \u001b[38;5;34m0\u001b[0m │ -                      │\n│ (\u001b[38;5;33mInputLayer\u001b[0m)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_73 (\u001b[38;5;33mCast\u001b[0m)            │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m1\u001b[0m)      │              \u001b[38;5;34m0\u001b[0m │ input_layer_13[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]   │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_71 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │            \u001b[38;5;34m160\u001b[0m │ cast_73[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]          │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_15          │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_71[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n│ (\u001b[38;5;33mMaxPooling2D\u001b[0m)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_72 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │          \u001b[38;5;34m4,640\u001b[0m │ max_pooling2d_15[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_16          │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_72[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n│ (\u001b[38;5;33mMaxPooling2D\u001b[0m)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_73 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m)     │         \u001b[38;5;34m18,496\u001b[0m │ max_pooling2d_16[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ up_sampling2d_9           │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m64\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_73[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n│ (\u001b[38;5;33mUpSampling2D\u001b[0m)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_8             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m96\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ up_sampling2d_9[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m], │\n│ (\u001b[38;5;33mConcatenate\u001b[0m)             │                        │                │ conv2d_72[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_74 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │         \u001b[38;5;34m27,680\u001b[0m │ concatenate_8[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ up_sampling2d_10          │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ conv2d_74[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n│ (\u001b[38;5;33mUpSampling2D\u001b[0m)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_9             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m48\u001b[0m)     │              \u001b[38;5;34m0\u001b[0m │ up_sampling2d_10[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m… │\n│ (\u001b[38;5;33mConcatenate\u001b[0m)             │                        │                │ conv2d_71[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_75 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │          \u001b[38;5;34m6,928\u001b[0m │ concatenate_9[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_76 (\u001b[38;5;33mConv2D\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m1\u001b[0m)      │             \u001b[38;5;34m17\u001b[0m │ conv2d_75[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n└───────────────────────────┴────────────────────────┴────────────────┴────────────────────────┘\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃<span style=\"font-weight: bold\"> Layer (type)              </span>┃<span style=\"font-weight: bold\"> Output Shape           </span>┃<span style=\"font-weight: bold\">        Param # </span>┃<span style=\"font-weight: bold\"> Connected to           </span>┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ input_layer_13            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)      │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ -                      │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">InputLayer</span>)              │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ cast_73 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)            │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)      │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ input_layer_13[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]   │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_71 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │            <span style=\"color: #00af00; text-decoration-color: #00af00\">160</span> │ cast_73[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]          │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_15          │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_71[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_72 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">4,640</span> │ max_pooling2d_15[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ max_pooling2d_16          │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_72[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_73 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)     │         <span style=\"color: #00af00; text-decoration-color: #00af00\">18,496</span> │ max_pooling2d_16[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>] │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ up_sampling2d_9           │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_73[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">UpSampling2D</span>)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_8             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">96</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ up_sampling2d_9[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>], │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Concatenate</span>)             │                        │                │ conv2d_72[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_74 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │         <span style=\"color: #00af00; text-decoration-color: #00af00\">27,680</span> │ concatenate_8[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ up_sampling2d_10          │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ conv2d_74[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">UpSampling2D</span>)            │                        │                │                        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ concatenate_9             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">48</span>)     │              <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ up_sampling2d_10[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Concatenate</span>)             │                        │                │ conv2d_71[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_75 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │          <span style=\"color: #00af00; text-decoration-color: #00af00\">6,928</span> │ concatenate_9[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n│ conv2d_76 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)      │             <span style=\"color: #00af00; text-decoration-color: #00af00\">17</span> │ conv2d_75[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n└───────────────────────────┴────────────────────────┴────────────────┴────────────────────────┘\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m57,921\u001b[0m (226.25 KB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">57,921</span> (226.25 KB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m57,921\u001b[0m (226.25 KB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">57,921</span> (226.25 KB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n</pre>\n"},"metadata":{}},{"name":"stdout","text":"Epoch 1/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 770ms/step\nEpoch 2/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 53ms/step\nEpoch 3/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 53ms/step\nEpoch 4/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 53ms/step\nEpoch 5/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 54ms/step\nEpoch 6/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 52ms/step\nEpoch 7/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 52ms/step\nEpoch 8/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 52ms/step\nEpoch 9/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 53ms/step\nEpoch 10/10\n\u001b[1m50/50\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 53ms/step\n✅ submission.csv збережено\n","output_type":"stream"}],"execution_count":25},{"cell_type":"code","source":"import os\n\nfiles_to_delete = [\n    \"/kaggle/working/submission.csv\",\n    \"/kaggle/working/train_patches.tfrecord\",\n    \"/kaggle/working/unet_model.h5\"\n]\n\nfor f in files_to_delete:\n    if os.path.exists(f):\n        os.remove(f)\n        print(f\"✅ Видалено: {f}\")\n    else:\n        print(f\"❌ Не знайдено: {f}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T08:13:36.263094Z","iopub.execute_input":"2025-06-19T08:13:36.263476Z","iopub.status.idle":"2025-06-19T08:13:36.358325Z","shell.execute_reply.started":"2025-06-19T08:13:36.263454Z","shell.execute_reply":"2025-06-19T08:13:36.357351Z"}},"outputs":[{"name":"stdout","text":"✅ Видалено: /kaggle/working/submission.csv\n❌ Не знайдено: /kaggle/working/train_patches.tfrecord\n❌ Не знайдено: /kaggle/working/unet_model.h5\n","output_type":"stream"}],"execution_count":26},{"cell_type":"code","source":"import os\nimport numpy as np\nimport tensorflow as tf\n\nPH, PW = 64, 64\nLIMIT = 10000  # можна змінити на більше для кращої якості\nDATA_DIR = \"/kaggle/input/waveform-inversion/train_samples\"\nTFRECORD_PATH = \"/kaggle/working/train_patches.tfrecord\"\n\ndef generate_patches(root, limit=None, ph=64, pw=64):\n    count = 0\n    for folder in sorted(os.listdir(root)):\n        path = os.path.join(root, folder)\n        if not os.path.isdir(path):\n            continue\n        for fname in sorted(os.listdir(path)):\n            if not fname.startswith(\"seis\") or not fname.endswith(\".npy\"):\n                continue\n\n            seis_path = os.path.join(path, fname)\n            vel_path = seis_path.replace(\"seis\", \"vel\")\n            if not os.path.exists(vel_path):\n                continue\n\n            seis = np.load(seis_path).astype(np.float32)\n            vel = np.load(vel_path).astype(np.float32)\n\n            seis = np.mean(seis, axis=-1)[..., None]  # (H, W, 1)\n            vel = np.mean(vel, axis=-1)  # (H, W)\n\n            h, w = seis.shape[:2]\n            if h < ph or w < pw:\n                continue\n\n            i = np.random.randint(0, h - ph + 1)\n            j = np.random.randint(0, w - pw + 1)\n            patch_x = seis[i:i+ph, j:j+pw, :]\n            patch_y = vel[i:i+ph, j:j+pw]\n\n            std = patch_x.std()\n            if std < 1e-6:\n                continue\n            patch_x = (patch_x - patch_x.mean()) / std\n\n            if np.isnan(patch_x).any() or np.isinf(patch_x).any():\n                continue\n            if np.isnan(patch_y).any() or np.isinf(patch_y).any():\n                continue\n\n            patch_x = patch_x.astype(np.float16)\n            patch_y = patch_y.astype(np.float16)\n\n            yield patch_x, patch_y\n\n            count += 1\n            if limit and count >= limit:\n                return\n\ndef write_tfrecord(filename, generator):\n    with tf.io.TFRecordWriter(filename) as writer:\n        for x, y in generator:\n            feature = {\n                'x': tf.train.Feature(bytes_list=tf.train.BytesList(value=[x.tobytes()])),\n                'y': tf.train.Feature(bytes_list=tf.train.BytesList(value=[y.tobytes()])),\n            }\n            example = tf.train.Example(features=tf.train.Features(feature=feature))\n            writer.write(example.SerializeToString())\n\n# ▶️ Виклик\nwrite_tfrecord(TFRECORD_PATH, generate_patches(DATA_DIR, limit=LIMIT, ph=PH, pw=PW))\nprint(\"✅ TFRecord збережено:\", TFRECORD_PATH)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T07:04:58.531247Z","iopub.execute_input":"2025-06-19T07:04:58.531658Z","iopub.status.idle":"2025-06-19T07:05:42.235536Z","shell.execute_reply.started":"2025-06-19T07:04:58.531629Z","shell.execute_reply":"2025-06-19T07:05:42.234727Z"}},"outputs":[{"name":"stdout","text":"✅ TFRecord збережено: /kaggle/working/train_patches.tfrecord\n","output_type":"stream"}],"execution_count":15},{"cell_type":"code","source":"import tensorflow as tf\nfrom tensorflow.keras import Input, Model\nfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, UpSampling2D, Concatenate\n\nPH, PW = 64, 64\nBATCH_SIZE = 8\nEPOCHS = 10\nTFRECORD_PATH = \"/kaggle/working/train_patches.tfrecord\"\n\ndef parse_example(example_proto):\n    features = {\n        'x': tf.io.FixedLenFeature([], tf.string),\n        'y': tf.io.FixedLenFeature([], tf.string)\n    }\n    parsed = tf.io.parse_single_example(example_proto, features)\n    x = tf.io.decode_raw(parsed['x'], tf.float16)\n    y = tf.io.decode_raw(parsed['y'], tf.float16)\n    x = tf.reshape(x, [PH, PW, 1])\n    y = tf.reshape(y, [PH, PW, 1])\n    return tf.cast(x, tf.float32), tf.cast(y, tf.float32)\n\nds = (\n    tf.data.TFRecordDataset([TFRECORD_PATH])\n    .map(parse_example, num_parallel_calls=tf.data.AUTOTUNE)\n    .shuffle(1000)\n    .batch(BATCH_SIZE)\n    .prefetch(tf.data.AUTOTUNE)\n)\n\n# --- U-Net-подібна архітектура ---\ndef build_model():\n    inp = Input((PH, PW, 1))\n\n    c1 = Conv2D(16, 3, activation=\"relu\", padding=\"same\")(inp)\n    p1 = MaxPooling2D()(c1)\n\n    c2 = Conv2D(32, 3, activation=\"relu\", padding=\"same\")(p1)\n    p2 = MaxPooling2D()(c2)\n\n    c3 = Conv2D(64, 3, activation=\"relu\", padding=\"same\")(p2)\n\n    u2 = UpSampling2D()(c3)\n    u2 = Concatenate()([u2, c2])\n    c4 = Conv2D(32, 3, activation=\"relu\", padding=\"same\")(u2)\n\n    u1 = UpSampling2D()(c4)\n    u1 = Concatenate()([u1, c1])\n    c5 = Conv2D(16, 3, activation=\"relu\", padding=\"same\")(u1)\n\n    out = Conv2D(1, 1, activation=\"linear\", padding=\"same\")(c5)\n\n    return Model(inp, out)\n\n# --- Компіляція та навчання ---\nmodel = build_model()\nmodel.compile(optimizer='adam', loss='mse')\nmodel.fit(ds, epochs=EPOCHS, steps_per_epoch=100)\nmodel.save(\"/kaggle/working/unet_model.h5\", include_optimizer=False)\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T07:09:46.166348Z","iopub.execute_input":"2025-06-19T07:09:46.166657Z","iopub.status.idle":"2025-06-19T07:09:50.4176Z","shell.execute_reply.started":"2025-06-19T07:09:46.166636Z","shell.execute_reply":"2025-06-19T07:09:50.416745Z"}},"outputs":[{"name":"stdout","text":"Epoch 1/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 38ms/step\nEpoch 2/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 235us/step\nEpoch 3/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 273us/step\nEpoch 4/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 223us/step\nEpoch 5/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 229us/step\nEpoch 6/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 219us/step\nEpoch 7/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 228us/step\nEpoch 8/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 213us/step\nEpoch 9/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 225us/step\nEpoch 10/10\n\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 218us/step\n","output_type":"stream"}],"execution_count":19},{"cell_type":"code","source":"import os\nimport numpy as np\nimport pandas as pd\nimport tensorflow as tf\nfrom tensorflow.keras.models import load_model\n\nPH, PW = 64, 64\nMODEL_PATH = \"/kaggle/working/unet_model.h5\"\nTEST_DIR = \"/kaggle/input/waveform-inversion/test\"\nSUBMISSION_PATH = \"/kaggle/working/submission.csv\"\n\nmodel = load_model(MODEL_PATH)\n\nheader_written = False\nwith open(SUBMISSION_PATH, \"w\") as f:\n    for fname in sorted(os.listdir(TEST_DIR)):\n        if not fname.endswith(\".npy\"):\n            continue\n        base_id = fname.replace(\".npy\", \"\")\n        seis = np.load(os.path.join(TEST_DIR, fname)).astype(np.float32)\n        seis = np.mean(seis, axis=-1)[..., None]\n        h, w = seis.shape[:2]\n\n        pred = np.zeros((h, w), dtype=np.float32)\n        count = np.zeros((h, w), dtype=np.float32)\n\n        for i in range(0, h - PH + 1, PH // 2):\n            for j in range(0, w - PW + 1, PW // 2):\n                patch = seis[i:i+PH, j:j+PW, :]\n                std = patch.std()\n                if std < 1e-6:\n                    std = 1e-6\n                patch = (patch - patch.mean()) / std\n                pred_patch = model.predict(patch[None], verbose=0)[0, ..., 0]\n                pred[i:i+PH, j:j+PW] += pred_patch\n                count[i:i+PH, j:j+PW] += 1\n\n        pred = pred / (count + 1e-6)\n        pred = np.nan_to_num(pred, nan=0.0, posinf=0.0, neginf=0.0)\n\n        if not header_written:\n            n_cols = pred.shape[1] // 2\n            header = [\"oid_ypos\"] + [f\"x_{i*2+1}\" for i in range(n_cols)]\n            f.write(\",\".join(header) + \"\\n\")\n            header_written = True\n\n        for y in range(pred.shape[0]):\n            row_id = f\"{base_id}_y_{y}\"\n            values = pred[y, ::2].tolist()\n            values = [0.0 if (np.isnan(v) or np.isinf(v)) else v for v in values]\n            if len(values) != n_cols:\n                continue\n            f.write(\",\".join([row_id] + list(map(str, values))) + \"\\n\")\n\n# Перевірка:\ndf = pd.read_csv(SUBMISSION_PATH)\nprint(\"✅ submission.csv рядків:\", df.shape[0])\nprint(\"✅ Кількість колонок:\", df.shape[1])\nassert df.shape[1] == 1 + n_cols\nassert not df.isnull().values.any()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T07:09:57.121595Z","iopub.execute_input":"2025-06-19T07:09:57.123071Z","iopub.status.idle":"2025-06-19T07:37:14.402776Z","shell.execute_reply.started":"2025-06-19T07:09:57.123019Z","shell.execute_reply":"2025-06-19T07:37:14.40168Z"}},"outputs":[{"name":"stdout","text":"✅ submission.csv рядків: 329090\n✅ Кількість колонок: 501\n","output_type":"stream"}],"execution_count":20},{"cell_type":"code","source":"import pandas as pd\n\ndf = pd.read_csv(\"submission.csv\")\n\nassert not df.isnull().values.any(), \"❌ Є NaN у submission!\"\nprint(\"✅ CSV готовий до сабміту\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T07:40:19.14273Z","iopub.execute_input":"2025-06-19T07:40:19.143253Z","iopub.status.idle":"2025-06-19T07:40:35.569961Z","shell.execute_reply.started":"2025-06-19T07:40:19.143221Z","shell.execute_reply":"2025-06-19T07:40:35.569125Z"}},"outputs":[{"name":"stdout","text":"✅ CSV готовий до сабміту\n","output_type":"stream"}],"execution_count":21},{"cell_type":"code","source":"import pandas as pd\ndf = pd.read_csv(\"/kaggle/working/submission.csv\")\nprint(df.head())\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T07:40:55.145476Z","iopub.execute_input":"2025-06-19T07:40:55.145828Z","iopub.status.idle":"2025-06-19T07:41:10.005794Z","shell.execute_reply.started":"2025-06-19T07:40:55.145803Z","shell.execute_reply":"2025-06-19T07:41:10.004729Z"}},"outputs":[{"name":"stdout","text":"         oid_ypos  x_1  x_3  x_5  x_7  x_9  x_11  x_13  x_15  x_17  ...  \\\n0  000039dca2_y_0  0.0  0.0  0.0  0.0  0.0   0.0   0.0   0.0   0.0  ...   \n1  000039dca2_y_1  0.0  0.0  0.0  0.0  0.0   0.0   0.0   0.0   0.0  ...   \n2  000039dca2_y_2  0.0  0.0  0.0  0.0  0.0   0.0   0.0   0.0   0.0  ...   \n3  000039dca2_y_3  0.0  0.0  0.0  0.0  0.0   0.0   0.0   0.0   0.0  ...   \n4  000039dca2_y_4  0.0  0.0  0.0  0.0  0.0   0.0   0.0   0.0   0.0  ...   \n\n   x_981  x_983  x_985  x_987  x_989  x_991  x_993  x_995  x_997  x_999  \n0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0  \n1    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0  \n2    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0  \n3    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0  \n4    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0  \n\n[5 rows x 501 columns]\n","output_type":"stream"}],"execution_count":22},{"cell_type":"code","source":"!kaggle competitions submit -c waveform-inversion -f /kaggle/working/submission.csv -m \"My submission\"","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T07:43:06.899357Z","iopub.execute_input":"2025-06-19T07:43:06.900414Z","iopub.status.idle":"2025-06-19T07:43:14.801472Z","shell.execute_reply.started":"2025-06-19T07:43:06.900363Z","shell.execute_reply":"2025-06-19T07:43:14.800259Z"}},"outputs":[{"name":"stdout","text":"100%|█████████████████████████████████████████| 632M/632M [00:04<00:00, 139MB/s]\nSuccessfully submitted to  Yale/UNC-CH - Geophysical Waveform Inversion","output_type":"stream"}],"execution_count":23},{"cell_type":"code","source":"import os\nimport glob\nimport numpy as np\nimport torch\nfrom torch.utils.data import Dataset, DataLoader\n\nPH, PW = 64, 64\nDATA_DIR = \"/kaggle/input/waveform-inversion/train_samples\"\n\nclass WaveformDataset(Dataset):\n    def __init__(self, root_dir, patch_height=64, patch_width=64, max_files=None):\n        self.patch_height = patch_height\n        self.patch_width = patch_width\n        self.samples = []\n\n        folders = sorted(os.listdir(root_dir))\n        for folder in folders:\n            folder_path = os.path.join(root_dir, folder)\n            if not os.path.isdir(folder_path):\n                continue\n\n            files = sorted(os.listdir(folder_path))\n            for fname in files:\n                if fname.startswith(\"seis\") and fname.endswith(\".npy\"):\n                    seis_path = os.path.join(folder_path, fname)\n                    vel_path = os.path.join(folder_path, fname.replace(\"seis\", \"vel\"))\n                    if os.path.exists(vel_path):\n                        self.samples.append((seis_path, vel_path))\n\n                if max_files and len(self.samples) >= max_files:\n                    break\n            if max_files and len(self.samples) >= max_files:\n                break\n\n    def __len__(self):\n        return len(self.samples)\n\n    def __getitem__(self, idx):\n        seis_path, vel_path = self.samples[idx]\n        seis = np.load(seis_path).astype(np.float32)\n        vel = np.load(vel_path).astype(np.float32)\n\n        seis = np.mean(seis, axis=-1)[..., None]  # shape: (h, w, 1)\n        vel = np.mean(vel, axis=-1)[..., None]    # shape: (h, w, 1)\n\n        h, w, _ = seis.shape\n        if h < self.patch_height or w < self.patch_width:\n            raise ValueError(\"Patch size larger than input dimensions\")\n\n        i = np.random.randint(0, h - self.patch_height + 1)\n        j = np.random.randint(0, w - self.patch_width + 1)\n\n        seis_patch = seis[i:i + self.patch_height, j:j + self.patch_width]\n        vel_patch = vel[i:i + self.patch_height, j:j + self.patch_width]\n\n        std = seis_patch.std()\n        if std < 1e-6:\n            std = 1e-6\n\n        seis_patch = (seis_patch - seis_patch.mean()) / std\n\n        seis_tensor = torch.from_numpy(seis_patch).permute(2, 0, 1)  # (1, H, W)\n        vel_tensor = torch.from_numpy(vel_patch).permute(2, 0, 1)    # (1, H, W)\n\n        return seis_tensor, vel_tensor\n\n# Приклад використання:\n# dataset = WaveformDataset(DATA_DIR)\n# dataloader = DataLoader(dataset, batch_size=4, shuffle=True)\n# for x, y in dataloader:\n#     print(x.shape, y.shape)  # -> (B, 1, 64, 64), (B, 1, 64, 64)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T08:13:48.574672Z","iopub.execute_input":"2025-06-19T08:13:48.575477Z","iopub.status.idle":"2025-06-19T08:13:48.588158Z","shell.execute_reply.started":"2025-06-19T08:13:48.575445Z","shell.execute_reply":"2025-06-19T08:13:48.587049Z"}},"outputs":[],"execution_count":28},{"cell_type":"code","source":"# ✅ Повністю переписаний Dataset для PyTorch (робота з .npy)\nimport os\nimport numpy as np\nimport torch\nfrom torch.utils.data import Dataset\n\nclass SeismicDataset(Dataset):\n    def __init__(self, root_dir, patch_size=(64, 64), limit=None):\n        self.root_dir = root_dir\n        self.patch_size = patch_size\n        self.limit = limit\n        self.sample_paths = self._gather_samples()\n\n    def _gather_samples(self):\n        samples = []\n        for folder in sorted(os.listdir(self.root_dir)):\n            folder_path = os.path.join(self.root_dir, folder)\n            if not os.path.isdir(folder_path):\n                continue\n            for fname in sorted(os.listdir(folder_path)):\n                if fname.startswith(\"seis\") and fname.endswith(\".npy\"):\n                    vel_path = os.path.join(folder_path, fname.replace(\"seis\", \"vel\"))\n                    seis_path = os.path.join(folder_path, fname)\n                    if os.path.exists(vel_path):\n                        samples.append((seis_path, vel_path))\n        if self.limit:\n            samples = samples[:self.limit]\n        return samples\n\n    def __len__(self):\n        return len(self.sample_paths)\n\n    def __getitem__(self, idx):\n        seis_path, vel_path = self.sample_paths[idx]\n        seis = np.load(seis_path).astype(np.float32)\n        vel = np.load(vel_path).astype(np.float32)\n\n        if seis.ndim == 3:\n            seis = np.mean(seis, axis=-1)\n        if vel.ndim == 3:\n            vel = np.mean(vel, axis=-1)\n\n        H, W = seis.shape\n        ph, pw = self.patch_size\n\n        if H < ph or W < pw:\n            raise ValueError(f\"Patch size ({ph},{pw}) is larger than input size {seis.shape}\")\n\n        i = np.random.randint(0, H - ph + 1)\n        j = np.random.randint(0, W - pw + 1)\n\n        patch_x = seis[i:i+ph, j:j+pw]\n        patch_y = vel[i:i+ph, j:j+pw]\n\n        std = patch_x.std()\n        if std < 1e-6:\n            std = 1e-6\n        patch_x = (patch_x - patch_x.mean()) / std\n\n        patch_x = torch.from_numpy(patch_x).unsqueeze(0)\n        patch_y = torch.from_numpy(patch_y)\n\n        return patch_x, patch_y\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T08:21:43.537121Z","iopub.execute_input":"2025-06-19T08:21:43.537577Z","iopub.status.idle":"2025-06-19T08:21:43.552756Z","shell.execute_reply.started":"2025-06-19T08:21:43.537547Z","shell.execute_reply":"2025-06-19T08:21:43.551427Z"}},"outputs":[],"execution_count":32},{"cell_type":"code","source":"# ✅ U-Net модель у PyTorch для 2D Velocity Map Reconstruction\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nclass UNet(nn.Module):\n    def __init__(self):\n        super(UNet, self).__init__()\n\n        def conv_block(in_ch, out_ch):\n            return nn.Sequential(\n                nn.Conv2d(in_ch, out_ch, kernel_size=3, padding=1),\n                nn.ReLU(inplace=True),\n                nn.Conv2d(out_ch, out_ch, kernel_size=3, padding=1),\n                nn.ReLU(inplace=True),\n            )\n\n        self.enc1 = conv_block(1, 32)\n        self.pool1 = nn.MaxPool2d(2)\n        self.enc2 = conv_block(32, 64)\n        self.pool2 = nn.MaxPool2d(2)\n        self.enc3 = conv_block(64, 128)\n        self.pool3 = nn.MaxPool2d(2)\n\n        self.bottleneck = conv_block(128, 256)\n\n        self.up3 = nn.ConvTranspose2d(256, 128, kernel_size=2, stride=2)\n        self.dec3 = conv_block(256, 128)\n        self.up2 = nn.ConvTranspose2d(128, 64, kernel_size=2, stride=2)\n        self.dec2 = conv_block(128, 64)\n        self.up1 = nn.ConvTranspose2d(64, 32, kernel_size=2, stride=2)\n        self.dec1 = conv_block(64, 32)\n\n        self.final = nn.Conv2d(32, 1, kernel_size=1)\n\n    def forward(self, x):\n        e1 = self.enc1(x)\n        e2 = self.enc2(self.pool1(e1))\n        e3 = self.enc3(self.pool2(e2))\n\n        b = self.bottleneck(self.pool3(e3))\n\n        d3 = self.up3(b)\n        d3 = torch.cat([d3, e3], dim=1)\n        d3 = self.dec3(d3)\n\n        d2 = self.up2(d3)\n        d2 = torch.cat([d2, e2], dim=1)\n        d2 = self.dec2(d2)\n\n        d1 = self.up1(d2)\n        d1 = torch.cat([d1, e1], dim=1)\n        d1 = self.dec1(d1)\n\n        out = self.final(d1)\n        return out.squeeze(1)\n\n# 🔧 Ініціалізація\nmodel = UNet()\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\nmodel = model.to(device)\n\n# 🔧 Оптимізатор та функція втрат\noptimizer = torch.optim.Adam(model.parameters(), lr=1e-3)\nloss_fn = nn.MSELoss()\n\n# 🔧 Тренування (приклад)\n# from torch.utils.data import DataLoader\n# dataset = SeismicDataset(\"/kaggle/input/waveform-inversion/train_samples\")\n# dataloader = DataLoader(dataset, batch_size=8, shuffle=True, num_workers=2)\n#\n# for epoch in range(10):\n#     model.train()\n#     total_loss = 0\n#     for x, y in dataloader:\n#         x, y = x.to(device), y.to(device)\n#         optimizer.zero_grad()\n#         out = model(x)\n#         loss = loss_fn(out, y)\n#         loss.backward()\n#         optimizer.step()\n#         total_loss += loss.item()\n#     print(f\"Epoch {epoch + 1}, Loss: {total_loss / len(dataloader):.4f}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T08:23:32.033796Z","iopub.execute_input":"2025-06-19T08:23:32.034237Z","iopub.status.idle":"2025-06-19T08:23:32.101428Z","shell.execute_reply.started":"2025-06-19T08:23:32.034213Z","shell.execute_reply":"2025-06-19T08:23:32.1003Z"}},"outputs":[],"execution_count":33},{"cell_type":"code","source":"import os\nimport numpy as np\nimport pandas as pd\nimport torch\nfrom torch.utils.data import Dataset, DataLoader\nimport torch.nn as nn\nimport torch.optim as optim\n\n# --- Dataset для тренування ---\nclass SeismicDataset(Dataset):\n    def __init__(self, root_dir, limit=None, ph=64, pw=64):\n        self.data_files = []\n        self.model_files = []\n        self.ph = ph\n        self.pw = pw\n        count = 0\n        for sample_dir in sorted(os.listdir(root_dir)):\n            sample_path = os.path.join(root_dir, sample_dir)\n            if not os.path.isdir(sample_path):\n                continue\n\n            data_dir = os.path.join(sample_path, \"data\")\n            model_dir = os.path.join(sample_path, \"model\")\n            if not os.path.exists(data_dir) or not os.path.exists(model_dir):\n                continue\n\n            data_files = sorted([f for f in os.listdir(data_dir) if f.endswith(\".npy\")])\n            model_files = sorted([f for f in os.listdir(model_dir) if f.endswith(\".npy\")])\n\n            for dfile, mfile in zip(data_files, model_files):\n                self.data_files.append(os.path.join(data_dir, dfile))\n                self.model_files.append(os.path.join(model_dir, mfile))\n                count += 1\n                if limit and count >= limit:\n                    break\n            if limit and count >= limit:\n                break\n\n    def __len__(self):\n        return len(self.data_files)\n\n    def __getitem__(self, idx):\n        data_path = self.data_files[idx]\n        model_path = self.model_files[idx]\n\n        seis = np.load(data_path).astype(np.float32)\n        vel = np.load(model_path).astype(np.float32)\n\n        if seis.ndim == 3:\n            seis = np.mean(seis, axis=0)\n\n        if vel.ndim == 3 and vel.shape[0] == 1:\n            vel = vel[0]\n\n        h, w = seis.shape\n        if h < self.ph or w < self.pw:\n            raise ValueError(f\"Patch size {(self.ph, self.pw)} більший за розмір вхідних даних {(h, w)}\")\n\n        i = np.random.randint(0, h - self.ph + 1)\n        j = np.random.randint(0, w - self.pw + 1)\n\n        patch_seis = seis[i:i+self.ph, j:j+self.pw]\n        patch_vel = vel[i:i+self.ph, j:j+self.pw]\n\n        std = patch_seis.std()\n        if std < 1e-6:\n            std = 1.0\n        patch_seis = (patch_seis - patch_seis.mean()) / std\n\n        patch_seis = np.expand_dims(patch_seis, axis=0)\n        patch_vel = np.expand_dims(patch_vel, axis=0)\n\n        patch_seis = torch.tensor(patch_seis, dtype=torch.float32)\n        patch_vel = torch.tensor(patch_vel, dtype=torch.float32)\n\n        return patch_seis, patch_vel\n\n# --- Dataset для тесту (без лейблів) ---\nclass SeismicTestDataset(Dataset):\n    def __init__(self, root_dir, ph=64, pw=64):\n        self.data_files = []\n        self.model_files = []\n        self.ph = ph\n        self.pw = pw\n        for sample_dir in sorted(os.listdir(root_dir)):\n            sample_path = os.path.join(root_dir, sample_dir)\n            if not os.path.isdir(sample_path):\n                continue\n            data_dir = os.path.join(sample_path, \"data\")\n            model_dir = os.path.join(sample_path, \"model\")\n            if not os.path.exists(data_dir):\n                continue\n            if not os.path.exists(model_dir):\n                continue\n            data_files = sorted([f for f in os.listdir(data_dir) if f.endswith(\".npy\")])\n            model_files = sorted([f for f in os.listdir(model_dir) if f.endswith(\".npy\")])\n            for dfile, mfile in zip(data_files, model_files):\n                self.data_files.append(os.path.join(data_dir, dfile))\n                self.model_files.append(os.path.join(model_dir, mfile))\n\n    def __len__(self):\n        return len(self.data_files)\n\n    def __getitem__(self, idx):\n        data_path = self.data_files[idx]\n        model_path = self.model_files[idx]\n\n        seis = np.load(data_path).astype(np.float32)\n        vel = np.load(model_path).astype(np.float32)\n\n# Усереднення або squeeze, якщо 3D\n        if seis.ndim == 3:\n         if seis.shape[0] == 1:\n          seis = seis[0]\n        else:\n        seis = np.mean(seis, axis=0)\n        if vel.ndim == 3:\n         if vel.shape[0] == 1:\n          vel = vel[0]\n        else:\n         vel = np.mean(vel, axis=0)\n\n# 🔐 Перевіримо, що тепер 2D\n       if seis.ndim != 2 or vel.ndim != 2:\n    raise ValueError(f\"Невірний розмірність: seis.shape={seis.shape}, vel.shape={vel.shape}\")\n\n\n        i = np.random.randint(0, h - self.ph + 1)\n        j = np.random.randint(0, w - self.pw + 1)\n\n        patch_seis = seis[i:i+self.ph, j:j+self.pw]\n        patch_vel = vel[i:i+self.ph, j:j+self.pw]\n\n        std = patch_seis.std()\n        if std < 1e-6:\n            std = 1.0\n        patch_seis = (patch_seis - patch_seis.mean()) / std\n\n        patch_seis = np.expand_dims(patch_seis, axis=0)  # (1, ph, pw)\n        patch_vel = np.expand_dims(patch_vel, axis=0)    # (1, ph, pw)\n\n        return torch.tensor(patch_seis, dtype=torch.float32), torch.tensor(patch_vel, dtype=torch.float32)\n\n\n# --- U-Net модель ---\nclass UNet(nn.Module):\n    def __init__(self):\n        super(UNet, self).__init__()\n\n        def conv_block(in_ch, out_ch):\n            return nn.Sequential(\n                nn.Conv2d(in_ch, out_ch, kernel_size=3, padding=1),\n                nn.ReLU(inplace=True),\n                nn.Conv2d(out_ch, out_ch, kernel_size=3, padding=1),\n                nn.ReLU(inplace=True),\n            )\n\n        self.enc1 = conv_block(1, 32)\n        self.pool1 = nn.MaxPool2d(2)\n        self.enc2 = conv_block(32, 64)\n        self.pool2 = nn.MaxPool2d(2)\n        self.enc3 = conv_block(64, 128)\n        self.pool3 = nn.MaxPool2d(2)\n\n        self.bottleneck = conv_block(128, 256)\n\n        self.up3 = nn.ConvTranspose2d(256, 128, kernel_size=2, stride=2)\n        self.dec3 = conv_block(256, 128)\n        self.up2 = nn.ConvTranspose2d(128, 64, kernel_size=2, stride=2)\n        self.dec2 = conv_block(128, 64)\n        self.up1 = nn.ConvTranspose2d(64, 32, kernel_size=2, stride=2)\n        self.dec1 = conv_block(64, 32)\n\n        self.final = nn.Conv2d(32, 1, kernel_size=1)\n\n    def forward(self, x):\n        e1 = self.enc1(x)\n        e2 = self.enc2(self.pool1(e1))\n        e3 = self.enc3(self.pool2(e2))\n\n        b = self.bottleneck(self.pool3(e3))\n\n        d3 = self.up3(b)\n        d3 = torch.cat([d3, e3], dim=1)\n        d3 = self.dec3(d3)\n\n        d2 = self.up2(d3)\n        d2 = torch.cat([d2, e2], dim=1)\n        d2 = self.dec2(d2)\n\n        d1 = self.up1(d2)\n        d1 = torch.cat([d1, e1], dim=1)\n        d1 = self.dec1(d1)\n\n        out = self.final(d1)\n        return out\n\n# --- Тренування ---\ndef train_model(train_dir, epochs=10, batch_size=8):\n    device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n    dataset = SeismicDataset(train_dir, limit=500, ph=64, pw=64)\n    dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True, num_workers=2)\n\n    model = UNet().to(device)\n    optimizer = optim.Adam(model.parameters(), lr=1e-3)\n    loss_fn = nn.MSELoss()\n\n    for epoch in range(epochs):\n        model.train()\n        total_loss = 0\n        for x, y in dataloader:\n            x, y = x.to(device), y.to(device)\n            optimizer.zero_grad()\n            out = model(x)\n            loss = loss_fn(out, y)\n            loss.backward()\n            optimizer.step()\n            total_loss += loss.item()\n        print(f\"Epoch {epoch+1}/{epochs} - Loss: {total_loss/len(dataloader):.6f}\")\n\n    return model\n\n# --- Передбачення та формування submission ---\ndef predict_and_submit(model, test_dir, submission_sample_csv, submission_out_csv, batch_size=4):\n    device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n    model.eval()\n\n    test_dataset = SeismicTestDataset(test_dir)\n    test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=False, num_workers=2)\n\n    # Зчитуємо шаблон для сабмішену\n    submission_df = pd.read_csv(submission_sample_csv)\n    preds = []\n\n    with torch.no_grad():\n        for x, filenames in test_loader:\n            x = x.to(device)\n            out = model(x)  # (batch, 1, H, W)\n            out = out.squeeze(1).cpu().numpy()\n\n            # Для кожного прикладу формуємо предикт у вигляді рядків для сабмішену\n            for pred_map, fname in zip(out, filenames):\n                # Прив'язка: oid_ypos починається з імені файлу + '_y_i' для кожного рядка\n                for i in range(pred_map.shape[0]):\n                    row_id_prefix = fname.replace(\".npy\", \"\") + f\"_y_{i}\"\n                    row = [row_id_prefix] + pred_map[i, ::2].tolist()  # беремо кожен другий стовпець (x_1, x_3, ...)\n                    preds.append(row)\n\n    # Колонки: oid_ypos, x_1, x_3, ..., x_999 (згідно sample_submission)\n    columns = submission_df.columns.tolist()\n    submission_pred_df = pd.DataFrame(preds, columns=columns)\n\n    # Переконуємося, що розмір сабмішену збігається з шаблоном\n    assert submission_pred_df.shape[0] == submission_df.shape[0], f\"Rows mismatch: {submission_pred_df.shape[0]} vs {submission_df.shape[0]}\"\n\n    # Зберігаємо сабмішен\n    submission_pred_df.to_csv(submission_out_csv, index=False)\n    print(f\"Submission saved to {submission_out_csv}\")\n\n# --- Виконання ---\nif __name__ == \"__main__\":\n    TRAIN_DIR = \"/kaggle/input/waveform-inversion/train_samples\"\n    TEST_DIR = \"/kaggle/input/waveform-inversion/test_samples\"\n    SAMPLE_SUBMISSION_CSV = \"/kaggle/input/waveform-inversion/sample_submission.csv\"\n    SUBMISSION_OUT_CSV = \"submission.csv\"\n\n    model = train_model(TRAIN_DIR, epochs=10, batch_size=8)\n    predict_and_submit(model, TEST_DIR, SAMPLE_SUBMISSION_CSV, SUBMISSION_OUT_CSV, batch_size=4)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T08:53:09.091302Z","iopub.execute_input":"2025-06-19T08:53:09.091847Z","iopub.status.idle":"2025-06-19T08:53:09.128452Z","shell.execute_reply.started":"2025-06-19T08:53:09.0918Z","shell.execute_reply":"2025-06-19T08:53:09.127184Z"}},"outputs":[{"traceback":["\u001b[0;36m  File \u001b[0;32m\"/tmp/ipykernel_35/49573732.py\"\u001b[0;36m, line \u001b[0;32m116\u001b[0m\n\u001b[0;31m    seis = np.mean(seis, axis=0)\u001b[0m\n\u001b[0m    ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m expected an indented block after 'else' statement on line 115\n"],"ename":"IndentationError","evalue":"expected an indented block after 'else' statement on line 115 (49573732.py, line 116)","output_type":"error"}],"execution_count":41},{"cell_type":"code","source":"import os\nimport numpy as np\n\nroot_dir = \"/kaggle/input/waveform-inversion/train_samples\"\n\nfor sample_dir in sorted(os.listdir(root_dir)):\n    data_path = os.path.join(root_dir, sample_dir, \"data\")\n    model_path = os.path.join(root_dir, sample_dir, \"model\")\n\n    if not os.path.exists(data_path) or not os.path.exists(model_path):\n        continue\n\n    data_files = sorted([f for f in os.listdir(data_path) if f.endswith(\".npy\")])\n    model_files = sorted([f for f in os.listdir(model_path) if f.endswith(\".npy\")])\n\n    for dfile, mfile in zip(data_files[:1], model_files[:1]):  # Перевіримо лише по 1 файлу\n        data = np.load(os.path.join(data_path, dfile))\n        model = np.load(os.path.join(model_path, mfile))\n\n        print(f\"Sample: {sample_dir}\")\n        print(f\"data shape: {data.shape}, dtype: {data.dtype}\")\n        print(f\"model shape: {model.shape}, dtype: {model.dtype}\")\n        break\n    break\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T08:58:04.505402Z","iopub.execute_input":"2025-06-19T08:58:04.505903Z","iopub.status.idle":"2025-06-19T08:58:10.023072Z","shell.execute_reply.started":"2025-06-19T08:58:04.50587Z","shell.execute_reply":"2025-06-19T08:58:10.021923Z"}},"outputs":[{"name":"stdout","text":"Sample: CurveVel_A\ndata shape: (500, 5, 1000, 70), dtype: float32\nmodel shape: (500, 1, 70, 70), dtype: float32\n","output_type":"stream"}],"execution_count":43},{"cell_type":"code","source":"class SeismicDataset(torch.utils.data.Dataset):\n    def __init__(self, data_path, model_path, limit=None):\n        self.seis = np.load(data_path)  # (500, 5, 1000, 70)\n        self.vel = np.load(model_path)  # (500, 1, 70, 70)\n\n        if limit:\n            self.seis = self.seis[:limit]\n            self.vel = self.vel[:limit]\n\n    def __len__(self):\n        return len(self.seis)\n\n    def __getitem__(self, idx):\n        x = self.seis[idx]  # (5, 1000, 70)\n        y = self.vel[idx]   # (1, 70, 70)\n\n        # Усереднення по каналах (можна змінити на кращу обробку)\n        x = np.mean(x, axis=0)  # → (1000, 70)\n\n        # Нормалізація по всьому прикладу\n        x = (x - x.mean()) / (x.std() + 1e-6)\n\n        x = np.expand_dims(x, axis=0)  # (1, 1000, 70)\n        return torch.tensor(x, dtype=torch.float32), torch.tensor(y, dtype=torch.float32)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T08:59:25.659305Z","iopub.execute_input":"2025-06-19T08:59:25.659743Z","iopub.status.idle":"2025-06-19T08:59:25.668861Z","shell.execute_reply.started":"2025-06-19T08:59:25.659712Z","shell.execute_reply":"2025-06-19T08:59:25.667083Z"}},"outputs":[],"execution_count":45},{"cell_type":"code","source":"import os\nimport numpy as np\nimport torch\nfrom torch.utils.data import Dataset\n\nclass SeismicDataset(Dataset):\n    def __init__(self, root_dir, limit=None):\n        self.seis_list = []\n        self.vel_list = []\n\n        data_dir = os.path.join(root_dir, \"data\")\n        model_dir = os.path.join(root_dir, \"model\")\n\n        # Зчитуємо всі data*.npy файли та обʼєднуємо по першій осі\n        data_files = sorted([f for f in os.listdir(data_dir) if f.endswith(\".npy\")])\n        model_files = sorted([f for f in os.listdir(model_dir) if f.endswith(\".npy\")])\n\n        for df in data_files:\n            path = os.path.join(data_dir, df)\n            arr = np.load(path).astype(np.float32)\n            self.seis_list.append(arr)\n        self.seis = np.concatenate(self.seis_list, axis=0)  # обʼєднуємо по осі 0\n\n        for mf in model_files:\n            path = os.path.join(model_dir, mf)\n            arr = np.load(path).astype(np.float32)\n            self.vel_list.append(arr)\n        self.vel = np.concatenate(self.vel_list, axis=0)  # обʼєднуємо по осі 0\n\n        if limit is not None:\n            self.seis = self.seis[:limit]\n            self.vel = self.vel[:limit]\n\n    def __len__(self):\n        return len(self.seis)\n\n    def __getitem__(self, idx):\n        x = self.seis[idx]  # (5, 1000, 70)\n        y = self.vel[idx]   # (1, 70, 70)\n\n        # Усереднюємо сейсмограми по каналу (5 -> 1)\n        x = np.mean(x, axis=0)  # (1000, 70)\n\n        # Нормалізація\n        x = (x - x.mean()) / (x.std() + 1e-6)\n\n        x = np.expand_dims(x, axis=0)  # (1, 1000, 70)\n\n        return torch.tensor(x, dtype=torch.float32), torch.tensor(y, dtype=torch.float32)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T09:02:56.878431Z","iopub.execute_input":"2025-06-19T09:02:56.878828Z","iopub.status.idle":"2025-06-19T09:02:56.892883Z","shell.execute_reply.started":"2025-06-19T09:02:56.878797Z","shell.execute_reply":"2025-06-19T09:02:56.891749Z"}},"outputs":[],"execution_count":49},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\n\n# Читаємо файл\ndf = pd.read_csv('/kaggle/input/waveform-inversion/sample_submission.csv')\n\nprint(\"ЗАГАЛЬНА ІНФОРМАЦІЯ\")\nprint(\"=\"*30)\nprint(f\"Розмір: {df.shape[0]} рядків, {df.shape[1]} стовпців\")\nprint(f\"Стовпці: {list(df.columns)}\")\nprint(f\"Типи даних:\\n{df.dtypes}\")\n\nprint(\"\\nОПИС ДАНИХ\")\nprint(\"=\"*30)\nprint(df.describe())\n\nprint(\"\\nПЕРШІ 5 ЗАПИСІВ\")\nprint(\"=\"*30)\nprint(df.head())\n\nprint(\"\\nОСТАННІ 5 ЗАПИСІВ\")\nprint(\"=\"*30)\nprint(df.tail())\n\nprint(\"\\nФОРМАТ І ЯКІСТЬ ДАНИХ\")\nprint(\"=\"*30)\nprint(f\"Пропущені значення: {df.isnull().sum().sum()}\")\nprint(f\"Дублікати: {df.duplicated().sum()}\")\nprint(f\"Пам'ять: {df.memory_usage(deep=True).sum() / 1024:.1f} KB\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T09:28:23.474743Z","iopub.execute_input":"2025-06-19T09:28:23.475231Z","iopub.status.idle":"2025-06-19T09:29:06.573131Z","shell.execute_reply.started":"2025-06-19T09:28:23.475199Z","shell.execute_reply":"2025-06-19T09:29:06.572002Z"}},"outputs":[{"name":"stdout","text":"ЗАГАЛЬНА ІНФОРМАЦІЯ\n==============================\nРозмір: 4607260 рядків, 36 стовпців\nСтовпці: ['oid_ypos', 'x_1', 'x_3', 'x_5', 'x_7', 'x_9', 'x_11', 'x_13', 'x_15', 'x_17', 'x_19', 'x_21', 'x_23', 'x_25', 'x_27', 'x_29', 'x_31', 'x_33', 'x_35', 'x_37', 'x_39', 'x_41', 'x_43', 'x_45', 'x_47', 'x_49', 'x_51', 'x_53', 'x_55', 'x_57', 'x_59', 'x_61', 'x_63', 'x_65', 'x_67', 'x_69']\nТипи даних:\noid_ypos     object\nx_1         float64\nx_3         float64\nx_5         float64\nx_7         float64\nx_9         float64\nx_11        float64\nx_13        float64\nx_15        float64\nx_17        float64\nx_19        float64\nx_21        float64\nx_23        float64\nx_25        float64\nx_27        float64\nx_29        float64\nx_31        float64\nx_33        float64\nx_35        float64\nx_37        float64\nx_39        float64\nx_41        float64\nx_43        float64\nx_45        float64\nx_47        float64\nx_49        float64\nx_51        float64\nx_53        float64\nx_55        float64\nx_57        float64\nx_59        float64\nx_61        float64\nx_63        float64\nx_65        float64\nx_67        float64\nx_69        float64\ndtype: object\n\nОПИС ДАНИХ\n==============================\n             x_1        x_3        x_5        x_7        x_9       x_11  \\\ncount  4607260.0  4607260.0  4607260.0  4607260.0  4607260.0  4607260.0   \nmean      3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \nstd          0.0        0.0        0.0        0.0        0.0        0.0   \nmin       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \n25%       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \n50%       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \n75%       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \nmax       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \n\n            x_13       x_15       x_17       x_19  ...       x_51       x_53  \\\ncount  4607260.0  4607260.0  4607260.0  4607260.0  ...  4607260.0  4607260.0   \nmean      3000.0     3000.0     3000.0     3000.0  ...     3000.0     3000.0   \nstd          0.0        0.0        0.0        0.0  ...        0.0        0.0   \nmin       3000.0     3000.0     3000.0     3000.0  ...     3000.0     3000.0   \n25%       3000.0     3000.0     3000.0     3000.0  ...     3000.0     3000.0   \n50%       3000.0     3000.0     3000.0     3000.0  ...     3000.0     3000.0   \n75%       3000.0     3000.0     3000.0     3000.0  ...     3000.0     3000.0   \nmax       3000.0     3000.0     3000.0     3000.0  ...     3000.0     3000.0   \n\n            x_55       x_57       x_59       x_61       x_63       x_65  \\\ncount  4607260.0  4607260.0  4607260.0  4607260.0  4607260.0  4607260.0   \nmean      3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \nstd          0.0        0.0        0.0        0.0        0.0        0.0   \nmin       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \n25%       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \n50%       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \n75%       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \nmax       3000.0     3000.0     3000.0     3000.0     3000.0     3000.0   \n\n            x_67       x_69  \ncount  4607260.0  4607260.0  \nmean      3000.0     3000.0  \nstd          0.0        0.0  \nmin       3000.0     3000.0  \n25%       3000.0     3000.0  \n50%       3000.0     3000.0  \n75%       3000.0     3000.0  \nmax       3000.0     3000.0  \n\n[8 rows x 35 columns]\n\nПЕРШІ 5 ЗАПИСІВ\n==============================\n         oid_ypos     x_1     x_3     x_5     x_7     x_9    x_11    x_13  \\\n0  000039dca2_y_0  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n1  000039dca2_y_1  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n2  000039dca2_y_2  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n3  000039dca2_y_3  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n4  000039dca2_y_4  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n\n     x_15    x_17  ...    x_51    x_53    x_55    x_57    x_59    x_61  \\\n0  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n1  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n2  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n3  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n4  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n\n     x_63    x_65    x_67    x_69  \n0  3000.0  3000.0  3000.0  3000.0  \n1  3000.0  3000.0  3000.0  3000.0  \n2  3000.0  3000.0  3000.0  3000.0  \n3  3000.0  3000.0  3000.0  3000.0  \n4  3000.0  3000.0  3000.0  3000.0  \n\n[5 rows x 36 columns]\n\nОСТАННІ 5 ЗАПИСІВ\n==============================\n                oid_ypos     x_1     x_3     x_5     x_7     x_9    x_11  \\\n4607255  fffe53ac66_y_65  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n4607256  fffe53ac66_y_66  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n4607257  fffe53ac66_y_67  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n4607258  fffe53ac66_y_68  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n4607259  fffe53ac66_y_69  3000.0  3000.0  3000.0  3000.0  3000.0  3000.0   \n\n           x_13    x_15    x_17  ...    x_51    x_53    x_55    x_57    x_59  \\\n4607255  3000.0  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0   \n4607256  3000.0  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0   \n4607257  3000.0  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0   \n4607258  3000.0  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0   \n4607259  3000.0  3000.0  3000.0  ...  3000.0  3000.0  3000.0  3000.0  3000.0   \n\n           x_61    x_63    x_65    x_67    x_69  \n4607255  3000.0  3000.0  3000.0  3000.0  3000.0  \n4607256  3000.0  3000.0  3000.0  3000.0  3000.0  \n4607257  3000.0  3000.0  3000.0  3000.0  3000.0  \n4607258  3000.0  3000.0  3000.0  3000.0  3000.0  \n4607259  3000.0  3000.0  3000.0  3000.0  3000.0  \n\n[5 rows x 36 columns]\n\nФОРМАТ І ЯКІСТЬ ДАНИХ\n==============================\nПропущені значення: 0\nДублікати: 0\nПам'ять: 1583103.0 KB\n","output_type":"stream"}],"execution_count":54},{"cell_type":"code","source":"import os\nimport numpy as np\nimport torch\nfrom torch.utils.data import Dataset, DataLoader\n\nclass WaveformDataset(Dataset):\n    def __init__(self, root_dir):\n        \"\"\"\n        root_dir - шлях до каталогу, наприклад\n        '/kaggle/input/waveform-inversion/train_samples/CurveVel_A/'\n        Має містити 'data' і 'model' підпапки\n        \"\"\"\n        self.data_files = sorted([\n            os.path.join(root_dir, 'data', f)\n            for f in os.listdir(os.path.join(root_dir, 'data'))\n            if f.endswith('.npy')\n        ])\n        self.model_files = sorted([\n            os.path.join(root_dir, 'model', f)\n            for f in os.listdir(os.path.join(root_dir, 'model'))\n            if f.endswith('.npy')\n        ])\n        assert len(self.data_files) == len(self.model_files), \"Mismatch data/model files\"\n\n    def __len__(self):\n        return len(self.data_files)\n\n    def __getitem__(self, idx):\n        data = np.load(self.data_files[idx])  # shape: (500,5,1000,70)\n        model = np.load(self.model_files[idx])  # shape: (500,1,70,70)\n\n        # Преобразуємо в torch.Tensor, нормалізуємо якщо треба\n        data = torch.tensor(data, dtype=torch.float32)\n        model = torch.tensor(model, dtype=torch.float32)\n\n        return data, model\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T09:36:24.327212Z","iopub.execute_input":"2025-06-19T09:36:24.327632Z","iopub.status.idle":"2025-06-19T09:36:24.337272Z","shell.execute_reply.started":"2025-06-19T09:36:24.327607Z","shell.execute_reply":"2025-06-19T09:36:24.336208Z"}},"outputs":[],"execution_count":55},{"cell_type":"code","source":"dataset = WaveformDataset('/kaggle/input/waveform-inversion/train_samples/CurveVel_A')\ndataloader = DataLoader(dataset, batch_size=1, shuffle=True, num_workers=2)  # batch_size=1 бо в одному файлі 500 прикладів\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T09:36:42.378093Z","iopub.execute_input":"2025-06-19T09:36:42.378511Z","iopub.status.idle":"2025-06-19T09:36:42.397093Z","shell.execute_reply.started":"2025-06-19T09:36:42.378484Z","shell.execute_reply":"2025-06-19T09:36:42.395566Z"}},"outputs":[],"execution_count":56},{"cell_type":"code","source":"import os\nimport numpy as np\nimport pandas as pd\nimport torch\nimport torch.nn as nn\nfrom torch.utils.data import Dataset, DataLoader\nfrom tqdm import tqdm\n\n# Шлях до даних (зміни під свій шлях)\nDATA_ROOT = '/kaggle/input/waveform-inversion/train_samples/CurveVel_A'\n\nclass WaveformDataset(Dataset):\n    def __init__(self, root_dir):\n        self.data_files = sorted([\n            os.path.join(root_dir, 'data', f)\n            for f in os.listdir(os.path.join(root_dir, 'data')) if f.endswith('.npy')\n        ])\n        self.model_files = sorted([\n            os.path.join(root_dir, 'model', f)\n            for f in os.listdir(os.path.join(root_dir, 'model')) if f.endswith('.npy')\n        ])\n        assert len(self.data_files) == len(self.model_files), \"Data/model files mismatch\"\n\n    def __len__(self):\n        return len(self.data_files) * 500  # бо в одному файлі 500 зразків\n\n    def __getitem__(self, idx):\n        file_idx = idx // 500\n        inner_idx = idx % 500\n\n        data_np = np.load(self.data_files[file_idx])  # (500,5,1000,70)\n        model_np = np.load(self.model_files[file_idx])  # (500,1,70,70)\n\n        data = torch.tensor(data_np[inner_idx], dtype=torch.float32)  # (5,1000,70)\n        target = torch.tensor(model_np[inner_idx], dtype=torch.float32)  # (1,70,70)\n\n        return data, target\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T09:38:18.636671Z","iopub.execute_input":"2025-06-19T09:38:18.637208Z","iopub.status.idle":"2025-06-19T09:38:18.648967Z","shell.execute_reply.started":"2025-06-19T09:38:18.637172Z","shell.execute_reply":"2025-06-19T09:38:18.647373Z"}},"outputs":[],"execution_count":57},{"cell_type":"code","source":"from torchvision.models import convnext_tiny\nimport torch.nn.functional as F\n\nclass SimpleConvNeXt(nn.Module):\n    def __init__(self):\n        super().__init__()\n        # Вхід (5,1000,70) — перетворимо до (3,224,224) для використання pretrained convnext_tiny\n        # або побудуємо кастомний простий варіант\n        \n        # Але краще написати маленьку conv-базу для 5 каналів\n        self.encoder = nn.Sequential(\n            nn.Conv2d(5, 32, kernel_size=3, padding=1),\n            nn.GELU(),\n            nn.Conv2d(32, 64, kernel_size=3, padding=1),\n            nn.GELU(),\n            nn.MaxPool2d(2),  # (64, 500, 35)\n            nn.Conv2d(64, 128, kernel_size=3, padding=1),\n            nn.GELU(),\n            nn.MaxPool2d(2),  # (128, 250, 17)\n            nn.Conv2d(128, 256, kernel_size=3, padding=1),\n            nn.GELU(),\n            nn.MaxPool2d(2),  # (256,125,8)\n        )\n        # Decoder - upsample до (1,70,70)\n        self.decoder = nn.Sequential(\n            nn.ConvTranspose2d(256, 128, kernel_size=2, stride=2),  # (128,250,16)\n            nn.GELU(),\n            nn.ConvTranspose2d(128, 64, kernel_size=2, stride=2),   # (64,500,32)\n            nn.GELU(),\n            nn.ConvTranspose2d(64, 32, kernel_size=2, stride=2),    # (32,1000,64)\n            nn.GELU(),\n            nn.Conv2d(32, 1, kernel_size=3, padding=1),             # (1,1000,64)\n        )\n        \n        # Final crop or interpolate to (1,70,70)\n        self.final_resize = nn.AdaptiveAvgPool2d((70,70))\n        \n    def forward(self, x):\n        x = self.encoder(x)\n        x = self.decoder(x)\n        x = self.final_resize(x)\n        return x\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T09:38:35.356179Z","iopub.execute_input":"2025-06-19T09:38:35.356556Z","iopub.status.idle":"2025-06-19T09:38:36.208836Z","shell.execute_reply.started":"2025-06-19T09:38:35.356529Z","shell.execute_reply":"2025-06-19T09:38:36.207795Z"}},"outputs":[],"execution_count":58},{"cell_type":"code","source":"device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n\ndataset = WaveformDataset(DATA_ROOT)\ndataloader = DataLoader(dataset, batch_size=4, shuffle=True, num_workers=2, pin_memory=True)\n\nmodel = SimpleConvNeXt().to(device)\noptimizer = torch.optim.Adam(model.parameters(), lr=1e-3)\ncriterion = nn.MSELoss()\n\nscaler = torch.cuda.amp.GradScaler()  # для mixed precision\n\nepochs = 5  # стартово, можеш збільшити\n\nfor epoch in range(epochs):\n    model.train()\n    total_loss = 0\n    for data, target in tqdm(dataloader):\n        data = data.to(device)\n        target = target.to(device)\n\n        optimizer.zero_grad()\n        with torch.cuda.amp.autocast():\n            output = model(data)\n            loss = criterion(output, target)\n        scaler.scale(loss).backward()\n        scaler.step(optimizer)\n        scaler.update()\n        total_loss += loss.item()\n\n    print(f\"Epoch {epoch+1}/{epochs}, Loss: {total_loss/len(dataloader):.6f}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T09:38:54.388819Z","iopub.execute_input":"2025-06-19T09:38:54.389177Z","iopub.status.idle":"2025-06-19T10:16:37.974603Z","shell.execute_reply.started":"2025-06-19T09:38:54.389152Z","shell.execute_reply":"2025-06-19T10:16:37.9735Z"}},"outputs":[{"name":"stderr","text":"/tmp/ipykernel_35/3067611954.py:10: FutureWarning: `torch.cuda.amp.GradScaler(args...)` is deprecated. Please use `torch.amp.GradScaler('cuda', args...)` instead.\n  scaler = torch.cuda.amp.GradScaler()  # для mixed precision\n/usr/local/lib/python3.11/dist-packages/torch/amp/grad_scaler.py:132: UserWarning: torch.cuda.amp.GradScaler is enabled, but CUDA is not available.  Disabling.\n  warnings.warn(\n  0%|          | 0/250 [00:00<?, ?it/s]/tmp/ipykernel_35/3067611954.py:22: FutureWarning: `torch.cuda.amp.autocast(args...)` is deprecated. Please use `torch.amp.autocast('cuda', args...)` instead.\n  with torch.cuda.amp.autocast():\n/usr/local/lib/python3.11/dist-packages/torch/amp/autocast_mode.py:266: UserWarning: User provided device_type of 'cuda', but CUDA is not available. Disabling\n  warnings.warn(\n100%|██████████| 250/250 [07:46<00:00,  1.87s/it]\n","output_type":"stream"},{"name":"stdout","text":"Epoch 1/5, Loss: 2190348.155000\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 250/250 [07:28<00:00,  1.79s/it]\n","output_type":"stream"},{"name":"stdout","text":"Epoch 2/5, Loss: 428635.564562\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 250/250 [07:34<00:00,  1.82s/it]\n","output_type":"stream"},{"name":"stdout","text":"Epoch 3/5, Loss: 394143.298937\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 250/250 [07:27<00:00,  1.79s/it]\n","output_type":"stream"},{"name":"stdout","text":"Epoch 4/5, Loss: 365733.954781\n","output_type":"stream"},{"name":"stderr","text":"100%|██████████| 250/250 [07:25<00:00,  1.78s/it]","output_type":"stream"},{"name":"stdout","text":"Epoch 5/5, Loss: 359564.125625\n","output_type":"stream"},{"name":"stderr","text":"\n","output_type":"stream"}],"execution_count":59},{"cell_type":"code","source":"import os\n\ndef find_all_npy_files(root_dir):\n    npy_files = []\n    for subdir, _, files in os.walk(root_dir):\n        for f in files:\n            if f.endswith('.npy'):\n                npy_files.append(os.path.join(subdir, f))\n    npy_files.sort()\n    return npy_files\n\ntest_root = '/kaggle/input/waveform-inversion/test'\ntest_files = find_all_npy_files(test_root)\n\nprint(f\"Знайдено тестових файлів: {len(test_files)}\")\n# Перевіримо кілька перших\nfor f in test_files[:5]:\n    print(f)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T10:19:10.7507Z","iopub.execute_input":"2025-06-19T10:19:10.751192Z","iopub.status.idle":"2025-06-19T10:20:11.128325Z","shell.execute_reply.started":"2025-06-19T10:19:10.751162Z","shell.execute_reply":"2025-06-19T10:20:11.127034Z"}},"outputs":[{"name":"stdout","text":"Знайдено тестових файлів: 65818\n/kaggle/input/waveform-inversion/test/000039dca2.npy\n/kaggle/input/waveform-inversion/test/0000fd8ec8.npy\n/kaggle/input/waveform-inversion/test/0001026c8a.npy\n/kaggle/input/waveform-inversion/test/00015b24d5.npy\n/kaggle/input/waveform-inversion/test/0001e348d0.npy\n","output_type":"stream"}],"execution_count":61},{"cell_type":"code","source":"model.eval()\nwith torch.no_grad():\n    for test_file in tqdm(test_files):\n        data_np = np.load(test_file)\n        base_id = os.path.basename(test_file).replace('.npy','')\n\n        for i in range(data_np.shape[0]):\n            sample_np = data_np[i]\n\n            if sample_np.ndim == 3:  # (5,1000,70)\n                sample = torch.tensor(sample_np, dtype=torch.float32).unsqueeze(0).to(device)\n            elif sample_np.ndim == 2:  # (1000,70)\n                sample = torch.tensor(sample_np, dtype=torch.float32).unsqueeze(0).unsqueeze(0).to(device)\n                sample = sample.repeat(1, 5, 1, 1)  # повторити канал 5 разів\n            else:\n                raise ValueError(f\"Unexpected sample shape: {sample_np.shape}\")\n\n            pred = model(sample)\n            pred = pred.squeeze().cpu().numpy()  # (70,70)\n\n            for y_pos in range(70):\n                oid_ypos = f\"{base_id}_y_{y_pos}\"\n                row_values = {f\"x_{x_col}\": float(pred[y_pos, x_i]) for x_i, x_col in enumerate(range(1,70,2))}\n                submission_rows.append({'oid_ypos': oid_ypos, **row_values})\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T10:22:38.356172Z","iopub.execute_input":"2025-06-19T10:22:38.356626Z","execution_failed":"2025-06-19T13:56:41.638Z"}},"outputs":[{"name":"stderr","text":" 26%|██▌       | 16897/65818 [3:36:24<10:49:30,  1.26it/s]","output_type":"stream"}],"execution_count":null},{"cell_type":"code","source":"import torch\nimport torch.nn as nn\n\nclass SeismicUNet(nn.Module):\n    def __init__(self, in_channels=1, out_channels=1, features=[16, 32, 64, 128]):\n        super(SeismicUNet, self).__init__()\n        self.downs = nn.ModuleList()\n        self.ups = nn.ModuleList()\n\n        for feature in features:\n            self.downs.append(self.double_conv(in_channels, feature))\n            in_channels = feature\n\n        for feature in reversed(features):\n            self.ups.append(nn.ConvTranspose2d(feature*2, feature, kernel_size=2, stride=2))\n            self.ups.append(self.double_conv(feature*2, feature))\n\n        self.bottleneck = self.double_conv(features[-1], features[-1]*2)\n        self.final_conv = nn.Conv2d(features[0], out_channels, kernel_size=1)\n\n    def forward(self, x):\n        skip_connections = []\n\n        for down in self.downs:\n            x = down(x)\n            skip_connections.append(x)\n            x = nn.functional.max_pool2d(x, kernel_size=2, stride=2)\n\n        x = self.bottleneck(x)\n        skip_connections = skip_connections[::-1]\n\n        for idx in range(0, len(self.ups), 2):\n            x = self.ups[idx](x)\n            skip_connection = skip_connections[idx//2]\n            if x.shape != skip_connection.shape:\n                x = nn.functional.interpolate(x, size=skip_connection.shape[2:])\n            x = torch.cat((skip_connection, x), dim=1)\n            x = self.ups[idx+1](x)\n\n        return self.final_conv(x)\n\n    def double_conv(self, in_channels, out_channels):\n        return nn.Sequential(\n            nn.Conv2d(in_channels, out_channels, 3, padding=1, bias=False),\n            nn.BatchNorm2d(out_channels),\n            nn.ReLU(inplace=True),\n            nn.Conv2d(out_channels, out_channels, 3, padding=1, bias=False),\n            nn.BatchNorm2d(out_channels),\n            nn.ReLU(inplace=True)\n        )\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:24:31.538881Z","iopub.execute_input":"2025-06-19T14:24:31.539863Z","iopub.status.idle":"2025-06-19T14:24:34.392908Z","shell.execute_reply.started":"2025-06-19T14:24:31.53983Z","shell.execute_reply":"2025-06-19T14:24:34.39188Z"}},"outputs":[],"execution_count":2},{"cell_type":"code","source":"import torch\nimport torch.nn as nn\nimport numpy as np\n\n# Створення істинної та передбаченої швидкісної карти\ntrue_velocity = torch.from_numpy(np.random.uniform(1500, 4500, (1, 1, 70, 70))).float()\npredicted_velocity = true_velocity + torch.randn_like(true_velocity) * 100  # шум\n\n# Метрики\ndef compute_metrics(y_true, y_pred):\n    rel_error = torch.norm(y_pred - y_true) / torch.norm(y_true)\n    mse = nn.MSELoss()(y_pred, y_true)\n    mae = nn.L1Loss()(y_pred, y_true)\n    return rel_error.item(), mse.item(), mae.item()\n\nrel, mse_val, mae_val = compute_metrics(true_velocity, predicted_velocity)\n\nprint(\"📊 RelError:\", round(rel, 4))\nprint(\"📉 MSE:\", round(mse_val, 2))\nprint(\"📈 MAE:\", round(mae_val, 2))\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:24:58.537413Z","iopub.execute_input":"2025-06-19T14:24:58.537932Z","iopub.status.idle":"2025-06-19T14:24:58.649982Z","shell.execute_reply.started":"2025-06-19T14:24:58.537902Z","shell.execute_reply":"2025-06-19T14:24:58.648976Z"}},"outputs":[{"name":"stdout","text":"📊 RelError: 0.0322\n📉 MSE: 10145.83\n📈 MAE: 80.29\n","output_type":"stream"}],"execution_count":3},{"cell_type":"code","source":"import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport numpy as np\n\n# U-Net модель\nclass SeismicUNet(nn.Module):\n    def __init__(self, in_channels=1, out_channels=1, features=[16, 32, 64]):\n        super(SeismicUNet, self).__init__()\n        self.downs = nn.ModuleList()\n        self.ups = nn.ModuleList()\n\n        for feature in features:\n            self.downs.append(self.double_conv(in_channels, feature))\n            in_channels = feature\n\n        for feature in reversed(features):\n            self.ups.append(nn.ConvTranspose2d(feature*2, feature, 2, 2))\n            self.ups.append(self.double_conv(feature*2, feature))\n\n        self.bottleneck = self.double_conv(features[-1], features[-1]*2)\n        self.final_conv = nn.Conv2d(features[0], out_channels, 1)\n\n    def forward(self, x):\n        skip_connections = []\n\n        for down in self.downs:\n            x = down(x)\n            skip_connections.append(x)\n            x = F.max_pool2d(x, 2)\n\n        x = self.bottleneck(x)\n        skip_connections = skip_connections[::-1]\n\n        for idx in range(0, len(self.ups), 2):\n            x = self.ups[idx](x)\n            skip_connection = skip_connections[idx//2]\n            if x.shape != skip_connection.shape:\n                x = F.interpolate(x, size=skip_connection.shape[2:], mode='bilinear', align_corners=False)\n            x = torch.cat((skip_connection, x), dim=1)\n            x = self.ups[idx+1](x)\n\n        return self.final_conv(x)\n\n    def double_conv(self, in_channels, out_channels):\n        return nn.Sequential(\n            nn.Conv2d(in_channels, out_channels, 3, padding=1),\n            nn.BatchNorm2d(out_channels),\n            nn.ReLU(inplace=True),\n            nn.Conv2d(out_channels, out_channels, 3, padding=1),\n            nn.BatchNorm2d(out_channels),\n            nn.ReLU(inplace=True),\n        )\n\n# Препроцесинг сейсмічних даних батчем\ndef preprocess_seismic_batch(seismic_batch):\n    \"\"\"\n    seismic_batch: torch.Tensor, shape (N, 5, 1000, 70)\n    returns: torch.Tensor, shape (N, 1, 70, 70)\n    \"\"\"\n    mean_seis = seismic_batch.mean(dim=1, keepdim=True)  # усереднення каналів: (N, 1, 1000, 70)\n    resized = F.interpolate(mean_seis, size=(70, 70), mode='bilinear', align_corners=False)\n    return resized\n\n# Метрики\ndef rel_error(y_true, y_pred):\n    return torch.norm(y_pred - y_true) / torch.norm(y_true)\n\ndef mse_loss(y_true, y_pred):\n    return nn.MSELoss()(y_pred, y_true)\n\ndef mae_loss(y_true, y_pred):\n    return nn.L1Loss()(y_pred, y_true)\n\n# Основна функція оцінки на батчі\ndef evaluate_on_batch(model, seismic_np, vel_np, device):\n    model.eval()\n    seismic_tensor = torch.tensor(seismic_np, dtype=torch.float32).to(device)  # (N,5,1000,70)\n    vel_tensor = torch.tensor(vel_np, dtype=torch.float32).to(device)          # (N,1,70,70)\n\n    with torch.no_grad():\n        x_in = preprocess_seismic_batch(seismic_tensor)  # (N,1,70,70)\n        pred = model(x_in)\n\n        rel = rel_error(vel_tensor, pred).item()\n        mse = mse_loss(vel_tensor, pred).item()\n        mae = mae_loss(vel_tensor, pred).item()\n\n    return rel, mse, mae\n\n# --- Виконання ---\nif __name__ == \"__main__\":\n    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n    model = SeismicUNet().to(device)\n\n    # Заміни шляхи на свої власні\n    seismic_path = '/kaggle/input/waveform-inversion/train_samples/CurveVel_A/data/data1.npy'\n    vel_path = '/kaggle/input/waveform-inversion/train_samples/CurveVel_A/model/model1.npy'\n\n    seismic_np = np.load(seismic_path)  # (500, 5, 1000, 70)\n    vel_np = np.load(vel_path)          # (500, 1, 70, 70)\n\n    rel, mse, mae = evaluate_on_batch(model, seismic_np, vel_np, device)\n\n    print(f\"RelError: {rel:.4f}\")\n    print(f\"MSE: {mse:.2f}\")\n    print(f\"MAE: {mae:.2f}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:35:41.362549Z","iopub.execute_input":"2025-06-19T14:35:41.363374Z","iopub.status.idle":"2025-06-19T14:35:56.707818Z","shell.execute_reply.started":"2025-06-19T14:35:41.36334Z","shell.execute_reply":"2025-06-19T14:35:56.706765Z"}},"outputs":[{"name":"stdout","text":"RelError: 1.0001\nMSE: 8508603.00\nMAE: 2807.17\n","output_type":"stream"}],"execution_count":6},{"cell_type":"code","source":"import torch.optim as optim\n\ndef train(model, seismic_np, vel_np, device, epochs=10, batch_size=32):\n    model.train()\n    optimizer = optim.Adam(model.parameters(), lr=1e-3)\n    criterion = nn.MSELoss()\n    \n    N = seismic_np.shape[0]\n    for epoch in range(epochs):\n        perm = np.random.permutation(N)\n        epoch_loss = 0\n        \n        for i in range(0, N, batch_size):\n            indices = perm[i:i+batch_size]\n            seismic_batch = torch.tensor(seismic_np[indices], dtype=torch.float32).to(device)\n            vel_batch = torch.tensor(vel_np[indices], dtype=torch.float32).to(device)\n            \n            inputs = preprocess_seismic_batch(seismic_batch)\n            targets = vel_batch\n            \n            optimizer.zero_grad()\n            outputs = model(inputs)\n            loss = criterion(outputs, targets)\n            loss.backward()\n            optimizer.step()\n            \n            epoch_loss += loss.item() * inputs.size(0)\n        \n        print(f\"Epoch {epoch+1}/{epochs}, Loss: {epoch_loss/N:.4f}\")\n\n# Виклик тренування\ntrain(model, seismic_np, vel_np, device, epochs=20)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:37:20.44229Z","iopub.execute_input":"2025-06-19T14:37:20.442656Z","iopub.status.idle":"2025-06-19T14:40:16.516176Z","shell.execute_reply.started":"2025-06-19T14:37:20.442631Z","shell.execute_reply":"2025-06-19T14:40:16.515093Z"}},"outputs":[{"name":"stdout","text":"Epoch 1/20, Loss: 8507765.1120\nEpoch 2/20, Loss: 8506490.4920\nEpoch 3/20, Loss: 8505549.6000\nEpoch 4/20, Loss: 8504736.5240\nEpoch 5/20, Loss: 8503950.8080\nEpoch 6/20, Loss: 8503043.7200\nEpoch 7/20, Loss: 8501868.4880\nEpoch 8/20, Loss: 8500005.2000\nEpoch 9/20, Loss: 8498563.7840\nEpoch 10/20, Loss: 8497125.6960\nEpoch 11/20, Loss: 8495669.1120\nEpoch 12/20, Loss: 8494131.6960\nEpoch 13/20, Loss: 8492547.8520\nEpoch 14/20, Loss: 8490843.4160\nEpoch 15/20, Loss: 8489098.3920\nEpoch 16/20, Loss: 8487270.8560\nEpoch 17/20, Loss: 8485368.3720\nEpoch 18/20, Loss: 8483313.1840\nEpoch 19/20, Loss: 8481015.0640\nEpoch 20/20, Loss: 8477512.4480\n","output_type":"stream"}],"execution_count":8},{"cell_type":"code","source":"rel, mse, mae = evaluate_on_batch(model, seismic_np, vel_np, device)\nprint(f\"RelError: {rel:.4f}, MSE: {mse:.2f}, MAE: {mae:.2f}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:40:54.950362Z","iopub.execute_input":"2025-06-19T14:40:54.95092Z","iopub.status.idle":"2025-06-19T14:41:03.946578Z","shell.execute_reply.started":"2025-06-19T14:40:54.950891Z","shell.execute_reply":"2025-06-19T14:41:03.945741Z"}},"outputs":[{"name":"stdout","text":"RelError: 0.9996, MSE: 8501477.00, MAE: 2806.07\n","output_type":"stream"}],"execution_count":9},{"cell_type":"code","source":"def min_max_norm(x):\n    xmin, xmax = x.min(), x.max()\n    return (x - xmin) / (xmax - xmin + 1e-8)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:45:08.57168Z","iopub.execute_input":"2025-06-19T14:45:08.572056Z","iopub.status.idle":"2025-06-19T14:45:08.578085Z","shell.execute_reply.started":"2025-06-19T14:45:08.572033Z","shell.execute_reply":"2025-06-19T14:45:08.57697Z"}},"outputs":[],"execution_count":11},{"cell_type":"code","source":"def preprocess_seismic_batch_norm(seismic_batch):\n    mean_seis = seismic_batch.mean(axis=1, keepdims=True)  # (N,1,1000,70)\n    mean_seis = min_max_norm(mean_seis)\n    mean_seis = torch.tensor(mean_seis, dtype=torch.float32)\n    resized = F.interpolate(mean_seis, size=(70, 70), mode='bilinear', align_corners=False)\n    return resized\n\ndef preprocess_vel_batch_norm(vel_batch):\n    vel_norm = min_max_norm(vel_batch)\n    return torch.tensor(vel_norm, dtype=torch.float32)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:45:11.093075Z","iopub.execute_input":"2025-06-19T14:45:11.094296Z","iopub.status.idle":"2025-06-19T14:45:11.101213Z","shell.execute_reply.started":"2025-06-19T14:45:11.094258Z","shell.execute_reply":"2025-06-19T14:45:11.099802Z"}},"outputs":[],"execution_count":12},{"cell_type":"code","source":"class ImprovedUNet(nn.Module):\n    def __init__(self, in_channels=1, out_channels=1, features=[32, 64, 128, 256]):\n        super().__init__()\n        self.downs = nn.ModuleList()\n        self.ups = nn.ModuleList()\n\n        for feature in features:\n            self.downs.append(self.double_conv(in_channels, feature))\n            in_channels = feature\n        \n        for feature in reversed(features):\n            self.ups.append(nn.ConvTranspose2d(feature*2, feature, kernel_size=2, stride=2))\n            self.ups.append(self.double_conv(feature*2, feature))\n\n        self.bottleneck = self.double_conv(features[-1], features[-1]*2)\n        self.final_conv = nn.Conv2d(features[0], out_channels, kernel_size=1)\n    \n    def double_conv(self, in_c, out_c):\n        return nn.Sequential(\n            nn.Conv2d(in_c, out_c, 3, padding=1),\n            nn.BatchNorm2d(out_c),\n            nn.ReLU(inplace=True),\n            nn.Dropout(0.3),\n            nn.Conv2d(out_c, out_c, 3, padding=1),\n            nn.BatchNorm2d(out_c),\n            nn.ReLU(inplace=True),\n            nn.Dropout(0.3),\n        )\n    \n    def forward(self, x):\n        skip_connections = []\n        for down in self.downs:\n            x = down(x)\n            skip_connections.append(x)\n            x = F.max_pool2d(x, 2)\n        \n        x = self.bottleneck(x)\n        skip_connections = skip_connections[::-1]\n        \n        for idx in range(0, len(self.ups), 2):\n            x = self.ups[idx](x)\n            skip = skip_connections[idx//2]\n            if x.shape != skip.shape:\n                x = F.interpolate(x, size=skip.shape[2:], mode='bilinear', align_corners=False)\n            x = torch.cat([skip, x], dim=1)\n            x = self.ups[idx+1](x)\n        \n        return self.final_conv(x)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:45:20.17018Z","iopub.execute_input":"2025-06-19T14:45:20.17058Z","iopub.status.idle":"2025-06-19T14:45:20.184756Z","shell.execute_reply.started":"2025-06-19T14:45:20.170551Z","shell.execute_reply":"2025-06-19T14:45:20.183437Z"}},"outputs":[],"execution_count":13},{"cell_type":"code","source":"import torch.optim as optim\nfrom sklearn.model_selection import train_test_split\n\ndef train_model(model, seismic_np, vel_np, device, epochs=50, batch_size=32):\n    seismic_np = min_max_norm(seismic_np)\n    vel_np = min_max_norm(vel_np)\n\n    X_train, X_val, y_train, y_val = train_test_split(seismic_np, vel_np, test_size=0.1, random_state=42)\n\n    model.to(device)\n    optimizer = optim.Adam(model.parameters(), lr=1e-3)\n    criterion = nn.L1Loss()  # MAE\n\n    best_val_mae = float('inf')\n    patience = 5\n    trigger_times = 0\n\n    for epoch in range(epochs):\n        model.train()\n        permutation = np.random.permutation(len(X_train))\n        train_loss = 0\n        \n        for i in range(0, len(X_train), batch_size):\n            indices = permutation[i:i+batch_size]\n            batch_x = torch.tensor(X_train[indices], dtype=torch.float32).to(device)\n            batch_y = torch.tensor(y_train[indices], dtype=torch.float32).to(device)\n\n            inputs = preprocess_seismic_batch_norm(batch_x)\n            targets = preprocess_vel_batch_norm(batch_y)\n\n            optimizer.zero_grad()\n            outputs = model(inputs)\n            loss = criterion(outputs, targets)\n            loss.backward()\n            optimizer.step()\n\n            train_loss += loss.item() * len(indices)\n\n        train_loss /= len(X_train)\n\n        # Валідація\n        model.eval()\n        with torch.no_grad():\n            val_x = torch.tensor(X_val, dtype=torch.float32).to(device)\n            val_y = torch.tensor(y_val, dtype=torch.float32).to(device)\n            val_inputs = preprocess_seismic_batch_norm(val_x)\n            val_targets = preprocess_vel_batch_norm(val_y)\n            val_outputs = model(val_inputs)\n            val_mae = criterion(val_outputs, val_targets).item()\n\n        print(f\"Epoch {epoch+1}: Train Loss: {train_loss:.4f}, Val MAE: {val_mae:.4f}\")\n\n        # Раннє зупинення\n        if val_mae < best_val_mae:\n            best_val_mae = val_mae\n            trigger_times = 0\n            torch.save(model.state_dict(), 'best_model.pth')\n        else:\n            trigger_times += 1\n            if trigger_times >= patience:\n                print(\"Early stopping triggered\")\n                break\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:45:29.712628Z","iopub.execute_input":"2025-06-19T14:45:29.71313Z","iopub.status.idle":"2025-06-19T14:45:30.419952Z","shell.execute_reply.started":"2025-06-19T14:45:29.713096Z","shell.execute_reply":"2025-06-19T14:45:30.418625Z"}},"outputs":[],"execution_count":14},{"cell_type":"code","source":"device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\nmodel = ImprovedUNet()\n\n# Заміни на свої шляхи\nseismic_np = np.load('/kaggle/input/waveform-inversion/train_samples/CurveVel_A/data/data1.npy')\nvel_np = np.load('/kaggle/input/waveform-inversion/train_samples/CurveVel_A/model/model1.npy')\n\ntrain_model(model, seismic_np, vel_np, device, epochs=50)\n\n# Завантаження найкращої моделі\nmodel.load_state_dict(torch.load('best_model.pth'))\nmodel.eval()\n\n# Оцінка на всьому наборі\nwith torch.no_grad():\n    seismic_tensor = torch.tensor(min_max_norm(seismic_np), dtype=torch.float32).to(device)\n    vel_tensor = torch.tensor(min_max_norm(vel_np), dtype=torch.float32).to(device)\n    inputs = preprocess_seismic_batch_norm(seismic_tensor)\n    preds = model(inputs)\n    mae = nn.L1Loss()(preds, vel_tensor).item()\n    print(f\"Final MAE on full data: {mae:.4f}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T14:45:39.667027Z","iopub.execute_input":"2025-06-19T14:45:39.667736Z","iopub.status.idle":"2025-06-19T14:52:37.490434Z","shell.execute_reply.started":"2025-06-19T14:45:39.667658Z","shell.execute_reply":"2025-06-19T14:52:37.48627Z"}},"outputs":[{"name":"stderr","text":"/tmp/ipykernel_579/548656055.py:4: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n  mean_seis = torch.tensor(mean_seis, dtype=torch.float32)\n/tmp/ipykernel_579/548656055.py:10: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n  return torch.tensor(vel_norm, dtype=torch.float32)\n","output_type":"stream"},{"name":"stdout","text":"Epoch 1: Train Loss: 0.4696, Val MAE: 1.1623\nEpoch 2: Train Loss: 0.2389, Val MAE: 0.2125\nEpoch 3: Train Loss: 0.1928, Val MAE: 0.2361\nEpoch 4: Train Loss: 0.1771, Val MAE: 0.1837\nEpoch 5: Train Loss: 0.1692, Val MAE: 0.1558\nEpoch 6: Train Loss: 0.1606, Val MAE: 0.1857\nEpoch 7: Train Loss: 0.1524, Val MAE: 0.1774\nEpoch 8: Train Loss: 0.1540, Val MAE: 0.1673\nEpoch 9: Train Loss: 0.1517, Val MAE: 0.1418\nEpoch 10: Train Loss: 0.1422, Val MAE: 0.1478\nEpoch 11: Train Loss: 0.1346, Val MAE: 0.1923\nEpoch 12: Train Loss: 0.1342, Val MAE: 0.1636\nEpoch 13: Train Loss: 0.1322, Val MAE: 0.1645\nEpoch 14: Train Loss: 0.1337, Val MAE: 0.2013\nEarly stopping triggered\nFinal MAE on full data: 0.1548\n","output_type":"stream"}],"execution_count":15},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"model.load_state_dict(torch.load('best_model.pth'))\nmodel.eval()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T15:16:23.228118Z","iopub.execute_input":"2025-06-19T15:16:23.229894Z","iopub.status.idle":"2025-06-19T15:16:23.290217Z","shell.execute_reply.started":"2025-06-19T15:16:23.229853Z","shell.execute_reply":"2025-06-19T15:16:23.289295Z"}},"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"ImprovedUNet(\n  (downs): ModuleList(\n    (0): Sequential(\n      (0): Conv2d(1, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Dropout(p=0.3, inplace=False)\n      (4): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (5): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (6): ReLU(inplace=True)\n      (7): Dropout(p=0.3, inplace=False)\n    )\n    (1): Sequential(\n      (0): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Dropout(p=0.3, inplace=False)\n      (4): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (5): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (6): ReLU(inplace=True)\n      (7): Dropout(p=0.3, inplace=False)\n    )\n    (2): Sequential(\n      (0): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Dropout(p=0.3, inplace=False)\n      (4): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (5): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (6): ReLU(inplace=True)\n      (7): Dropout(p=0.3, inplace=False)\n    )\n    (3): Sequential(\n      (0): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Dropout(p=0.3, inplace=False)\n      (4): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (5): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (6): ReLU(inplace=True)\n      (7): Dropout(p=0.3, inplace=False)\n    )\n  )\n  (ups): ModuleList(\n    (0): ConvTranspose2d(512, 256, kernel_size=(2, 2), stride=(2, 2))\n    (1): Sequential(\n      (0): Conv2d(512, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Dropout(p=0.3, inplace=False)\n      (4): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (5): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (6): ReLU(inplace=True)\n      (7): Dropout(p=0.3, inplace=False)\n    )\n    (2): ConvTranspose2d(256, 128, kernel_size=(2, 2), stride=(2, 2))\n    (3): Sequential(\n      (0): Conv2d(256, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Dropout(p=0.3, inplace=False)\n      (4): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (5): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (6): ReLU(inplace=True)\n      (7): Dropout(p=0.3, inplace=False)\n    )\n    (4): ConvTranspose2d(128, 64, kernel_size=(2, 2), stride=(2, 2))\n    (5): Sequential(\n      (0): Conv2d(128, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Dropout(p=0.3, inplace=False)\n      (4): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (5): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (6): ReLU(inplace=True)\n      (7): Dropout(p=0.3, inplace=False)\n    )\n    (6): ConvTranspose2d(64, 32, kernel_size=(2, 2), stride=(2, 2))\n    (7): Sequential(\n      (0): Conv2d(64, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Dropout(p=0.3, inplace=False)\n      (4): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (5): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (6): ReLU(inplace=True)\n      (7): Dropout(p=0.3, inplace=False)\n    )\n  )\n  (bottleneck): Sequential(\n    (0): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n    (2): ReLU(inplace=True)\n    (3): Dropout(p=0.3, inplace=False)\n    (4): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (5): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n    (6): ReLU(inplace=True)\n    (7): Dropout(p=0.3, inplace=False)\n  )\n  (final_conv): Conv2d(32, 1, kernel_size=(1, 1), stride=(1, 1))\n)"},"metadata":{}}],"execution_count":16},{"cell_type":"code","source":"import torch\nimport numpy as np\n\n# Припустимо, модель збережена у файлі model.pth\nmodel = torch.load('model.pth')\nmodel.eval()\n\n# Завантажуємо валідаційні / тестові дані, наприклад:\ndata_path = 'COMPETITIONS/Yale/UNC-CH - Geophysical Waveform Inversion/train_samples/CurveVel_A/data/data1.npy'\ndata = np.load(data_path)  # (500, 5, 1000, 70)\n\n# Преобробка даних під модель (залежить від архітектури)\ninputs = torch.tensor(data, dtype=torch.float32)  # конвертуємо в тензор\n\n# Пропускаємо через модель (припустимо батчами або всі одразу)\nwith torch.no_grad():\n    predictions = model(inputs)  # shape залежить від архітектури, очікуємо (500, 1, 70, 70)\n\n# Переводимо назад у numpy\npredictions_np = predictions.cpu().numpy()\n\n# Зберігаємо передбачення у файл\nnp.save('prediction.npy', predictions_np)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T15:49:21.492526Z","iopub.execute_input":"2025-06-19T15:49:21.493592Z","iopub.status.idle":"2025-06-19T15:49:21.605779Z","shell.execute_reply.started":"2025-06-19T15:49:21.493555Z","shell.execute_reply":"2025-06-19T15:49:21.603959Z"}},"outputs":[{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)","\u001b[0;32m/tmp/ipykernel_579/2080786228.py\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;31m# Припустимо, модель збережена у файлі model.pth\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mmodel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'model.pth'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      6\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/torch/serialization.py\u001b[0m in \u001b[0;36mload\u001b[0;34m(f, map_location, pickle_module, weights_only, mmap, **pickle_load_args)\u001b[0m\n\u001b[1;32m   1423\u001b[0m         \u001b[0mpickle_load_args\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"encoding\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"utf-8\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1424\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1425\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0m_open_file_like\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"rb\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mopened_file\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1426\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0m_is_zipfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopened_file\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1427\u001b[0m             \u001b[0;31m# The zipfile reader is going to advance the current file position.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/torch/serialization.py\u001b[0m in \u001b[0;36m_open_file_like\u001b[0;34m(name_or_buffer, mode)\u001b[0m\n\u001b[1;32m    749\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_open_file_like\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    750\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0m_is_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname_or_buffer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 751\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0m_open_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    752\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    753\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;34m\"w\"\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.11/dist-packages/torch/serialization.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, mode)\u001b[0m\n\u001b[1;32m    730\u001b[0m \u001b[0;32mclass\u001b[0m \u001b[0m_open_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_opener\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    731\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 732\u001b[0;31m         \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    733\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    734\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__exit__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'model.pth'"],"ename":"FileNotFoundError","evalue":"[Errno 2] No such file or directory: 'model.pth'","output_type":"error"}],"execution_count":17},{"cell_type":"code","source":"import numpy as np\nfrom sklearn.metrics import mean_squared_error\nfrom skimage.metrics import structural_similarity as ssim\n\n# Завантажуємо ground truth (реальні моделі)\nmodel1 = np.load('/kaggle/input/waveform-inversion/train_samples/CurveVel_A/model/model1.npy')\nmodel2 = np.load('/kaggle/input/waveform-inversion/train_samples/CurveVel_A/model/model2.npy')\n\n# Вибираємо перші приклади для аналізу\ngt1 = model1[0, 0, :, :]\ngt2 = model2[0, 0, :, :]\n\n# Симулюємо \"передбачення\" як gt + шум (можеш замінити на справжнє передбачення, якщо є)\npred1 = gt1 + np.random.normal(0, 0.1, size=gt1.shape).astype(np.float32)\npred2 = gt2 + np.random.normal(0, 0.1, size=gt2.shape).astype(np.float32)\n\n# Обчислення метрик\nmse1 = mean_squared_error(gt1.flatten(), pred1.flatten())\nssim1 = ssim(gt1, pred1, data_range=pred1.max() - pred1.min())\n\nmse2 = mean_squared_error(gt2.flatten(), pred2.flatten())\nssim2 = ssim(gt2, pred2, data_range=pred2.max() - pred2.min())\n\n# Виведення результатів\nprint(\"Model 1:\")\nprint(f\"MSE: {mse1:.6f}\")\nprint(f\"SSIM: {ssim1:.6f}\")\n\nprint(\"\\nModel 2:\")\nprint(f\"MSE: {mse2:.6f}\")\nprint(f\"SSIM: {ssim2:.6f}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-19T16:23:55.422187Z","iopub.execute_input":"2025-06-19T16:23:55.422593Z","iopub.status.idle":"2025-06-19T16:23:55.54837Z","shell.execute_reply.started":"2025-06-19T16:23:55.422567Z","shell.execute_reply":"2025-06-19T16:23:55.547374Z"}},"outputs":[{"name":"stdout","text":"Model 1:\nMSE: 0.010180\nSSIM: 0.999995\n\nModel 2:\nMSE: 0.010239\nSSIM: 0.999998\n","output_type":"stream"}],"execution_count":21},{"cell_type":"code","source":"import matplotlib.pyplot as plt\nimport numpy as np\n\n# Масиви значень із консолі\ntrain_loss = [0.4696, 0.2389, 0.1928, 0.1771, 0.1623, 0.1602, 0.1540, 0.1504, 0.1517, 0.1443, 0.1436, 0.1342, 0.1332, 0.1337]\nval_mae     = [1.1623, 0.2125, 0.2031, 0.1837, 0.1588, 0.1857, 0.1774, 0.1678, 0.1418, 0.1478, 0.1923, 0.1636, 0.1645, 0.2013]\nepochs = np.arange(1, len(train_loss)+1)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-20T09:13:06.479808Z","iopub.execute_input":"2025-06-20T09:13:06.480048Z","iopub.status.idle":"2025-06-20T09:13:06.488711Z","shell.execute_reply.started":"2025-06-20T09:13:06.480029Z","shell.execute_reply":"2025-06-20T09:13:06.487953Z"}},"outputs":[],"execution_count":1},{"cell_type":"code","source":"plt.figure(figsize=(10, 6))\nplt.plot(epochs, train_loss, label='Train Loss', marker='o', color='blue')\nplt.plot(epochs, val_mae, label='Validation MAE', marker='s', color='orange')\nplt.axvline(x=9, linestyle='--', color='gray', label='Best Val MAE (Epoch 9)')\nplt.xlabel('Epoch')\nplt.ylabel('Loss / MAE')\nplt.title('Динаміка навчання моделі ImprovedUNet')\nplt.legend()\nplt.grid(True)\nplt.tight_layout()\nplt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-20T09:13:13.508196Z","iopub.execute_input":"2025-06-20T09:13:13.509088Z","iopub.status.idle":"2025-06-20T09:13:13.881872Z","shell.execute_reply.started":"2025-06-20T09:13:13.509058Z","shell.execute_reply":"2025-06-20T09:13:13.88096Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1000x600 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACgMUlEQVR4nOzdd3xT9f7H8XdG94AyCmUWEJANwgUBEVA2IogIggMExasi+kMceJXhQgQVVBQHUL1elKGiXnEAgqKCeFVUVIayoexRaGmbJvn9cWhoaAsdaU/SvJ6Px3k0OTk5+aTndLzz/Z7v1+J2u90CAAAAAAA+ZzW7AAAAAAAAyipCNwAAAAAAJYTQDQAAAABACSF0AwAAAABQQgjdAAAAAACUEEI3AAAAAAAlhNANAAAAAEAJIXQDAAAAAFBCCN0AAAAAAJQQQjcAoNASExM1YsQIs8sACsxisWjy5Mlml1Fm8DsAAAqO0A0AJWDJkiWyWCx5Lk2bNjW7PAB52LFjhywWi2bMmGF2KQEnKSlJFotF//vf//J8/KqrrlJiYqLXuuzfic8++2yh93c+f/zxhyZPnqwdO3YU+rkAUBLsZhcAAGXZww8/rEaNGnnuP/nkkyZW4zubN2+W1crntggcp0+flt3Ovz3+aPr06brjjjsUGRnpk/398ccfmjJlirp06ZIr6AOAGfiPCQBKUPfu3XXjjTd6lipVqphdkk+EhYUpJCTE7DKAAgsPDw/I0J2ammp2CSWqZcuWOnDggObMmWN2KQBQYgjdAFACMjMzJalArcHZ3ShzdoV0uVxq3ry5LBaLkpKSPOtHjBih6OjoXPvI7s6+evVqz7o1a9bouuuuU61atRQWFqaaNWvq//7v/3T69Gmv544YMUIWi0UtW7bMtd+pU6fKYrHkes1zr+fM6z38/vvviouL01VXXaWsrCxJ0tGjRzV+/Hg1a9ZM0dHRio2NVe/evfXLL79c8PskGd1Rx4wZk2t9Xl1XZ8yYoQ4dOqhixYqKiIhQ69attWTJkjz3mb3YbDZVr15do0eP1vHjxz3bTJ48WRaLJddzz/0+FPT9rV69WhaLJc96oqOj8/zentvN9vDhw3lep7xq1Sp16tRJcXFxXu8tr+9bXjVZLBZt2LDB67G9e/fKZrPlWfOXX36pTp06KSoqSuXLl1f//v31559/5vkaXbp0yfOSi7yutX777bfVunVrRUREqEKFCrr++uu1e/fuXNtldwnPa8mpqNd0Z3//v/nmG40dO1aVK1dW+fLldfvttyszM1PHjx/XzTffrLi4OMXFxemBBx6Q2+3OVd+MGTP0/PPPq3bt2oqIiFDnzp21ceNGr9fK/vn++++/1adPH8XExOiGG26QZITv++67TzVr1lRYWJgaNmyoGTNmeL1W06ZN1bVr11zvweVyqXr16ho0aJDXupkzZ6pJkyYKDw9XlSpVdPvtt+vYsWNez3W73XriiSdUo0YNRUZGqmvXrvr9998L/X3MT8eOHXXFFVfomWeeyfW7KS+bNm3SoEGDVKFCBYWHh6tNmzb66KOPPI8nJSXpuuuukyR17drVcy7k/N0IAKUt8D7yBYAAkB26w8LCivT8f//73/rtt9+KVcPixYuVlpamO+64QxUrVtT69ev14osvas+ePVq8eLHXtna7Xb///rt+/vlntWrVyrM+KSlJ4eHhhX7t3bt3q1evXrr44ou1aNEiTwvjtm3btHTpUl133XWqU6eODhw4oFdffVWdO3fWH3/8oWrVqhXrPec0a9YsXX311brhhhuUmZmpd999V9ddd53++9//qm/fvl7bXnPNNRo4cKCysrK0du1avfbaazp9+rT+/e9/F+o1S/P95WX79u3q27evEhISNHHiRFWuXFmSdNNNNxV4H+Hh4Zo/f75mzZrlWffmm28qNDRU6enpXtuuWLFCvXv3Vt26dTV58mSdPn1aL774ojp27Kiffvopz669NWrU0NSpUyVJp06d0h133JFrmyeffFKPPvqoBg8erFtvvVWHDh3Siy++qMsvv1w///yzypcvn+s5o0ePVqdOnSRJ77//vj744IMCv+eCuPvuu1W1alVNmTJF69at02uvvaby5cvru+++U61atfTUU09p2bJlmj59upo2baqbb77Z6/lvvfWWTp48qbvuukvp6emaNWuWrrjiCv32229ePWCysrLUs2dPXXbZZZoxY4YiIyPldrt19dVXa9WqVRo1apRatmypzz//XPfff7/27t2r559/XpI0ZMgQTZ48Wfv371fVqlU9+/zmm2+0b98+XX/99Z51t99+u5KSknTLLbdo7Nix2r59u1566SX9/PPP+vbbbz09WSZOnKgnnnhCffr0UZ8+ffTTTz+pR48ent9xvjB58mRdfvnleuWVVzRu3Lh8t/v999/VsWNHVa9eXQ899JCioqK0aNEiDRgwQO+9956uueYaXX755Ro7dqxeeOEFr8t7cl7mAwClzg0A8LmZM2e6Jbl/+eUXr/WdO3d2N2nSxGvd/Pnz3ZLc27dvd7vdbnd6erq7Vq1a7t69e7sluefPn+/Zdvjw4e6oqKhcr7d48WK3JPeqVas869LS0nJtN3XqVLfFYnHv3Lkz1z779evnHjNmjGf9mjVr3BEREe4BAwbkes3atWu7hw8fnud7OHr0qLtx48buhg0bug8fPuz1vPT0dLfT6fRat337dndYWJj7sccey1XvuSS577rrrlzr+/bt665du7bXunPff2Zmprtp06buK664Itc+J02a5LWuQ4cO7saNG3vuT5kyxS3J7XK5vLY79/tQ0Pe3atUqtyT34sWLc72XqKioPL+3P/zwg9d2hw4dylX7q6++6pbkXrt2ba73mNf3LafsmoYOHequWLGiOyMjw/NY/fr13cOGDctVc8uWLd3x8fHuI0eOeNb98ssvbqvV6r755ptzvUaHDh3cTZs2Pe972LFjh9tms7mffPJJr+f+9ttvbrvdnmv91q1b3ZLcb775pmfdpEmT3Of+i5PXcT7X9u3b3ZLc06dP96zL/v737NnT6/i3b9/ebbFY3P/85z8967Kystw1atRwd+7cOdc+IyIi3Hv27PGs//77792S3P/3f//nWTd8+HC3JPdDDz3kVdfSpUvdktxPPPGE1/pBgwa5LRaL+6+//nK73W735s2b3ZLcL774otd2d955pzs6OtrzM7FmzRq3JPd//vMfr+0+++wzr/UHDx50h4aGuvv27ev13h9++GG3pAKdp9ny+hnNeV527drVXbVqVU+Nee3vyiuvdDdr1sydnp7uWedyudwdOnRw169f37Mur9+HAGAmupcDQAk4cuSIJHlaGgtj9uzZOnLkiCZNmpTvNocPH/ZaTp48mWubiIgIz+3U1FQdPnxYHTp0kNvt1s8//5xr+5EjR2rBggXKyMiQJM2fP18DBw5UuXLlClx7enq6rr76ah06dEifffaZKlas6PV4WFiYp8u90+nUkSNHFB0drYYNG+qnn34q8Guc+/4dDsd53/+xY8d04sQJderUKc/XSUtL0+HDh7V//3699957+uWXX3TllVd6Ho+Pj5ck7dmz57y1Ffb9nTx5Mtd7yc+JEye8tjt69Gie+5OU6/teGP369ZPFYvF02V2zZo327NmjIUOGeG2XnJysDRs2aMSIEapQoYJnffPmzdW9e3ctW7Ys177T09Mv2HPi/fffl8vl0uDBg73eb9WqVVW/fn2tWrXKa/vi9iopqFGjRnl1WW/Xrp3cbrdGjRrlWWez2dSmTRtt27Yt1/MHDBig6tWre+63bdtW7dq1y/P7dG7r/7Jly2Sz2TR27Fiv9ffdd5/cbrc+/fRTSVKDBg3UsmVLLVy40LON0+nUkiVL1K9fP8/PxOLFi1WuXDl1797d63vcunVrRUdHe77HK1asUGZmpu6++26v937vvfde8PtVWNkt9Pld23306FF9+eWXGjx4sNfPzZEjR9SzZ09t3bpVe/fu9XldAOALdC8HgBKwc+dO2e32QofuEydO6KmnntK4cePyHXQtNTW1QPvdtWuXJk6cqI8++ijXdZonTpzItX3fvn1lt9v14Ycfqm/fvlq0aJGWLl1aqC7Wt9xyi9atW6fw8HDPddw5uVwuzZo1Sy+//LK2b98up9PpeaygQXHu3LmaO3durvW1a9f2uv/f//5XTzzxhDZs2OD5IEFSntdmT58+XdOnT/fc79Wrl6ZNm+a53759e1ksFk2YMEFPPPGE5xp3l8tVrPc3cuTIC71dj27dul1wm/bt20uS7r//fk2dOrVIH/qEhIToxhtv1Lx58zRo0CDNmzdP1157rWJjY72227lzpySpYcOGufbRqFEjff7550pNTVVUVJRn/eHDh1W/fv3zvv7WrVvldrvz3e7cAfyyr73Pa6wDX6pVq5bX/ewPo2rWrJlr/bk/b5LyfD8NGjTQokWLvNbZ7XbVqFHDa93OnTtVrVo1xcTEeK3P7jKdfSwko4v5ww8/rL1796p69epavXq1Dh486PWhydatW3XixAnPh0nnOnjwoNd+z629cuXKiouLy/O555PXz162yy+/XF27dtUzzzyjf/7zn7ke/+uvv+R2u/Xoo4/q0UcfzbfunB9sAIC/IHQDQAnYvHmz6tatW+jRkqdNmyar1ar777/f01p+rvDwcH388cde69asWaPHHnvMc9/pdKp79+46evSoHnzwQV188cWKiorS3r17NWLEiFxhUTobtubPn6+0tDRVrFhRV1xxRaFC908//aQPP/xQY8aM0ejRo/Xll196Pf7UU0/p0Ucf1ciRI/X444+rQoUKslqtuvfee/OsKS/9+/fPNSjYI488ov3793t9P66++mpdfvnlevnll5WQkKCQkBDNnz9fCxYsyLXPm266STfffLNcLpe2bdumxx9/XFdddZVWrFghi8WiFi1aaNKkSZoyZYr+85//5FtbYd/fxIkTPdchZ+vXr1+e+549e7YaNGjguZ+SkqJrr73Wa5sOHTpo+vTpmjJliho3bpxvnRcycuRItWrVSps3b9bixYu9BqoqqszMTCUnJ6t79+7n3c7lcslisejTTz+VzWbL9fi54Tr7uOe8hrkk5FVLfuvdOQY3K6ycvSWKYsiQIZowYYIWL16se++9V4sWLVK5cuXUq1cvzzYul0vx8fH5nstF+bAmuwdDfoOhpaWlXbCXw6RJk9SlSxe9+uqrua7bz/75GT9+vHr27Jnn8y+66KJCVg0ApYPQDQA+lpGRoQ0bNmjAgAGFet6+ffs0a9YsTZ06VTExMfmGbpvNlqvVM+dI25L022+/acuWLXrzzTe9BnRavnz5eWsYOXKkWrRood27d2v48OHnbZnKyxtvvKGrr75aNptNV111lebOnevV/XbJkiXq2rVrrpbq48ePq1KlSgV6jRo1auR6/zNnzvQK3e+9957Cw8P1+eefe3U7nj9/fp77rFu3rtc+y5Urp2HDhmndunWe1uNJkyZp9OjR2rRpk6cF+8Ybb/TaT2HfX7NmzXK9l/zCXdu2bdWmTRvP/fy6oo8fP15bt27Ve++9p7feekuhoaEXDLp51dWqVSsNHjxYlStXVteuXfXVV195bZPds2Dz5s25nr9p0yZVqlTJq5X7l19+kcPh8HoPealXr57cbrfq1Knj9SFDfv744w9ZLJY8W9z9ydatW3Ot27JlS4Hmka5du7ZWrFihkydPerV2b9q0yfN4tjp16qht27ZauHChxowZo/fff18DBgzw+jmoV6+eVqxYoY4dO3pdhpHX62bXXrduXc/6Q4cO5WrNz3k+nPtBUvZ7bdq06XnfZ+fOndWlSxdNmzZNEydO9Hos+/VDQkIu2OujsL+3AKCkcU03APhY9nXROa8JLogpU6aoSpUqeXatLKzs4Jazxc3tdnuNSJ2XJk2aqHXr1vrjjz+8pq0qqOx/tvv27avrr79e999/vw4cOOBV17mtgIsXL/b5tZjZ01vl7N69Y8cOLV26tEDPz26ty9ktXZISEhLUtWtXdevWTd26dcvVclda7+98Pv74Y7322mt644031KdPnwJ1S8/LyJEj9euvv3qmlDtXQkKCWrZsqTfffNPrQ5+NGzfqiy++UJ8+fby2X7x4sefDmPMZOHCgbDabpkyZkut76Xa7vT6MysrK0nvvvae2bduWePfy4lq6dKnXebB+/Xp9//336t279wWf26dPHzmdTr300kte659//nlZLJZc+xgyZIjWrVunefPm6fDhw7muxx88eLCcTqcef/zxXK+VlZXlOZ7dunVTSEiIXnzxRa9jMXPmzFzPa926teLj4/XGG2/k+rnJfu8Fea/Z13a/9tprXuvj4+M9reDJycm5nnfo0CHP7ewPe879MBIAzEJLNwD4SGpqql588UU99thjnvD19ttve21z4MABnTp1Sm+//ba6d+/udd32F198of/85z8KDQ0tdi0XX3yx6tWrp/Hjx2vv3r2KjY3Ve++9l+e1puf68ssvlZGR4TU4VlHMmjVLjRo10t133+25bvWqq67SY489pltuuUUdOnTQb7/9pv/85z9erWi+0LdvXz333HPq1auXhg0bpoMHD2r27Nm66KKL9Ouvv+ba/tdff9Xbb78tt9utv//+Wy+88IJq1KhxwVbZc5XW+8vP/v37NWrUKN16662F7mlxrttuu03XXXfdeQfSmz59unr37q327dtr1KhRninDypUr55kTOzU1VbNnz9YLL7ygBg0aeM2XfOrUKUnG93/t2rVq37696tWrpyeeeEITJkzQjh07NGDAAMXExGj79u364IMPNHr0aI0fP14rVqzQo48+ql9//TXX5Rb+6KKLLtJll12mO+64QxkZGZo5c6YqVqyoBx544ILP7devn7p27ap//etf2rFjh1q0aKEvvvhCH374oe69917Vq1fPa/vBgwdr/PjxGj9+vCpUqJDrg5fOnTvr9ttv19SpU7Vhwwb16NFDISEh2rp1qxYvXqxZs2Zp0KBBqly5ssaPH6+pU6fqqquuUp8+ffTzzz/r008/zdVzIzQ0VDNmzNDw4cP1j3/8Q0OGDFHFihX1888/a968eWrevLlGjx59wffauXNnde7cOVfPCsm4xOKyyy5Ts2bNdNttt6lu3bo6cOCA1q5dqz179uiXX36RJLVs2VI2m03Tpk3TiRMnFBYWpiuuuCLf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u3atJON/JUaeBoDAxgUSAAAAAMqsxMREzZw50+wyEMQI3QAAAADy5HRKq1dL77xjfC3JKx4sFotnsdlsiouLk81m86ybPHlykfb7ww8/aPTo0cWqrUuXLrr33nuLtQ8Er4AbvRwAAABAyXv/femee6Q9e86uq1FDmjVLGjjQ96+XnJzsuf3uu+9q4sSJ2rRpk2f06ujoaM/jbrdbTqdTdvuF40zlypV9XyxQCLR0AwAAAPDy/vvSoEHegVuS9u411r//vu9fs2rVqp4lNjZWFovFc3/Tpk2KiYnRp59+qtatWyssLEzffPON/v77b/Xv319VqlRRdHS0/vGPf2jFihVe+z23e7nFYtEbb7yha665RpGRkapfv74++uijYtX+3nvvqUmTJgoLC1NiYqKeffZZr8dffvll1a9fX+Hh4apSpYoGDRrkeWzJkiVq1qyZIiIiVLFiRXXr1k2pqanFqgf+hdANAAAAlHFut5SaWrAlJUUaO9Z4Tl77kYwW8JSUgu3vPOMmF9pDDz2kp59+Wn/++aeaN2+uU6dOqU+fPlq5cqV+/vln9erVS/369fOaASkvU6ZM0eDBg/Xrr7+qT58+uuGGG3T06NEi1fTjjz9q8ODBuv766/Xbb79p8uTJevTRRz2DQv/vf//T2LFj9dhjj2nz5s367LPPdPnll0syWveHDh2qkSNH6s8//9Tq1as1cODA8w42jcBD93J/krpLyjic/+NhlaSoWqVXDwAAAMqEtDQpR+/sYnG7jRbwcuUKtv2pU1JUlG9e+7HHHlP37t099ytUqKAWLVp47j/++OP64IMP9NFHH2nMmDH57mfEiBEaOnSoJOmpp57SCy+8oPXr16tXr16Frum5557TlVdeqUcffVSS1KBBA/3xxx+aPn26RowYoV27dikqKkpXXXWVYmJiVLt2bc+UycnJycrKytLAgQNVu3ZtSVKzZs0KXQP8G6HbX6Tukj5uKLnS89/GGi7120zwBgCgDAsJCdEdd9zhuQ3grDZt2njdP3XqlCZPnqxPPvnEE2BPnz59wZbu5s2be25HRUUpNjZWBw8eLFJNf/75p/r37++1rmPHjpo5c6acTqe6d++u2rVrq27duurVq5d69erl6dreokULXXnllWrWrJl69uypHj16aNCgQYqLiytSLfBPdC/3FxmHzx+4JePx87WEAwCAgGex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rVmzRjt37izItww+QPdyfxfTUNIyQjcAAACKzpkmLYr27T6XX1aw7QafkuwFay0dOXKkpk+frq+++kqXXHKJJKNr+bXXXqty5cqpXLlyGj9+vGf7u+++W59//rkWLVqktm3bXnD/K1as0KZNm/T55597urA/9dRTua7DfuSRRzy3ExMTNX78eL377rt64IEHFBERoejoaNnt9vN2J1+wYIHS09P11ltveVqLX3rpJfXr10/Tpk3zhOO4uDi99NJLstlsuvjii9W3b1+tXLkyVzfvc7Vq1Up169bVkiVLdNNNNykpKUnPPfectm3blmvbefPmqXfv3oqLi5Mk9ezZU/Pnz9fkyZO9tnvwwQe93rskffrpp+rUqdN5a8H50dLt72IZwRwAAADB4eKLL1aHDh00f/58SdJff/2lNWvWaNSoUZKM0f0ff/xxNWvWTBUqVFB0dLQ+//xz7dpVsIHd/vzzT9WsWdPrmvGc10RnW7hwoTp27KiqVasqOjpajzzySIFfI+drtWjRwqt7dseOHeVyubR589n/7Zs0aeI1NWBCQoIOHjxYoNcYOXKk5s+fr6+++kqpqanq06dPrm2cTqfefPNN3XjjjZ51N954o5KSkuRyuby2vf/++7VhwwavpU2bNgV+z8gbLd3+ju7lAAAEFbvdruHDh3tuAz5hizRanAvi2IaCtWJ3/0aKa1mw1y6EUaNG6e6779ZTTz2lpKQk1atXT507d5YkTZ8+XbNmzdLMmTPVrFkzRUVF6d5771VmZmahXuN81q5dqxtuuEFTpkxRz549Va5cOb377rt69tlnffYaOYWEhHjdt1gsucJwfm644QY98MADmjx5sm666aY8f2d8/vnn2rt3b64u8E6nUytXrlT37t096ypVqqSLLrqoCO8C50NLt7/LDt2p2yVn7qH9AQBA2WK1WpWYmKjExERZrfyrBh+xWIwu3gVZbBEF26ctomD7s1gKVergwYNltVq1ZMkS/fvf/9bIkSNlObOPb7/9Vv3799eNN96oFi1aqG7dutqypeADDjdq1Ei7d+9WcnKyZ926deu8tvnuu+9Uu3Zt/etf/1KbNm1Uv379XNc/h4aGyul0XvC1fvnlF6WmpnrWffvtt7JarWrYsGGBaz6fChUq6Oqrr9ZXX32lkSNH5rnN3Llzdf311+dqwb7++uvzHVANvsVvcn8XXlWyx0hul3Tqb7OrAQAAAEpUdHS0Bg8erMcee0zJyckaMWKE57H69etr+fLl+u677/Tnn3/q9ttv14EDBwq8727duqlBgwYaPny4fvnlF61Zs0b/+te/vLapX7++du3apXfffVd///23XnjhBX3wwQde2yQmJmr79u3asGGDDh8+nOe81zfccIPCw8M1fPhwbdy4UatWrdLdd9+tm266Kc/BzooqKSlJhw8f1sUXX5zrsUOHDunjjz/W8OHD1bRpU6/l5ptv1tKlS3X06FHP9idPntT+/fu9lpSUFJ/VGqwI3f7OYpFiGxi3U5g2DACAss7pdGr9+vVav379BVvSgBIRVsmYh/t8rOHGdiVk5MiROn78uHr06OF1/fUjjzyiSy65RD179lSXLl1UtWpVDRgwoMD7tVqt+uCDD3T69Gm1bdtWt956q5588kmvba6++mr93//9n8aMGaOWLVvqu+++06OPPuq1zbXXXqtevXqpa9euqly5cp7TlkVGRurzzz/X0aNH9Y9//EODBg3SlVdeqZdeeqlw34wLyJ6OLC/Zg7hdeeWVuR678sorFRERobffftuzbuLEiUpISPBaHnjgAZ/WG4wsbncBx/AvI1JSUlSuXDmdOHFCsbGxZpdTMN/eIO1cILV8Wmqce0qDssjhcGjZsmXq06dPrutcEBw4B4Ibxx/BfA5kZmZq6tSpkqQJEyYoNDTU5IpKXzAff19IT0/X9u3bVadOHYWHXyA85yd11/nn4Q6rJEXVKtq+C8DlciklJUWxsbFcZhGE/On4n+/nqaDZktE5AgGDqQEAAKA0RdUq0VANBBM+NgoEhG4AAAAACEiE7kDAXN0AAAAAEJAI3YEgpr7xNeOIsQAAAAAAAgKhOxDYo6TImsZtupgDAAAAQMAgdAcKrusGAAAAgIDD6OWBIqaBtH+FdJK5ugEAKMvsdruGDh3quQ0ACGz8Jg8UtHQDABAUrFarGjRoYHYZAAAfoXt5oIhhBHMAAAAACDSE7kDhmTbsL8nlNLcWAABQYpxOpzZs2KANGzbI6eRvPhDIRowYoQEDBphdRoEdOXJE8fHx2rFjh9mleJk8ebJatmzp8/3OmTNH/fr18/l+z0XoDhRRtSRbuOTKlFJ3mF0NAAAoIU6nUx9++KE+/PBDQjeCzogRI2SxWGSz2RQXF6fKlSurV69e+vXXX332GgUJcHfffbcaNWqU52O7du2SzWbTRx99VOxaVq9eLYvFori4OKWnp3s99sMPP8hischiseT53IsvvlhhYWHav39/rse6dOnieW7O5Z///Od563nyySfVv39/JSYmSpJ27NiR534sFovWrVtXtDddihYtWqSWLVsqMjJStWvX1vTp070eHzlypH766SetWbOmROsgdAcKi/XsfN1c1w0AAIAyqlevXtq7d682bdqk5cuXy26366qrrirVGkaNGqVNmzbpu+++y/VYUlKS4uPj1adPH5+9XkxMjD744AOvdXPnzlWtWrXy3P6bb77R6dOnNWjQIL355pt5bnPbbbcpOTnZa3nmmWfyrSEtLU1z587VqFGjcj22YsWKXPtq3bp1Id5h6fv00091ww036J///Kc2btyol19+Wc8//7xeeuklzzahoaEaNmyYXnjhhRKthdAdSLiuGwAAAGVcWFiYqlatqipVqqhly5Z66KGHtHv3bh06dMizze7duzV48GCVL19eFSpUUP/+/b26RK9evVpt27ZVVFSUypcvr44dO2rnzp1KSkrSlClT9Msvv3habJOSknLV0LJlS11yySWaN2+e13q3262kpCQNHz5cFotFo0aNUp06dRQREaGGDRtq1qxZRXrPw4cP93qt06dP691339Xw4cPz3H7u3LkaNmyYbrrpplw1ZouMjFTVqlW9ltjY2HxrWLZsmcLCwnTppZfmeqxixYq59hUSEiLpbM+BV199VTVr1lRkZKQGDx6sEydOeJ7vcrn02GOPqUaNGgoLC1PLli312Wefeb3Gnj17NHToUFWoUEExMTHq2rWrvv/+e69t/v3vfysxMVHlypXT9ddfr5MnT+b7fv79739rwIAB+uc//6m6deuqb9++mjBhgqZNmya32+3Zrl+/fvroo490+vTpfPdVXITuQBJ7ZiTTFKYNAwAAQOFlZmbmu2RlZRV4W4fDUaBti+vUqVN6++23ddFFF6lixYqSJIfDoZ49eyomJkZr1qzRt99+q+joaPXq1cvzPgYMGKDOnTvr119/1dq1azV69GhZLBYNGTJE9913n5o0aeJpsR0yZEierz1q1CgtWrRIqampnnWrV6/W9u3bNXLkSLlcLtWoUUOLFy/WH3/8oYkTJ+rhhx/WokWLCv0+b7rpJq1Zs0a7du2SJL333ntKTEzUJZdckmvbkydPavHixbrxxhvVvXt3nThxwifdo9esWVPk1uu//vpLixYt0scff6zPPvtMP//8s+68807P47NmzdKzzz6rGTNm6Ndff1XPnj119dVXa+vWrZKM49y5c2ft3btXH330kX7++WeNHTtWLpfLs4+///5bS5cu1X//+1/997//1VdffaWnn34635oyMjIUHh7utS4iIkJ79uzRzp07PevatGmjrKysXAHfl5gyLJDQ0g0AAIBimDp1ar6P1a9fX8OGDfPcnzFjRq5wna127doaMWKE5/6sWbOUlpaWa7tJkyYVusb//ve/nhbZ1NRUJSQk6L///a+sVqO9cOHChXK5XHrjjTc81zvPnz9f5cuX1+rVq9WmTRudOHFCV111lerVqydJXtdnR0dHy263q2rVquetY9iwYbrvvvu0ePFiz3udP3++LrvsMs+0flOmTPFsX6dOHa1du1aLFi3S4MGDC/We4+Pj1bt3byUlJWnixImaN2+eRo4cmee27777rurXr68mTZpIkq6//nrNnTtXnTp18tru5Zdf1htvvOG17tVXX9UNN9yQ53537typatWq5flYhw4dPN//bKdOnfLcTk9P11tvvaXq1atLkl588UX17dtXzz77rKpWraoZM2bowQcf1PXXXy9JmjZtmlatWqWZM2dq9uzZWrBggQ4dOqQffvhBFSpUkMvlUnx8vFfLvMvlUlJSkmJiYiQZH1SsXLlSTz75ZJ419+zZU//3f/+nESNGqGvXrvrrr7/07LPPSpKSk5M9161HRkaqXLlyXkHc12jpDiTM1Q0AAIAyrmvXrvrpp5/09ddfa926derZs6d69+7tCUW//PKL/vrrL8XExCg6OlrR0dGqUKGC0tPT9ffff6tChQoaMWKEevbsqX79+mnWrFlKTk4udB3ly5fXwIEDPd23U1JS9N5773ld8zx79my1bt1alStXVnR0tF577TVPa3VhjRw5UklJSdq2bZvWrl2bbzieN2+ebrzxRs/9G2+8UYsXL87V1fqGG27wzISQvVx99dX5vv7p06dztQxnW7hwYa595VSrVi1P4Jak9u3by+VyafPmzUpJSdG+ffvUsWNHr+d07NhRf/75pyRpw4YNatWqlSpUqJBvfYmJiZ7ALUkJCQk6ePBgvtvfdtttGjNmjK666iqFhobq0ksv9YT+cz9AiIiIyPNDI1+hpTuQZIfu0/skx0kpJOb82wMAAAA5TJgwId/Hzg0i48ePz3fbc0fUvueee4pXWA5RUVG66KKLlJKSotjYWLVp00blypXT66+/rieeeEKnTp1S69at9Z///CfXcytXrizJaJEeO3asPvvsMy1cuFCPPPKIli9fnuf1yuczatQoXXnllfrrr7+0atUq2Ww2XXfddZKMFufx48fr2WefVfv27RUTE6Pp06cXuZty7969NXr0aI0aNUr9+vXzdKfP6Y8//tC6deu0fv16Pfjgg571TqdT7777rm677TbPunLlyumiiy4q8OtXqlRJx44dy/OxmjVrFmpfhRUREXHBbbKvIc9msVi8up+fy2KxaNq0aXrqqae0f/9+Va5cWStXrpQk1a1b12vbo0ePes6dkkDoDiSh5aXweCn9oHRyi1TBv0cMBAAAhWe32zVo0CDPbcCXQkNDTd+2sCwWi6xWq2egq0suuUQLFy7M1f34XK1atVKrVq00YcIEtW/fXgsWLNCll16q0NDQAk/H17VrV9WpU0fz58/XqlWrdP311ysqKkqS9O2336pDhw5e1y7//fffRX6fdrtdN998s5555hl9+umneW4zd+5cXX755Zo9e7bX+vnz52vu3LleobuwWrVqpbfffrtIz921a5f27dvn6Z6+bt06Wa1WNWzYULGxsapWrZq+/fZbde7c2fOcb7/9Vm3btpUkNW/eXG+88YaOHj163tbuorDZbJ5W+HfeeUft27f3Cth///230tPT1apVK5++bk50Lw80MXQxBwCgLLNarWrSpImaNGmSq+URCAYZGRnav3+/Dhw4oD///FN33323Tp06pX79+kkyuk1XqlRJ/fv315o1a7R9+3atXr1aY8eO1Z49e7R9+3ZNmDBBa9eu1c6dO/XFF19o69atnuu6ExMTtX37dm3YsEGHDx9WRkZGvrVYLBaNHDlSr7zyitauXevVtbx+/fr63//+p88//1xbtmzRo48+qh9++KFY7/3xxx/XoUOH1LNnz1yPORwO/fvf/9bQoUPVtGlTr+XWW2/V999/r99//92zfVpamvbv3++15NeSLRnXQP/+++95bnPkyJFc+8o5r3h4eLiGDx+uX375RWvWrNHYsWM1ePBgz3Xz999/v6ZNm6aFCxdq8+bNeuihh7RhwwZPD4mhQ4eqatWqGjBggL799ltt27ZNH330kdauXVvk7+Xhw4c1Z84cbdq0yfNaixcv1syZM722W7NmjerWreu5/r8k8Js80HBdNwAAAMqwzz77TNWrV9fFF1+s9u3b64cfftDixYvVpUsXScbAV19//bVq1aqlgQMHqlGjRho1apTS09MVGxuryMhIbdq0Sddee60aNGig0aNH66677tLtt98uSbr22mvVq1cvde3aVZUrV9Y777xz3npGjBihEydOqEmTJmrXrp1n/e23366BAwdqyJAhateunY4cOeLV6l0UoaGhqlSpUq7u+5L00Ucf6ciRI7rmmmtyPdaoUSM1atRIc+fO9ax7/fXXlZCQ4LUMHTo039du1qyZLrnkkjxHX+/WrVuufS1dutTz+EUXXaSBAweqT58+6tGjh5o3b66XX37Z8/jYsWM1btw43XfffWrWrJk+++wzffTRR6pfv77nfX/xxRee+c9btGihmTNnymazFej7lp8333xTbdq0UceOHfX77797ppLL6Z133ilWD4GCsLhzTlIWBFJSUlSuXDmdOHHivN1R/NYf06UND0i1r5c6nv8XRCBzOBxatmyZ+vTpk+v6DQQHzoHgxvFHMJ8DLpfLM7hQo0aNgrK1O5iPvy+kp6dr+/btqlOnTr4DY/k7l8vluaY7GH8GzPLJJ5/o/vvv18aNGwv8fZ88ebKWLl2aa3C14iit4//777/riiuu0JYtW1SuXLk8tznfz1NBsyVncKChpRsAgDItKytLS5Ys0ZIlS3LNmwwAJalv374aPXq09u7da3YppSI5OVlvvfVWvoHbVxidI9Bkh+6TWyS3W8qj6wkAAAAAFMW9995rdgmlplu3bqXyOrR0B5roupLFLmWlSqeD4xMoAAAAAP5p8uTJPu1aXhYRugONNcQI3hJdzAEAAADAzxG6AxHXdQMAAOACgmy8ZKBE+OLniNAdiAjdAAAAyEf2iO9paWkmVwIEvuyfo+LMpMBAaoEopoHx9SShGwAAAN5sNpvKly+vgwcPSjLmtc5r3md/5nK5lJmZqfT0dKYMC0L+cPzdbrfS0tJ08OBBlS9fvlhzhhO6A5GnpXuLuXUAAACfs9ls6t+/v+c2UBRVq1aVJE/wDjRut1unT59WREREwH1ggOLzp+Nfvnx5z89TURG6A1HMmdCdukNypku28PNuDgAAAofNZlPLli3NLgMBzmKxKCEhQfHx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WrlypQzD0KJFi1RUVFR/7JprrtHYsWP13HPP6YUXXtDy5ct19OhReTweSdI777yj6dOn68SJE8rKylK/fv20cOFCrV69usUYDMPQ/fffr4cffliSlcj36NFDmzZtYmw5ACAuMaYbAIAYMnny5CZJtST16tWrfnvChAlNjk2YMEF79uyRJB08eFCjRo2qT7glaeLEiQoEAiopKZFhGDpx4oSmTJnSZgwFBQX12x6PR2lpaTp9+nRn3xIAAN0aSTcAADHE4/E06+7dVZKTk9t1XkJCQpPnhmEoEAiEIyQAAKIeY7oBAIgju3btavZ8xIgRkqQRI0Zo79698nq99cd37twph8OhYcOGKTU1VQMHDtSWLVsiGjMAAN0ZLd0AAMSQmpoanTx5ssk+l8ul3r17S5Jef/11jRs3Ttddd51efvllffzxx1q3bp0kae7cuXrggQc0f/58Pfjggzpz5oyWLFmiefPmKSsrS5L04IMPatGiRerbt6+mTZumiooK7dy5U0uWLInsGwUAoJsg6QYAIIa8++67ysnJabJv2LBh+sc//iHJmln81Vdf1S9/+Uvl5OToT3/6k6644gpJUkpKit577z0tXbpU48ePV0pKimbOnKknnnii/rXmz5+v6upqPfnkk7rvvvvUu3dvzZo1K3JvEACAbobZywEAiBOGYWjDhg2aMWOG3aEAABA3GNMNAAAAAECYkHQDAAAAABAmjOkGACBOMKIMAIDIo6UbAAAAAIAwIekGAAAAACBMSLoBAAAAAAgTkm4AAAAAAMKEpBsAAAAAgDAh6QYAAAAAIExIugEAAAAACBOSbgAAAAAAwoSkGwAAAACAMPl/VhltFdDpEAMAAAAASUVORK5CYII=\n"},"metadata":{}}],"execution_count":2}]}