{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "6603a8fc-d9da-4037-b845-d9c38bae4ce4", "metadata": {}, "outputs": [], "source": [ "import os\n", "import torch\n", "import torch.nn as nn\n", "import torch.nn.functional as F\n", "import torch.optim as optim\n", "from torch.utils.data import DataLoader, Dataset, random_split\n", "from PIL import Image\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import cv2\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "id": "b8a8cedd-536d-4a48-a1af-7c40489ef0f8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.random.seed(42)\n", "torch.random.manual_seed(42)" ] }, { "cell_type": "code", "execution_count": 3, "id": "c28cc123-71be-47ff-b78f-3a4d5592df39", "metadata": {}, "outputs": [], "source": [ "# 计算图像数据中的最大像素值\n", "max_pixel_value = 107.49169921875" ] }, { "cell_type": "code", "execution_count": 4, "id": "dbfe80ce-4394-449c-a9a4-22ed15b2b8f2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "checkpoint before Generator is OK\n" ] } ], "source": [ "class NO2Dataset(Dataset):\n", " \n", " def __init__(self, image_dir, mask_dir):\n", " \n", " self.image_dir = image_dir\n", " self.mask_dir = mask_dir\n", " self.image_filenames = [f for f in os.listdir(image_dir) if f.endswith('.npy')] # 仅加载 .npy 文件\n", " self.mask_filenames = [f for f in os.listdir(mask_dir) if f.endswith('.jpg')] # 仅加载 .jpg 文件\n", " \n", " def __len__(self):\n", " \n", " return len(self.image_filenames)\n", " \n", " def __getitem__(self, idx):\n", " \n", " image_path = os.path.join(self.image_dir, self.image_filenames[idx])\n", " mask_idx = np.random.choice(self.mask_filenames)\n", " mask_path = os.path.join(self.mask_dir, mask_idx)\n", "\n", " # 加载图像数据 (.npy 文件)\n", " image = np.load(image_path).astype(np.float32)[:,:,:1] / max_pixel_value # 形状为 (96, 96, 1)\n", "\n", " # 加载掩码数据 (.jpg 文件)\n", " mask = np.array(Image.open(mask_path).convert('L')).astype(np.float32)\n", "\n", " # 将掩码数据中非0值设为1,0值保持不变\n", " mask = np.where(mask != 0, 1.0, 0.0)\n", "\n", " # 保持掩码数据形状为 (96, 96, 1)\n", " mask = mask[:, :, np.newaxis] # 将形状调整为 (96, 96, 1)\n", "\n", " # 应用掩码\n", " masked_image = image.copy()\n", " masked_image[:, :, 0] = image[:, :, 0] * mask.squeeze() # 遮盖NO2数据\n", "\n", " # cGAN的输入和目标\n", " X = masked_image[:, :, :1] # 形状为 (96, 96, 8)\n", " y = image[:, :, 0:1] # 目标输出为NO2数据,形状为 (96, 96, 1)\n", "\n", " # 转换形状为 (channels, height, width)\n", " X = np.transpose(X, (2, 0, 1)) # 转换为 (1, 96, 96)\n", " y = np.transpose(y, (2, 0, 1)) # 转换为 (1, 96, 96)\n", " mask = np.transpose(mask, (2, 0, 1)) # 转换为 (1, 96, 96)\n", "\n", " return torch.tensor(X, dtype=torch.float32), torch.tensor(y, dtype=torch.float32), torch.tensor(mask, dtype=torch.float32)\n", "\n", "# 实例化数据集和数据加载器\n", "image_dir = './out_mat/96/train/'\n", "mask_dir = './out_mat/96/mask/20/'\n", "\n", "print(f\"checkpoint before Generator is OK\")" ] }, { "cell_type": "code", "execution_count": 5, "id": "41da7319-9795-441d-bde8-8cf390365099", "metadata": {}, "outputs": [], "source": [ "train_set = NO2Dataset(image_dir, mask_dir)\n", "train_loader = DataLoader(train_set, batch_size=64, shuffle=True, num_workers=8)\n", "val_set = NO2Dataset('./out_mat/96/valid/', mask_dir)\n", "val_loader = DataLoader(val_set, batch_size=64, shuffle=False, num_workers=4)\n", "test_set = NO2Dataset('./out_mat/96/test/', mask_dir)\n", "test_loader = DataLoader(test_set, batch_size=64, shuffle=False, num_workers=4)" ] }, { "cell_type": "code", "execution_count": 6, "id": "70797703-1619-4be7-b965-5506b3d1e775", "metadata": {}, "outputs": [], "source": [ "# 可视化特定特征的函数\n", "def visualize_feature(input_feature,masked_feature, output_feature, title):\n", " plt.figure(figsize=(12, 6))\n", " plt.subplot(1, 3, 1)\n", " plt.imshow(input_feature[0].cpu().numpy(), cmap='RdYlGn_r')\n", " plt.title(title + \" Input\")\n", " plt.subplot(1, 3, 2)\n", " plt.imshow(masked_feature[0].cpu().numpy(), cmap='RdYlGn_r')\n", " plt.title(title + \" Masked\")\n", " plt.subplot(1, 3, 3)\n", " plt.imshow(output_feature[0].detach().cpu().numpy(), cmap='RdYlGn_r')\n", " plt.title(title + \" Recovery\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 7, "id": "645114e8-65a4-4867-b3fe-23395288e855", "metadata": {}, "outputs": [], "source": [ "class Conv(nn.Sequential):\n", " def __init__(self, in_channels, out_channels, kernel_size=3, dilation=1, stride=1, bias=False):\n", " super(Conv, self).__init__(\n", " nn.Conv2d(in_channels, out_channels, kernel_size=kernel_size, bias=bias,\n", " dilation=dilation, stride=stride, padding=((stride - 1) + dilation * (kernel_size - 1)) // 2)\n", " )" ] }, { "cell_type": "code", "execution_count": 8, "id": "2af52d0e-b785-4a84-838c-6fcfe2568722", "metadata": {}, "outputs": [], "source": [ "class ConvBNReLU(nn.Sequential):\n", " def __init__(self, in_channels, out_channels, kernel_size=3, dilation=1, stride=1, norm_layer=nn.BatchNorm2d,\n", " bias=False):\n", " super(ConvBNReLU, self).__init__(\n", " nn.Conv2d(in_channels, out_channels, kernel_size=kernel_size, bias=bias,\n", " dilation=dilation, stride=stride, padding=((stride - 1) + dilation * (kernel_size - 1)) // 2),\n", " norm_layer(out_channels),\n", " nn.ReLU()\n", " )" ] }, { "cell_type": "code", "execution_count": 9, "id": "31ecf247-e98b-4977-a145-782914a042bd", "metadata": {}, "outputs": [], "source": [ "class SeparableBNReLU(nn.Sequential):\n", " def __init__(self, in_channels, out_channels, kernel_size=3, stride=1, dilation=1, norm_layer=nn.BatchNorm2d):\n", " super(SeparableBNReLU, self).__init__(\n", " nn.Conv2d(in_channels, in_channels, kernel_size=kernel_size, stride=stride, dilation=dilation,\n", " padding=((stride - 1) + dilation * (kernel_size - 1)) // 2, groups=in_channels, bias=False),\n", " # 分离卷积,仅调整空间信息\n", " norm_layer(in_channels), # 对输入通道进行归一化\n", " nn.Conv2d(in_channels, out_channels, kernel_size=1, bias=False), # 这里进行升维操作\n", " nn.ReLU6()\n", " )" ] }, { "cell_type": "code", "execution_count": 10, "id": "7827bee2-74f7-4e47-b8c6-e41d5670e8b9", "metadata": {}, "outputs": [], "source": [ "class ResidualBlock(nn.Module):\n", " def __init__(self, in_channels, out_channels, stride=1, downsample=None):\n", " super(ResidualBlock, self).__init__()\n", " self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=3, stride=stride, padding=1, bias=False)\n", " self.bn1 = nn.BatchNorm2d(out_channels)\n", " self.relu = nn.ReLU(inplace=True)\n", " self.conv2 = nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1, bias=False)\n", " self.bn2 = nn.BatchNorm2d(out_channels)\n", "\n", " # 如果输入和输出通道不一致,进行降采样操作\n", " self.downsample = downsample\n", " if in_channels != out_channels or stride != 1:\n", " self.downsample = nn.Sequential(\n", " nn.Conv2d(in_channels, out_channels, kernel_size=1, stride=stride, bias=False),\n", " nn.BatchNorm2d(out_channels)\n", " )\n", "\n", " def forward(self, x):\n", " identity = x\n", " if self.downsample is not None:\n", " identity = self.downsample(x)\n", "\n", " out = self.conv1(x)\n", " out = self.bn1(out)\n", " out = self.relu(out)\n", "\n", " out = self.conv2(out)\n", " out = self.bn2(out)\n", "\n", " out += identity\n", " out = self.relu(out)\n", " return out\n" ] }, { "cell_type": "code", "execution_count": 11, "id": "7853bf62-02f5-4917-b950-6fdfe467df4a", "metadata": {}, "outputs": [], "source": [ "class Mlp(nn.Module):\n", " def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.ReLU6, drop=0.):\n", " super().__init__()\n", " out_features = out_features or in_features\n", " hidden_features = hidden_features or in_features\n", " self.fc1 = nn.Conv2d(in_features, hidden_features, 1, 1, 0, bias=True)\n", "\n", " self.act = act_layer()\n", " self.fc2 = nn.Conv2d(hidden_features, out_features, 1, 1, 0, bias=True)\n", " self.drop = nn.Dropout(drop, inplace=True)\n", "\n", " def forward(self, x):\n", " x = self.fc1(x)\n", " x = self.act(x)\n", " x = self.drop(x)\n", " x = self.fc2(x)\n", " x = self.drop(x)\n", " return x" ] }, { "cell_type": "code", "execution_count": 12, "id": "e2375881-a11b-47a7-8f56-2eadb25010b0", "metadata": {}, "outputs": [], "source": [ "class MultiHeadAttentionBlock(nn.Module):\n", " def __init__(self, embed_dim, num_heads, dropout=0.1):\n", " super(MultiHeadAttentionBlock, self).__init__()\n", " self.attention = nn.MultiheadAttention(embed_dim, num_heads, dropout=dropout)\n", " self.norm = nn.LayerNorm(embed_dim)\n", " self.dropout = nn.Dropout(dropout)\n", "\n", " def forward(self, x):\n", " # (B, C, H, W) -> (HW, B, C) for MultiheadAttention compatibility\n", " B, C, H, W = x.shape\n", " x = x.view(B, C, H * W).permute(2, 0, 1) # (B, C, H, W) -> (HW, B, C)\n", "\n", " # Apply multihead attention\n", " attn_output, _ = self.attention(x, x, x)\n", "\n", " # Apply normalization and dropout\n", " attn_output = self.norm(attn_output)\n", " attn_output = self.dropout(attn_output)\n", "\n", " # Reshape back to (B, C, H, W)\n", " attn_output = attn_output.permute(1, 2, 0).view(B, C, H, W)\n", "\n", " return attn_output" ] }, { "cell_type": "code", "execution_count": 13, "id": "82a15d3d-2f8d-42ec-9146-87c8a4abe384", "metadata": {}, "outputs": [], "source": [ "class SpatialAttentionBlock(nn.Module):\n", " def __init__(self):\n", " super(SpatialAttentionBlock, self).__init__()\n", " self.conv = nn.Conv2d(2, 1, kernel_size=7, padding=3, bias=False)\n", "\n", " def forward(self, x): #(B, 64, H, W)\n", " avg_out = torch.mean(x, dim=1, keepdim=True) #(B, 1, H, W)\n", " max_out, _ = torch.max(x, dim=1, keepdim=True)#(B, 1, H, W)\n", " out = torch.cat([avg_out, max_out], dim=1)#(B, 2, H, W)\n", " out = torch.sigmoid(self.conv(out))#(B, 1, H, W)\n", " return x * out #(B, C, H, W)" ] }, { "cell_type": "code", "execution_count": 14, "id": "497bb9f1-1ac5-4d7f-a930-0ea222b9d1d9", "metadata": {}, "outputs": [], "source": [ "class DecoderAttentionBlock(nn.Module):\n", " def __init__(self, in_channels):\n", " super(DecoderAttentionBlock, self).__init__()\n", " self.conv1 = nn.Conv2d(in_channels, in_channels // 2, kernel_size=1)\n", " self.conv2 = nn.Conv2d(in_channels // 2, in_channels, kernel_size=1)\n", " self.spatial_attention = SpatialAttentionBlock()\n", "\n", " def forward(self, x):\n", " # 通道注意力\n", " b, c, h, w = x.size()\n", " avg_pool = F.adaptive_avg_pool2d(x, 1)\n", " max_pool = F.adaptive_max_pool2d(x, 1)\n", "\n", " avg_out = self.conv1(avg_pool)\n", " max_out = self.conv1(max_pool)\n", "\n", " out = avg_out + max_out\n", " out = torch.sigmoid(self.conv2(out))\n", "\n", " # 添加空间注意力\n", " out = x * out\n", " out = self.spatial_attention(out)\n", " return out" ] }, { "cell_type": "code", "execution_count": 15, "id": "15b9d453-d8d9-43b8-aca2-904735fb3a99", "metadata": {}, "outputs": [], "source": [ "class SEBlock(nn.Module):\n", " def __init__(self, in_channels, reduced_dim):\n", " super(SEBlock, self).__init__()\n", " self.se = nn.Sequential(\n", " nn.AdaptiveAvgPool2d(1), # 全局平均池化\n", " nn.Conv2d(in_channels, reduced_dim, kernel_size=1),\n", " nn.ReLU(),\n", " nn.Conv2d(reduced_dim, in_channels, kernel_size=1),\n", " nn.Sigmoid() # 使用Sigmoid是因为我们要对通道进行权重归一化\n", " )\n", "\n", " def forward(self, x):\n", " return x * self.se(x)" ] }, { "cell_type": "code", "execution_count": 16, "id": "c9d176a8-bbf6-4043-ab82-1648a99d772a", "metadata": {}, "outputs": [], "source": [ "def masked_mse_loss(preds, target, mask):\n", " loss = (preds - target) ** 2\n", " loss = loss.mean(dim=-1) # 对每个像素点求平均\n", " loss = (loss * (1-mask)).sum() / (1-mask).sum() # 只计算被mask的像素点的损失\n", " return loss" ] }, { "cell_type": "code", "execution_count": 17, "id": "6379adb7-8a87-4dd8-a695-4013a7b37830", "metadata": { "tags": [] }, "outputs": [], "source": [ "# 定义Masked Autoencoder模型\n", "class MaskedAutoencoder(nn.Module):\n", " def __init__(self):\n", " super(MaskedAutoencoder, self).__init__()\n", " self.encoder = nn.Sequential(\n", " Conv(1, 32, kernel_size=3, stride=2),\n", " \n", " nn.ReLU(),\n", " \n", " SEBlock(32,32),\n", " \n", " ConvBNReLU(32, 64, kernel_size=3, stride=2),\n", " \n", " ResidualBlock(64,64),\n", " \n", " SeparableBNReLU(64, 128, kernel_size=3, stride=2),\n", " \n", " MultiHeadAttentionBlock(embed_dim=128, num_heads=4),\n", " \n", " SEBlock(128, 128)\n", " \n", " )\n", " # self.mlp = Mlp(in_features=128, hidden_features=256, out_features=128, act_layer=nn.ReLU6, drop=0.1)\n", " self.decoder = nn.Sequential(\n", " nn.ConvTranspose2d(128, 32, kernel_size=3, stride=2, padding=1, output_padding=1),\n", " nn.ReLU(),\n", " \n", " DecoderAttentionBlock(32),\n", " nn.ConvTranspose2d(32, 16, kernel_size=3, stride=2, padding=1, output_padding=1),\n", " nn.ReLU(),\n", " \n", " DecoderAttentionBlock(16),\n", " nn.ReLU(),\n", " \n", " nn.ConvTranspose2d(16, 1, kernel_size=3, stride=2, padding=1, output_padding=1), # 修改为 output_padding=1\n", " nn.Sigmoid()\n", " )\n", "\n", " def forward(self, x):\n", " encoded = self.encoder(x)\n", " decoded = self.decoder(encoded)\n", " return decoded\n", "\n", "# 实例化模型、损失函数和优化器\n", "model = MaskedAutoencoder()\n", "criterion = nn.MSELoss()\n", "optimizer = torch.optim.Adam(model.parameters(), lr=1e-4)" ] }, { "cell_type": "code", "execution_count": 18, "id": "404a8bfb-4976-4cce-b989-c5e401bce0d7", "metadata": {}, "outputs": [], "source": [ "# 训练函数\n", "def train_epoch(model, device, data_loader, criterion, optimizer):\n", " model.train()\n", " running_loss = 0.0\n", " for batch_idx, (X, y, mask) in enumerate(data_loader):\n", " X, y, mask = X.to(device), y.to(device), mask.to(device)\n", " optimizer.zero_grad()\n", " reconstructed = model(X)\n", " loss = masked_mse_loss(reconstructed, y, mask)\n", " loss.backward()\n", " optimizer.step()\n", " running_loss += loss.item()\n", " return running_loss / (batch_idx + 1)" ] }, { "cell_type": "code", "execution_count": 19, "id": "94457c6b-4c6e-4aff-946d-fe4c670bfe16", "metadata": {}, "outputs": [], "source": [ "# 评估函数\n", "def evaluate(model, device, data_loader, criterion):\n", " model.eval()\n", " running_loss = 0.0\n", " with torch.no_grad():\n", " for batch_idx, (X, y, mask) in enumerate(data_loader):\n", " X, y, mask = X.to(device), y.to(device), mask.to(device)\n", " reconstructed = model(X)\n", " if batch_idx == 8:\n", " rand_ind = np.random.randint(0, len(y))\n", " # visualize_feature(y[rand_ind], X[rand_ind], reconstructed[rand_ind], title='NO_2')\n", " loss = masked_mse_loss(reconstructed, y, mask)\n", " running_loss += loss.item()\n", " return running_loss / (batch_idx + 1)" ] }, { "cell_type": "code", "execution_count": 20, "id": "296ba6bd-2239-4948-b278-7edcb29bfd14", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cuda\n" ] } ], "source": [ "# 数据准备\n", "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", "print(device)" ] }, { "cell_type": "code", "execution_count": 21, "id": "743d1000-561e-4444-8b49-88346c14f28b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/root/miniconda3/envs/python38/lib/python3.8/site-packages/torch/nn/modules/conv.py:456: UserWarning: Applied workaround for CuDNN issue, install nvrtc.so (Triggered internally at /opt/conda/conda-bld/pytorch_1711403590347/work/aten/src/ATen/native/cudnn/Conv_v8.cpp:80.)\n", " return F.conv2d(input, weight, bias, self.stride,\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1, Train Loss: 1.828955806274876, Val Loss: 0.08777590596408986\n", "Epoch 2, Train Loss: 0.06457909727781012, Val Loss: 0.05018303115198861\n", "Epoch 3, Train Loss: 0.04399169035006368, Val Loss: 0.03933813378437242\n", "Epoch 4, Train Loss: 0.03737294341049839, Val Loss: 0.04090026577017201\n", "Epoch 5, Train Loss: 0.03340746862947513, Val Loss: 0.029788545930563515\n", "Epoch 6, Train Loss: 0.03127880183240158, Val Loss: 0.02878953230136366\n", "Epoch 7, Train Loss: 0.030086695853816837, Val Loss: 0.027378849156979305\n", "Epoch 8, Train Loss: 0.02827827861470184, Val Loss: 0.026564865748384105\n", "Epoch 9, Train Loss: 0.026973650764014447, Val Loss: 0.026876062349374615\n", "Epoch 10, Train Loss: 0.026198443756149145, Val Loss: 0.025235873994542593\n", "Epoch 11, Train Loss: 0.025248640154501754, Val Loss: 0.025164278752323407\n", "Epoch 12, Train Loss: 0.0246738152373493, Val Loss: 0.02402887423870279\n", "Epoch 13, Train Loss: 0.02429686849446673, Val Loss: 0.02467221769490349\n", "Epoch 14, Train Loss: 0.023617587716242915, Val Loss: 0.024100169289245535\n", "Epoch 15, Train Loss: 0.022902602209535796, Val Loss: 0.023378314227977797\n", "Epoch 16, Train Loss: 0.022661644239067746, Val Loss: 0.02472560463556603\n", "Epoch 17, Train Loss: 0.02193861959154526, Val Loss: 0.02273730694580434\n", "Epoch 18, Train Loss: 0.021775715561075645, Val Loss: 0.022977211248518814\n", "Epoch 19, Train Loss: 0.021564541914852325, Val Loss: 0.022313175500551268\n", "Epoch 20, Train Loss: 0.0214472935851396, Val Loss: 0.022048505606935984\n", "Epoch 21, Train Loss: 0.020810687219340835, Val Loss: 0.02184077285563768\n", "Epoch 22, Train Loss: 0.020310772384592647, Val Loss: 0.021513454977478554\n", "Epoch 23, Train Loss: 0.02010334756350118, Val Loss: 0.02177375905326943\n", "Epoch 24, Train Loss: 0.02025744297795675, Val Loss: 0.02049418441506464\n", "Epoch 25, Train Loss: 0.019826160295995657, Val Loss: 0.023377947564890134\n", "Epoch 26, Train Loss: 0.019065276574806875, Val Loss: 0.020193443425110917\n", "Epoch 27, Train Loss: 0.01881279432745071, Val Loss: 0.01942526154331307\n", "Epoch 28, Train Loss: 0.01839842515413841, Val Loss: 0.01973166508572315\n", "Epoch 29, Train Loss: 0.018092166516555555, Val Loss: 0.021518220902601286\n", "Epoch 30, Train Loss: 0.01789530134942543, Val Loss: 0.0191833000741343\n", "Epoch 31, Train Loss: 0.017643442852021546, Val Loss: 0.018857373494599292\n", "Epoch 32, Train Loss: 0.017585936365604543, Val Loss: 0.018622038858150367\n", "Epoch 33, Train Loss: 0.017121152348513382, Val Loss: 0.018597172726112516\n", "Epoch 34, Train Loss: 0.016807572604223872, Val Loss: 0.01907729919054615\n", "Epoch 35, Train Loss: 0.0167503119735983, Val Loss: 0.018055098590010137\n", "Epoch 36, Train Loss: 0.01674377040839509, Val Loss: 0.017786314029858183\n", "Epoch 37, Train Loss: 0.016270555827641888, Val Loss: 0.01821137344770467\n", "Epoch 38, Train Loss: 0.016271821564090166, Val Loss: 0.017419732745681236\n", "Epoch 39, Train Loss: 0.01634730132180823, Val Loss: 0.017153916838787385\n", "Epoch 40, Train Loss: 0.016149515664855545, Val Loss: 0.01720947952968861\n", "Epoch 41, Train Loss: 0.015722640304331573, Val Loss: 0.01671495117636314\n", "Epoch 42, Train Loss: 0.015584125958882165, Val Loss: 0.016605446490445243\n", "Epoch 43, Train Loss: 0.015607581132996168, Val Loss: 0.016551834531128407\n", "Epoch 44, Train Loss: 0.015686789721375303, Val Loss: 0.017196020681355426\n", "Epoch 45, Train Loss: 0.0152399734099302, Val Loss: 0.016840887422770706\n", "Epoch 46, Train Loss: 0.015122933551651296, Val Loss: 0.018965846010998114\n", "Epoch 47, Train Loss: 0.015065566115259554, Val Loss: 0.016344470375064594\n", "Epoch 48, Train Loss: 0.014854169773766726, Val Loss: 0.016327281677122437\n", "Epoch 49, Train Loss: 0.014882152102459845, Val Loss: 0.015837757153186336\n", "Epoch 50, Train Loss: 0.014656414190957848, Val Loss: 0.016042638750774645\n", "Epoch 51, Train Loss: 0.014637816764200418, Val Loss: 0.015558397091591536\n", "Epoch 52, Train Loss: 0.01454300198784214, Val Loss: 0.015685647628756603\n", "Epoch 53, Train Loss: 0.014566657712691994, Val Loss: 0.01571561763090874\n", "Epoch 54, Train Loss: 0.01434676954522729, Val Loss: 0.015356795890117758\n", "Epoch 55, Train Loss: 0.014364799384348557, Val Loss: 0.015472657116713808\n", "Epoch 56, Train Loss: 0.014128341450930783, Val Loss: 0.015367844809235922\n", "Epoch 57, Train Loss: 0.014267995692878677, Val Loss: 0.016404178910958234\n", "Epoch 58, Train Loss: 0.01399662052882773, Val Loss: 0.014956932640008962\n", "Epoch 59, Train Loss: 0.013984658806607056, Val Loss: 0.01512009026343698\n", "Epoch 60, Train Loss: 0.013917681792278608, Val Loss: 0.01516334629103319\n", "Epoch 61, Train Loss: 0.013808810461811614, Val Loss: 0.015075811351746765\n", "Epoch 62, Train Loss: 0.014042920544387051, Val Loss: 0.015152243647112776\n", "Epoch 63, Train Loss: 0.0136711714971971, Val Loss: 0.014804388201837219\n", "Epoch 64, Train Loss: 0.013782783121797457, Val Loss: 0.015533475858618074\n", "Epoch 65, Train Loss: 0.013631306383669661, Val Loss: 0.014752479089396213\n", "Epoch 66, Train Loss: 0.013644688259186357, Val Loss: 0.01469478735338841\n", "Epoch 67, Train Loss: 0.013522711930056793, Val Loss: 0.014726998854372928\n", "Epoch 68, Train Loss: 0.01350348583159692, Val Loss: 0.014617940202466588\n", "Epoch 69, Train Loss: 0.013397794087644684, Val Loss: 0.014498871904033334\n", "Epoch 70, Train Loss: 0.013320690925504888, Val Loss: 0.014324163573224153\n", "Epoch 71, Train Loss: 0.013295841332008108, Val Loss: 0.014810262790033177\n", "Epoch 72, Train Loss: 0.013151036726943614, Val Loss: 0.014535954208182754\n", "Epoch 73, Train Loss: 0.01315474125409597, Val Loss: 0.014322022976937578\n", "Epoch 74, Train Loss: 0.013201014497473337, Val Loss: 0.014625799591972757\n", "Epoch 75, Train Loss: 0.013166735187155065, Val Loss: 0.01410402478511209\n", "Epoch 76, Train Loss: 0.013011173492199496, Val Loss: 0.014279130234647153\n", "Epoch 77, Train Loss: 0.012954122741131833, Val Loss: 0.015670507896079947\n", "Epoch 78, Train Loss: 0.012964830874202497, Val Loss: 0.013965579806201493\n", "Epoch 79, Train Loss: 0.01284469154765874, Val Loss: 0.014020084167149529\n", "Epoch 80, Train Loss: 0.01269332727230194, Val Loss: 0.014467649356420361\n", "Epoch 81, Train Loss: 0.012900225120779287, Val Loss: 0.014321781124975255\n", "Epoch 82, Train Loss: 0.012758908171705795, Val Loss: 0.013745425046602292\n", "Epoch 83, Train Loss: 0.01266205709418683, Val Loss: 0.013802579048075784\n", "Epoch 84, Train Loss: 0.012549680232128315, Val Loss: 0.013783436657777473\n", "Epoch 85, Train Loss: 0.012634162601689545, Val Loss: 0.01444499020867828\n", "Epoch 86, Train Loss: 0.012543465024190086, Val Loss: 0.014219797327558495\n", "Epoch 87, Train Loss: 0.012490486795234195, Val Loss: 0.013482047425610806\n", "Epoch 88, Train Loss: 0.012537837625619327, Val Loss: 0.014496686354057113\n", "Epoch 89, Train Loss: 0.012536356080786891, Val Loss: 0.013949389360956292\n", "Epoch 90, Train Loss: 0.012426643302601776, Val Loss: 0.013645224328806152\n", "Epoch 91, Train Loss: 0.012394862496806531, Val Loss: 0.013617335818707943\n", "Epoch 92, Train Loss: 0.012383774110075959, Val Loss: 0.013630805342499889\n", "Epoch 93, Train Loss: 0.012307288521749267, Val Loss: 0.013647960637932393\n", "Epoch 94, Train Loss: 0.012298794681625218, Val Loss: 0.013733426678870151\n", "Epoch 95, Train Loss: 0.012473734824263165, Val Loss: 0.013764488983398942\n", "Epoch 96, Train Loss: 0.012222074678515276, Val Loss: 0.013446863671180918\n", "Epoch 97, Train Loss: 0.012306330008120344, Val Loss: 0.013694896279319899\n", "Epoch 98, Train Loss: 0.012166704374263019, Val Loss: 0.013338639831809855\n", "Epoch 99, Train Loss: 0.012187617220447965, Val Loss: 0.01352898025913025\n", "Epoch 100, Train Loss: 0.012234464256565252, Val Loss: 0.013427354033980796\n", "Epoch 101, Train Loss: 0.012252488267122273, Val Loss: 0.013189904238861887\n", "Epoch 102, Train Loss: 0.01208857831692225, Val Loss: 0.013358786896760785\n", "Epoch 103, Train Loss: 0.012067412587693718, Val Loss: 0.013412703287356826\n", "Epoch 104, Train Loss: 0.011943526178348863, Val Loss: 0.013329273687480991\n", "Epoch 105, Train Loss: 0.012186939030457911, Val Loss: 0.013039200052396576\n", "Epoch 106, Train Loss: 0.012064487648833739, Val Loss: 0.013328265718448518\n", "Epoch 107, Train Loss: 0.01196315302624942, Val Loss: 0.013011285284561898\n", "Epoch 108, Train Loss: 0.011942964125175082, Val Loss: 0.013228343076892753\n", "Epoch 109, Train Loss: 0.011851983095862363, Val Loss: 0.012941466032791494\n", "Epoch 110, Train Loss: 0.011892807039401035, Val Loss: 0.013264400856708413\n", "Epoch 111, Train Loss: 0.011915889784747192, Val Loss: 0.01319889353115612\n", "Epoch 112, Train Loss: 0.011905829402123484, Val Loss: 0.014149442662610047\n", "Epoch 113, Train Loss: 0.011818570989455903, Val Loss: 0.013042371636673586\n", "Epoch 114, Train Loss: 0.011752497955140743, Val Loss: 0.01301327784226012\n", "Epoch 115, Train Loss: 0.011813209191606375, Val Loss: 0.01286677592225484\n", "Epoch 116, Train Loss: 0.011725439075113198, Val Loss: 0.013167357391941904\n", "Epoch 117, Train Loss: 0.011835235226721141, Val Loss: 0.01286814648157625\n", "Epoch 118, Train Loss: 0.011680879099873835, Val Loss: 0.012708428107313256\n", "Epoch 119, Train Loss: 0.01173722647959322, Val Loss: 0.012885383775096331\n", "Epoch 120, Train Loss: 0.011672099965343777, Val Loss: 0.012913884747940214\n", "Epoch 121, Train Loss: 0.011704605972866693, Val Loss: 0.012728425813143823\n", "Epoch 122, Train Loss: 0.011705320578015021, Val Loss: 0.012817327530860012\n", "Epoch 123, Train Loss: 0.011644495068492288, Val Loss: 0.012942980015789396\n", "Epoch 124, Train Loss: 0.011633442955439171, Val Loss: 0.012936850551015405\n", "Epoch 125, Train Loss: 0.011616052921558396, Val Loss: 0.012702107387803384\n", "Epoch 126, Train Loss: 0.011607619160652588, Val Loss: 0.012658866025062639\n", "Epoch 127, Train Loss: 0.011635440495310788, Val Loss: 0.01304104494681554\n", "Epoch 128, Train Loss: 0.01150463111074775, Val Loss: 0.013212839975508291\n", "Epoch 129, Train Loss: 0.011585681133293078, Val Loss: 0.01278914052492647\n", "Epoch 130, Train Loss: 0.011392400087565896, Val Loss: 0.012796499154794572\n", "Epoch 131, Train Loss: 0.011433751801358598, Val Loss: 0.012598757076063264\n", "Epoch 132, Train Loss: 0.011496097840921303, Val Loss: 0.01271620902941743\n", "Epoch 133, Train Loss: 0.011477598884815804, Val Loss: 0.013398304248034065\n", "Epoch 134, Train Loss: 0.011365674946314552, Val Loss: 0.012668505741922713\n", "Epoch 135, Train Loss: 0.01142354957696995, Val Loss: 0.013356663286685944\n", "Epoch 136, Train Loss: 0.011355750374139497, Val Loss: 0.012617305616167054\n", "Epoch 137, Train Loss: 0.011350866257877013, Val Loss: 0.012997348792850971\n", "Epoch 138, Train Loss: 0.011416472670617715, Val Loss: 0.012524361819473665\n", "Epoch 139, Train Loss: 0.011427981736646458, Val Loss: 0.012654973694415235\n", "Epoch 140, Train Loss: 0.011318818902213607, Val Loss: 0.012664613897787102\n", "Epoch 141, Train Loss: 0.011320005095247446, Val Loss: 0.012727182441905363\n", "Epoch 142, Train Loss: 0.011245375826651827, Val Loss: 0.012474427931010723\n", "Epoch 143, Train Loss: 0.011338526420919091, Val Loss: 0.012642348824597117\n", "Epoch 144, Train Loss: 0.011243535689207497, Val Loss: 0.012692421772030752\n", "Epoch 145, Train Loss: 0.011166462189023289, Val Loss: 0.01263011310861182\n", "Epoch 146, Train Loss: 0.011227301243942178, Val Loss: 0.012461379587427894\n", "Epoch 147, Train Loss: 0.01119774208364019, Val Loss: 0.012749987918494353\n", "Epoch 148, Train Loss: 0.011138954723441001, Val Loss: 0.012676928915194612\n", "Epoch 149, Train Loss: 0.011145075226122398, Val Loss: 0.012806226499378681\n", "Epoch 150, Train Loss: 0.011238663441737731, Val Loss: 0.012608930385157244\n", "Epoch 151, Train Loss: 0.01112103075430724, Val Loss: 0.012799791727604261\n", "Epoch 152, Train Loss: 0.01109027168958595, Val Loss: 0.01240885794273953\n", "Epoch 153, Train Loss: 0.011098397055721026, Val Loss: 0.012326594039019364\n", "Epoch 154, Train Loss: 0.011026590389676356, Val Loss: 0.012310143629672811\n", "Epoch 155, Train Loss: 0.011067607804339682, Val Loss: 0.01242478439278567\n", "Epoch 156, Train Loss: 0.01105262930215332, Val Loss: 0.01238662200465576\n", "Epoch 157, Train Loss: 0.010977347388097117, Val Loss: 0.012163419262575569\n", "Epoch 158, Train Loss: 0.010957017552071924, Val Loss: 0.012397716572480415\n", "Epoch 159, Train Loss: 0.010956506543396192, Val Loss: 0.012370292931350309\n", "Epoch 160, Train Loss: 0.01093887382980133, Val Loss: 0.012291266110294791\n", "Test Loss: 0.006885056002065539\n" ] } ], "source": [ "model = model.to(device)\n", "\n", "num_epochs = 160\n", "train_losses = list()\n", "val_losses = list()\n", "for epoch in range(num_epochs):\n", " train_loss = train_epoch(model, device, train_loader, criterion, optimizer)\n", " train_losses.append(train_loss)\n", " val_loss = evaluate(model, device, val_loader, criterion)\n", " val_losses.append(val_loss)\n", " print(f'Epoch {epoch+1}, Train Loss: {train_loss}, Val Loss: {val_loss}')\n", "\n", "# 测试模型\n", "test_loss = evaluate(model, device, test_loader, criterion)\n", "print(f'Test Loss: {test_loss}')" ] }, { "cell_type": "code", "execution_count": 23, "id": "cdc0d608-6f0a-43dc-8cc1-8acf68215d18", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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K1as4NChQ/Tq1atR66welmpoSEhERGrq3nvvxWaz0bt3b9q2bXvCOSnPP/88ERERjBw5kksvvZTk5GQGDhzYZPUcOHAgH330ER988AF9+/bl4Ycf5rHHHmPSpEkAhIeH8+mnn3LeeefRq1cvZs2axfvvv0+fPn0IDQ3lu+++46KLLqJ79+48+OCDPPfcc1x44YWNWmeL0djrkJpATk4OYWFhZGdnExoa2qD3Pu9vi9l1OJ+PbxnBkITaLRsTEZHaKyoqYvfu3XTu3Bl/f39fV0cawIn+m9bm77d6WKpRPiRUoiEhERERn1FgqUb5kJBLQ0IiItJM3XLLLQQHB1f5uOWWW3xdvQahSbfVKA8s2ulWRESaq8cee4x77723ytcaeqqEryiwVMNRPiSkHhYREWmmoqOjiY6O9nU1GpWGhKqhISERERHfU2CphoaEREREfE+BpRoaEhIREfE9BZZqaOM4ERER31NgqUZFYNGQkIiIiK8osFTDriEhERFpIgkJCbzwwgs1KmuxWJg7d26j1qc5UWCphlNDQiIiIj6nwFINDQmJiIj4ngJLNTQkJCLSDBgGuPJ986jhGcGvvvoqcXFxeDyV/15cfvnl/O53v2Pnzp1cfvnlxMTEEBwczJAhQ/jmm28a7Ef0448/ct555xEQEEBkZCQ333wzeXl53tcXL17M0KFDCQoKIjw8nFGjRrF3714ANmzYwLnnnktISAihoaEMGjSI1atXN1jdGoJ2uq2GhoRERJqBkgJ4Ms43n/3AAXAGVVvsN7/5DXfccQeLFi1i9OjRABw9epT58+fzxRdfkJeXx0UXXcQTTzyBn58f77zzDpdeeinbtm2jY8eO9apifn4+ycnJjBgxglWrVpGZmcnvf/97br/9dt566y1KS0sZO3YsN910E++//z4ul4uVK1disZj/p3zChAkMGDCAV155BZvNxvr163E4HPWqU0NTYKmGhoRERKQmIiIiuPDCC5k9e7Y3sHzyySdERUVx7rnnYrVa6devn7f8448/zpw5c/jss8+4/fbb6/XZs2fPpqioiHfeeYegIDNczZgxg0svvZSnn34ah8NBdnY2l1xyCV27dgWgV69e3venpqYydepUevbsCUC3bt3qVZ/GoMBSDQ0JiYg0A45As6fDV59dQxMmTOCmm27iH//4B35+frz33ntce+21WK1W8vLy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bN682QCMVatWect8+eWXhsViMfbv399kda+pX7exKitXrjQAY+/evYZhtJ427tu3z2jfvr2xadMmo1OnTsbf//5372utoY3jxo0zfvvb357wPY31u1Y9LCfgcrlYs2YNSUlJ3mtWq5WkpCRSUlJ8WLOGkZ2dDUCbNm0AWLNmDSUlJZXa27NnTzp27Nji2nvbbbdx8cUXV2oLtI42fvbZZwwePJjf/OY3REdHM2DAAF577TXv67t37yY9Pb1SG8PCwhg2bFiLaSPAyJEjWbhwIdu3bwdgw4YNfP/991x44YVA62lnuZq0JyUlhfDwcAYPHuwtk5SUhNVqZcWKFU1e54aQnZ2NxWIhPDwcaB1t9Hg8XH/99UydOpU+ffoc93pLb6PH4+Hzzz+ne/fuJCcnEx0dzbBhwyoNGzXW71oFlhM4fPgwbrebmJiYStdjYmJIT0/3Ua0ahsfj4e6772bUqFH07dsXgPT0dJxOp/cXR7mW1t4PPviAtWvXMn369ONeaw1t3LVrF6+88grdunXjq6++4tZbb+XOO+/k7bffBvC2o6X/u73//vu59tpr6dmzJw6HgwEDBnD33XczYcIEoPW0s1xN2pOenk50dHSl1+12O23atGmRbS4qKuK+++5j/Pjx3kPzWkMbn376aex2O3feeWeVr7f0NmZmZpKXl8dTTz3FmDFj+Prrr7niiiu48sorWbJkCdB4v2tbxWnNUju33XYbmzZt4vvvv/d1VRpUWload911FwsWLKg0ltqaeDweBg8ezJNPPgnAgAED2LRpE7NmzeKGG27wce0azkcffcR7773H7Nmz6dOnD+vXr+fuu+8mLi6uVbXzVFVSUsI111yDYRi88sorvq5Og1mzZg0vvvgia9euxWKx+Lo6jcLj8QBw+eWXc8899wDQv39/li1bxqxZszj77LMb7bPVw3ICUVFR2Gy242Y1Z2RkEBsb66Na1d/tt9/OvHnzWLRoER06dPBej42NxeVykZWVVal8S2rvmjVryMzMZODAgdjtdux2O0uWLOGll17CbrcTExPT4tvYrl07evfuXelar169vLPzy9vR0v/dTp061dvLkpiYyPXXX88999zj7TlrLe0sV5P2xMbGHjfhv7S0lKNHj7aoNpeHlb1797JgwQJv7wq0/DYuXbqUzMxMOnbs6P0dtHfvXv70pz+RkJAAtPw2RkVFYbfbq/091Bi/axVYTsDpdDJo0CAWLlzovebxeFi4cCEjRozwYc3qxjAMbr/9dubMmcO3335L586dK70+aNAgHA5HpfZu27aN1NTUFtPe0aNH8+OPP7J+/XrvY/DgwUyYMMH7fUtv46hRo45bjr59+3Y6deoEQOfOnYmNja3UxpycHFasWNFi2gjmihKrtfKvJ5vN5v1/d62lneVq0p4RI0aQlZXFmjVrvGW+/fZbPB4Pw4YNa/I610V5WNmxYwfffPMNkZGRlV5v6W28/vrr2bhxY6XfQXFxcUydOpWvvvoKaPltdDqdDBky5KS/hxrt70mdp+ueAj744APDz8/PeOutt4zNmzcbN998sxEeHm6kp6f7umq1duuttxphYWHG4sWLjYMHD3ofBQUF3jK33HKL0bFjR+Pbb781Vq9ebYwYMcIYMWKED2tdf79cJWQYLb+NK1euNOx2u/HEE08YO3bsMN577z0jMDDQ+Pe//+0t89RTTxnh4eHGf//7X2Pjxo3G5ZdfbnTu3NkoLCz0Yc1r54YbbjDat29vzJs3z9i9e7fx6aefGlFRUcb//d//ecu0tHbm5uYa69atM9atW2cAxvPPP2+sW7fOu0KmJu0ZM2aMMWDAAGPFihXG999/b3Tr1s0YP368r5p0nJO10eVyGZdddpnRoUMHY/369ZV+DxUXF3vv0ZLbWJVfrxIyjJbfxk8//dRwOBzGq6++auzYscN4+eWXDZvNZixdutR7j8b4XavAUo2XX37Z6Nixo+F0Oo2hQ4cay5cv93WV6gSo8vHmm296yxQWFhp//OMfjYiICCMwMNC44oorjIMHD/qu0g3g14GlNbTxf//7n9G3b1/Dz8/P6Nmzp/Hqq69Wet3j8RgPPfSQERMTY/j5+RmjR482tm3b5qPa1k1OTo5x1113GR07djT8/f2NLl26GH/+858r/WFrae1ctGhRlf8bvOGGGwzDqFl7jhw5YowfP94IDg42QkNDjcmTJxu5ubk+aE3VTtbG3bt3n/D30KJFi7z3aMltrEpVgaU1tPH11183TjvtNMPf39/o16+fMXfu3Er3aIzftRbD+MXWkSIiIiLNkOawiIiISLOnwCIiIiLNngKLiIiINHsKLCIiItLsKbCIiIhIs6fAIiIiIs2eAouIiIg0ewosIiIi0uwpsIiIiEizp8AiIiIizZ4Ci4iIiDR7CiwiIiLS7P0/8Cye6Xb7XTUAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tr_ind = list(range(len(train_losses)))\n", "val_ind = list(range(len(val_losses)))\n", "plt.plot(train_losses[1:], label='train_loss')\n", "plt.plot(val_losses[1:], label='val_loss')\n", "plt.legend(loc='best')" ] }, { "cell_type": "code", "execution_count": 24, "id": "a8467686-0655-4056-8e01-56299eb89d7c", "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_percentage_error, mean_absolute_error" ] }, { "cell_type": "code", "execution_count": 25, "id": "efc96935-bbe0-4ca9-b11a-931cdcfc3bed", "metadata": {}, "outputs": [], "source": [ "def cal_ioa(y_true, y_pred):\n", " # 计算平均值\n", " mean_observed = np.mean(y_true)\n", " mean_predicted = np.mean(y_pred)\n", "\n", " # 计算IoA\n", " numerator = np.sum((y_true - y_pred) ** 2)\n", " denominator = np.sum((np.abs(y_true - mean_observed) + np.abs(y_pred - mean_predicted)) ** 2)\n", " IoA = 1 - (numerator / denominator)\n", "\n", " return IoA" ] }, { "cell_type": "code", "execution_count": 26, "id": "dae7427e-548e-4276-a4ea-bc9b279d44e8", "metadata": {}, "outputs": [], "source": [ "eva_list = list()\n", "device = 'cpu'\n", "model = model.to(device)\n", "with torch.no_grad():\n", " for batch_idx, (X, y, mask) in enumerate(test_loader):\n", " X, y, mask = X.to(device), y.to(device), mask.to(device)\n", " mask_rev = (torch.squeeze(mask, dim=1)==0) * 1 # mask取反获得修复区域\n", " reconstructed = model(X)\n", " rev_data = y * max_pixel_value\n", " rev_recon = reconstructed * max_pixel_value\n", " # todo: 这里需要只评估修补出来的模块\n", " data_label = torch.squeeze(rev_data, dim=1) * mask_rev\n", " data_label = data_label[mask_rev==1]\n", " recon_no2 = torch.squeeze(rev_recon, dim=1) * mask_rev\n", " recon_no2 = recon_no2[mask_rev==1]\n", " mae = mean_absolute_error(data_label, recon_no2)\n", " rmse = np.sqrt(mean_squared_error(data_label, recon_no2))\n", " mape = mean_absolute_percentage_error(data_label, recon_no2)\n", " r2 = r2_score(data_label, recon_no2)\n", " ioa = cal_ioa(data_label.detach().numpy(), recon_no2.detach().numpy())\n", " r = np.corrcoef(data_label, recon_no2)[0, 1]\n", " eva_list.append([mae, rmse, mape, r2, ioa, r])" ] }, { "cell_type": "code", "execution_count": 27, "id": "73a0002b-35d6-4e20-a620-5c8f5cd49296", "metadata": {}, "outputs": [], "source": [ "eva_list_frame = list()\n", "device = 'cpu'\n", "model = model.to(device)\n", "best_mape = 1\n", "best_img = None\n", "best_mask = None\n", "best_recov = None\n", "with torch.no_grad():\n", " for batch_idx, (X, y, mask) in enumerate(test_loader):\n", " X, y, mask = X.to(device), y.to(device), mask.to(device)\n", " mask_rev = (torch.squeeze(mask, dim=1)==0) * 1 # mask取反获得修复区域\n", " reconstructed = model(X)\n", " rev_data = y * max_pixel_value\n", " rev_recon = reconstructed * max_pixel_value\n", " # todo: 这里需要只评估修补出来的模块\n", " for i, sample in enumerate(rev_data):\n", " used_mask = mask_rev[i]\n", " data_label = sample[0] * used_mask\n", " recon_no2 = rev_recon[i][0] * used_mask\n", " data_label = data_label[used_mask==1]\n", " recon_no2 = recon_no2[used_mask==1]\n", " mae = mean_absolute_error(data_label, recon_no2)\n", " rmse = np.sqrt(mean_squared_error(data_label, recon_no2))\n", " mape = mean_absolute_percentage_error(data_label, recon_no2)\n", " r2 = r2_score(data_label, recon_no2)\n", " ioa = cal_ioa(data_label.detach().numpy(), recon_no2.detach().numpy())\n", " r = np.corrcoef(data_label, recon_no2)[0, 1]\n", " eva_list_frame.append([mae, rmse, mape, r2, ioa, r])\n", " if mape < best_mape:\n", " best_recov = rev_recon[i][0].numpy()\n", " best_mask = used_mask.numpy()\n", " best_img = sample[0].numpy()\n", " best_mape = mape" ] }, { "cell_type": "code", "execution_count": 28, "id": "b7265cd0-0660-4707-be3d-0773a38228e8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
maermsemaper2ioar
count4739.0000004739.0000004739.0000004739.0000004739.0000004739.000000
mean1.2616341.8017260.1539620.6811590.8910400.840609
std0.5722050.8610090.0657230.2497710.1104110.124012
min0.3614800.4689180.047540-2.107971-0.424296-0.070884
25%0.8284531.1493910.1112560.6004400.8689370.797875
50%1.1358051.6212940.1439290.7409370.9229530.872734
75%1.5573812.2507180.1795440.8359070.9535560.921983
max5.7334498.3560971.1169460.9855700.9962370.993398
\n", "
" ], "text/plain": [ " mae rmse mape r2 ioa \\\n", "count 4739.000000 4739.000000 4739.000000 4739.000000 4739.000000 \n", "mean 1.261634 1.801726 0.153962 0.681159 0.891040 \n", "std 0.572205 0.861009 0.065723 0.249771 0.110411 \n", "min 0.361480 0.468918 0.047540 -2.107971 -0.424296 \n", "25% 0.828453 1.149391 0.111256 0.600440 0.868937 \n", "50% 1.135805 1.621294 0.143929 0.740937 0.922953 \n", "75% 1.557381 2.250718 0.179544 0.835907 0.953556 \n", "max 5.733449 8.356097 1.116946 0.985570 0.996237 \n", "\n", " r \n", "count 4739.000000 \n", "mean 0.840609 \n", "std 0.124012 \n", "min -0.070884 \n", "25% 0.797875 \n", "50% 0.872734 \n", "75% 0.921983 \n", "max 0.993398 " ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(eva_list_frame, columns=['mae', 'rmse', 'mape', 'r2', 'ioa', 'r']).describe()" ] }, { "cell_type": "code", "execution_count": 31, "id": "589e6d80-228d-4e8a-968a-e7477c5e0e24", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
maermsemaper2ioar
count75.00000075.00000075.00000075.00000075.00000075.000000
mean1.2639911.9877880.1539310.9077290.9747850.953238
std0.1080350.2091850.0075920.0172800.0057820.007909
min1.0771431.6587970.1352710.7916070.9330310.905484
25%1.2089911.8929230.1490060.9015440.9729120.950092
50%1.2551511.9672650.1539290.9081830.9749390.953771
75%1.3076152.0790390.1584630.9156660.9772690.957454
max1.9568453.3207120.1750280.9317150.9818320.965467
\n", "
" ], "text/plain": [ " mae rmse mape r2 ioa r\n", "count 75.000000 75.000000 75.000000 75.000000 75.000000 75.000000\n", "mean 1.263991 1.987788 0.153931 0.907729 0.974785 0.953238\n", "std 0.108035 0.209185 0.007592 0.017280 0.005782 0.007909\n", "min 1.077143 1.658797 0.135271 0.791607 0.933031 0.905484\n", "25% 1.208991 1.892923 0.149006 0.901544 0.972912 0.950092\n", "50% 1.255151 1.967265 0.153929 0.908183 0.974939 0.953771\n", "75% 1.307615 2.079039 0.158463 0.915666 0.977269 0.957454\n", "max 1.956845 3.320712 0.175028 0.931715 0.981832 0.965467" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(eva_list, columns=['mae', 'rmse', 'mape', 'r2', 'ioa', 'r']).describe()" ] }, { "cell_type": "code", "execution_count": 67, "id": "755abc3e-f4d2-4056-b01b-3fb085f95f19", "metadata": {}, "outputs": [], "source": [ "# torch.save(model, './models/MAE/final_20.pt')" ] }, { "cell_type": "code", "execution_count": 32, "id": "782ba792-af34-479d-8b79-f6c544137539", "metadata": {}, "outputs": [], "source": [ "model_20 = torch.load('./models/MAE/final_20.pt')" ] }, { "cell_type": "code", "execution_count": 38, "id": "76449691-74b2-43ef-b092-f71cd8116448", "metadata": {}, "outputs": [], "source": [ "# 可视化特定特征的函数\n", "def visualize_rst(input_feature,masked_feature, recov_region, output_feature, title):\n", " plt.figure(figsize=(12, 6))\n", " plt.subplot(1, 4, 1)\n", " plt.imshow(input_feature, cmap='RdYlGn_r')\n", " plt.gca().axis('off') # 获取当前坐标轴并关闭\n", " \n", " plt.subplot(1, 4, 2)\n", " plt.imshow(masked_feature, cmap='gray')\n", " plt.gca().axis('off') # 获取当前坐标轴并关闭\n", " plt.subplot(1, 4, 3)\n", " plt.imshow(recov_region, cmap='RdYlGn_r')\n", " plt.gca().axis('off') # 获取当前坐标轴并关闭\n", " plt.subplot(1, 4, 4)\n", " plt.imshow(output_feature, cmap='RdYlGn_r')\n", " plt.gca().axis('off') # 获取当前坐标轴并关闭\n", " plt.savefig('./figures/result/20_samples.png', bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 39, "id": "82467932-3b38-4d2d-83d9-8d76c4f98a06", "metadata": {}, "outputs": [], "source": [ "best_mask_cp = np.where(best_mask == 0, np.nan, best_mask)" ] }, { "cell_type": "code", "execution_count": 49, "id": "6bb568d1-07bd-49c4-9056-9ad2f2dd36a8", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "visualize_rst(best_img, best_mask, best_recov*best_mask_cp, best_img * (1-best_mask) + best_recov*best_mask, '')" ] }, { "cell_type": "code", "execution_count": 33, "id": "e711bcef-0263-4948-924e-1beb6d38fbf7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'1114', '1952', '2568', '3523', '602'}" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "find_ex = set([x.split('-')[0].strip() for x in os.listdir('./test_img/') if 'npy' in x])\n", "find_ex" ] }, { "cell_type": "code", "execution_count": 70, "id": "addd6ce4-a62d-43b6-a435-d7853ccea91e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for j in find_ex:\n", " ori = np.load(f'./test_img/{j}-real.npy')[0]\n", " mask = np.load(f'./test_img/{j}-mask.npy')\n", " mask_rev = 1 - mask\n", " img_in = ori * mask_rev / max_pixel_value\n", " img_out = model(torch.tensor(img_in.reshape(1, 1, 96, 96), dtype=torch.float32)).detach().cpu().numpy()[0][0] * max_pixel_value\n", " out = ori * mask_rev + img_out * mask\n", " plt.imshow(out, cmap='RdYlGn_r')\n", " plt.gca().axis('off')\n", " plt.savefig(f'./test_img/out_fig/{j}-mae_my_out.png', bbox_inches='tight')\n", " plt.clf()" ] }, { "cell_type": "code", "execution_count": null, "id": "5d51cfc0-3afd-499e-ae97-76f07b0105e7", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" } }, "nbformat": 4, "nbformat_minor": 5 }