Skip to content

Instantly share code, notes, and snippets.

@Tmodrzyk
Created July 30, 2024 12:44
Show Gist options
  • Select an option

  • Save Tmodrzyk/be07c3f91fbabf3aebb3e6ff0d3971ac to your computer and use it in GitHub Desktop.

Select an option

Save Tmodrzyk/be07c3f91fbabf3aebb3e6ff0d3971ac to your computer and use it in GitHub Desktop.
Visualize effective receptive field of simple CNNs using PyTorch
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torchvision\n",
"import torchvision.transforms as transforms\n",
"from torch import nn, optim\n",
"from torch.utils.data import DataLoader\n",
"from tqdm import tqdm\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"device = \"cuda\"\n",
"\n",
"def plot_kernels(tensor, num_cols=6):\n",
" if not tensor.ndim==4:\n",
" raise Exception(\"The tensor should be 4D\")\n",
" \n",
" num_kernels = tensor.shape[0]\n",
" num_rows = num_kernels // num_cols\n",
" fig = plt.figure(figsize=(num_cols, num_rows))\n",
" \n",
" for i in range(num_kernels):\n",
" ax1 = fig.add_subplot(num_rows, num_cols, i+1)\n",
" ax1.imshow(tensor[i][0].cpu().detach(), cmap='gray')\n",
" ax1.axis('off')\n",
" ax1.set_xticklabels([])\n",
" ax1.set_yticklabels([])\n",
"\n",
" plt.subplots_adjust(wspace=0.1, hspace=0.1)\n",
" plt.show()\n",
"\n",
"def init_weights(model, val=0.2):\n",
" # Set every weight to 1 and biases to 0\n",
" for param in model.parameters():\n",
" if param.requires_grad:\n",
" if len(param.shape) > 1: # This is a weight tensor\n",
" nn.init.constant_(param, val)\n",
" else: # This is a bias tensor\n",
" nn.init.constant_(param, 0)\n",
" \n",
"# Define the LeNet-5 architecture\n",
"class LeNet(nn.Module):\n",
" def __init__(self):\n",
" super(LeNet, self).__init__()\n",
" self.conv1 = nn.Conv2d(1, 6, 5, padding=0) # Convolutional layer with 6 filters of size 5x5\n",
" self.tanh1 = nn.Tanh() # Tanh activation function\n",
" self.avgpool1 = nn.AvgPool2d(2, stride=2) # Average pooling layer with size 2x2 and stride 2\n",
" self.conv2 = nn.Conv2d(6, 16, 5, padding=0) # Second convolutional layer with 16 filters of size 5x5\n",
" self.tanh2 = nn.Tanh() # Tanh activation function\n",
" self.avgpool2 = nn.AvgPool2d(2, stride=2) # Average pooling layer\n",
" self.conv3 = nn.Conv2d(16, 120, 5, padding=0) # Third convolutional layer\n",
" self.tanh3 = nn.Tanh() # Tanh activation function\n",
" self.fc1 = nn.Linear(120, 84) # Fully connected layer\n",
" self.tanh4 = nn.Tanh() # Tanh activation function\n",
" self.fc2 = nn.Linear(84, 10) # Output layer with 10 units for 10 classes\n",
" self.softmax = nn.Softmax(dim=1) # Softmax activation function\n",
" \n",
" def forward(self, x):\n",
" x = self.conv1(x)\n",
" x = self.tanh1(x)\n",
" x = self.avgpool1(x)\n",
" x = self.conv2(x)\n",
" x = self.tanh2(x)\n",
" x = self.avgpool2(x)\n",
" x = self.conv3(x)\n",
" x = self.tanh3(x)\n",
" x = x.view(-1, 120) # Flatten the tensor for the fully connected layers\n",
" x = self.fc1(x)\n",
" x = self.tanh4(x)\n",
" x = self.fc2(x)\n",
" x = self.softmax(x)\n",
" return x\n",
"\n",
"class ConvLeNet(nn.Module):\n",
" def __init__(self, trained_model=None):\n",
" super(ConvLeNet, self).__init__()\n",
" if(trained_model is None):\n",
" self.conv1 = nn.Conv2d(1, 6, 5, padding=0)\n",
" self.tanh1 = nn.Tanh()\n",
" self.avgpool1 = nn.AvgPool2d(2, stride=2)\n",
" self.conv2 = nn.Conv2d(6, 16, 5, padding=0)\n",
" self.tanh2 = nn.Tanh()\n",
" self.avgpool2 = nn.AvgPool2d(2, stride=2)\n",
" self.conv3 = nn.Conv2d(16, 120, 5, padding=0)\n",
" self.tanh3 = nn.Tanh()\n",
" else:\n",
" self.conv1 = trained_model.conv1\n",
" self.tanh1 = trained_model.tanh1\n",
" self.avgpool1 = trained_model.avgpool1\n",
" self.conv2 = trained_model.conv2\n",
" self.tanh2 = trained_model.tanh2\n",
" self.avgpool2 = trained_model.avgpool2\n",
" self.conv3 = trained_model.conv3\n",
" self.tanh3 = trained_model.tanh3\n",
" \n",
" def forward(self, x):\n",
" x = self.conv1(x)\n",
" x = self.tanh1(x)\n",
" x = self.avgpool1(x)\n",
" x = self.conv2(x)\n",
" x = self.tanh2(x)\n",
" x = self.avgpool2(x)\n",
" x = self.conv3(x)\n",
" x = self.tanh3(x)\n",
" return x\n",
" \n",
"class CNN15Layers(nn.Module):\n",
" def __init__(self):\n",
" super(CNN15Layers, self).__init__()\n",
" layers = []\n",
" \n",
" # Define the 20 convolutional layers\n",
" input_channels = 1\n",
" for i in range(15):\n",
" layers.append(nn.Conv2d(input_channels, 32, kernel_size=3, padding=1, padding_mode='zeros'))\n",
" input_channels = 32 # After the first layer, all other layers take 64 input channels\n",
" \n",
" # Use nn.Sequential to stack all the layers\n",
" self.conv_layers = nn.Sequential(*layers)\n",
" \n",
" \n",
" def forward(self, x):\n",
" x = self.conv_layers(x)\n",
" return x\n",
" \n",
"class CNN15LayersReLU(nn.Module):\n",
" def __init__(self):\n",
" super(CNN15LayersReLU, self).__init__()\n",
" layers = []\n",
" \n",
" # Define the 20 convolutional layers\n",
" input_channels = 1\n",
" for i in range(15):\n",
" layers.append(nn.Conv2d(input_channels, 32, kernel_size=3, padding=1, padding_mode='zeros'))\n",
" input_channels = 32 # After the first layer, all other layers take 64 input channels\n",
" layers.append(nn.ReLU())\n",
" # Use nn.Sequential to stack all the layers\n",
" self.conv_layers = nn.Sequential(*layers)\n",
" \n",
" \n",
" def forward(self, x):\n",
" x = self.conv_layers(x)\n",
" return x\n",
" \n",
" \n",
"class CNN15LayersTanh(nn.Module):\n",
" def __init__(self):\n",
" super(CNN15LayersTanh, self).__init__()\n",
" layers = []\n",
" \n",
" # Define the 20 convolutional layers\n",
" input_channels = 1\n",
" for i in range(15):\n",
" layers.append(nn.Conv2d(input_channels, 32, kernel_size=3, padding=1, padding_mode='zeros'))\n",
" input_channels = 32 # After the first layer, all other layers take 64 input channels\n",
" layers.append(nn.Tanh())\n",
" # Use nn.Sequential to stack all the layers\n",
" self.conv_layers = nn.Sequential(*layers)\n",
" \n",
" \n",
" def forward(self, x):\n",
" x = self.conv_layers(x)\n",
" return x"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Create the model instance\n",
"cnn20 = CNN15Layers().to(device=device)\n",
"cnn20relu = CNN15LayersReLU().to(device=device)\n",
"cnn20uniform = CNN15Layers().to(device=device)\n",
"cnn20tnah = CNN15LayersTanh().to(device=device)\n",
"\n",
"init_weights(cnn20uniform, val=0.1)\n",
"\n",
"\n",
"def visualize_erf(model, input_shape=(1, 1, 32, 32), output_index=0, device='cuda', im_name='erf.png'):\n",
" \n",
" # Initialize the input tensor with zero, set it to require gradients\n",
" # input_tensor = torch.zeros(input_shape, device=device, requires_grad=True)\n",
" input_tensor = torch.ones(input_shape, device=device, requires_grad=True)\n",
" # input_tensor = torch.randn(input_shape, device=device, requires_grad=True)\n",
" # Set the model to evaluation mode\n",
" model.eval()\n",
"\n",
" # Forward pass: compute the output tensor\n",
" output = model(input_tensor)\n",
" \n",
" # Initialize the output gradient as zero everywhere and 1 at a specific location\n",
" grad_output = torch.zeros_like(output)\n",
" x, y = grad_output.shape[2] // 2, grad_output.shape[3] // 2\n",
" grad_output[0, output_index, x, y] = 1 # Target a specific output unit\n",
"\n",
" # Backward pass: compute gradient of the output with respect to the input image\n",
" output.backward(grad_output)\n",
"\n",
" # Retrieve the gradient of the input\n",
" grad_input = input_tensor.grad.data[0, 0].cpu().numpy()\n",
" grad_input = np.abs(grad_input) # Get the absolute values of the gradients\n",
" grad_input = grad_input / grad_input.max() # Normalize the gradients\n",
" \n",
" # Plot the gradient\n",
" plt.imshow(grad_input, cmap='gray', interpolation='nearest')\n",
" plt.imsave(im_name, grad_input, cmap='gray')\n",
" plt.title(\"Effective Receptive Field (ERF)\")\n",
" plt.colorbar()\n",
" plt.show()\n",
" \n",
"output_index = 3\n",
"input_shape = (1, 1, 41, 41)\n",
"\n",
"visualize_erf(cnn20, input_shape=input_shape, output_index=output_index, device='cuda', im_name='erf_conv.png')\n",
"visualize_erf(cnn20relu, input_shape=input_shape, output_index=output_index, device='cuda', im_name='erf_conv_relu.png')\n",
"visualize_erf(cnn20tnah, input_shape=input_shape, output_index=output_index, device='cuda', im_name='erf_conv_tanh.png')\n",
"visualize_erf(cnn20uniform, input_shape=input_shape, output_index=output_index, device='cuda', im_name='erf_conv_uniform.png')\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torchvision\n",
"import torchvision.transforms as transforms\n",
"from torch import nn, optim\n",
"from torch.utils.data import DataLoader\n",
"from tqdm import tqdm\n",
"\n",
"# Transform the data to torch tensors and normalize it\n",
"transform = transforms.Compose([\n",
" transforms.Resize((32, 32)), # Resize to 32x32 to match the original LeNet-5 input size\n",
" transforms.ToTensor(),\n",
" transforms.Normalize((0.5,), (0.5,))\n",
"])\n",
"\n",
"# Load the training and test sets\n",
"train_set = torchvision.datasets.MNIST(\n",
" root='./data',\n",
" train=True,\n",
" download=True,\n",
" transform=transform\n",
")\n",
"\n",
"test_set = torchvision.datasets.MNIST(\n",
" root='./data',\n",
" train=False,\n",
" download=True,\n",
" transform=transform\n",
")\n",
"\n",
"device = \"cuda\"\n",
"# Split training set for training and validation\n",
"num_train = len(train_set)\n",
"indices = list(range(num_train))\n",
"split = int(0.8 * num_train) # 80% for training, 20% for validation\n",
"\n",
"train_indices, val_indices = indices[:split], indices[split:]\n",
"train_sampler = torch.utils.data.SubsetRandomSampler(train_indices)\n",
"val_sampler = torch.utils.data.SubsetRandomSampler(val_indices)\n",
"\n",
"# Data loaders\n",
"batch_size = 256\n",
"num_workers = 8\n",
"\n",
"train_loader = DataLoader(train_set, batch_size=batch_size, num_workers=num_workers, sampler=train_sampler)\n",
"test_loader = DataLoader(test_set, batch_size=batch_size, num_workers=num_workers, shuffle=False)\n",
"val_loader = DataLoader(train_set, batch_size=batch_size, num_workers=num_workers, sampler=val_sampler)\n",
"\n",
"device = \"cuda\"\n",
"\n",
"# Initialize the network\n",
"model = LeNet().to(device)\n",
"\n",
"# Loss and optimizer\n",
"criterion = nn.CrossEntropyLoss()\n",
"optimizer = optim.Adam(model.parameters(), lr=0.001)\n",
"\n",
"# Train the model\n",
"def train(model, num_epochs):\n",
" model.train()\n",
" for epoch in range(num_epochs):\n",
" running_loss = 0.0\n",
" with tqdm(train_loader, unit=\"batch\") as tepoch:\n",
" for images, labels in tepoch:\n",
" tepoch.set_description(f\"Epoch {epoch+1}\")\n",
" images, labels = images.to(device), labels.to(device)\n",
" \n",
" outputs = model(images)\n",
" loss = criterion(outputs, labels)\n",
"\n",
" optimizer.zero_grad()\n",
" loss.backward()\n",
" optimizer.step()\n",
"\n",
" running_loss += loss.item()\n",
" tepoch.set_postfix(loss=running_loss/len(train_loader))\n",
" validate(model, epoch)\n",
" \n",
"# Test the model\n",
"def test(model):\n",
" model.eval()\n",
" with torch.no_grad():\n",
" with tqdm(test_loader, unit=\"batch\") as tepoch:\n",
" correct = 0\n",
" total = 0\n",
" for images, labels in tepoch:\n",
" images, labels = images.to(device), labels.to(device)\n",
" tepoch.set_description(\"Testing\")\n",
" outputs = model(images)\n",
" _, predicted = torch.max(outputs.data, 1)\n",
" total += labels.size(0)\n",
" correct += (predicted == labels).sum().item()\n",
"\n",
" print(f'Accuracy of the model on the 10000 test images: {100 * correct / total}%')\n",
" \n",
"\n",
"def validate(model, epoch):\n",
" model.eval()\n",
" correct = 0\n",
" total = 0\n",
" with torch.no_grad(), tqdm(val_loader, unit=\"batch\") as vepoch:\n",
" for images, labels in vepoch:\n",
" images, labels = images.to(device), labels.to(device)\n",
" vepoch.set_description(f\"Epoch {epoch+1}/Validation\")\n",
" outputs = model(images)\n",
" _, predicted = torch.max(outputs.data, 1)\n",
" total += labels.size(0)\n",
" correct += (predicted == labels).sum().item()\n",
"\n",
" accuracy = 100 * correct / total\n",
" vepoch.set_postfix(validation_accuracy=accuracy)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def visualize_erf(model, input_shape=(1, 1, 32, 32), device='cuda', im_name='erf.png'):\n",
" input_tensor = torch.zeros(input_shape, device=device, requires_grad=True)\n",
" # input_tensor = torch.randn(input_shape, device=device, requires_grad=True)\n",
" # Set the model to evaluation mode\n",
" model.eval()\n",
"\n",
" # Forward pass: compute the output tensor\n",
" output = model(input_tensor)\n",
" \n",
" # Initialize the output gradient as zero everywhere and 1 at a specific location\n",
" grad_output = torch.zeros_like(output)\n",
" x, y = grad_output.shape[2] // 2, grad_output.shape[3] // 2\n",
" \n",
" for i in range(grad_output.shape[1]):\n",
" grad_output[0, i, x, y] = 1 # Target a specific output unit\n",
"\n",
" # Backward pass: compute gradient of the output with respect to the input image\n",
" output.backward(grad_output)\n",
"\n",
" # Retrieve the gradient of the input\n",
" grad_input = input_tensor.grad.data[0, 0].cpu().numpy()\n",
" grad_input = np.abs(grad_input) # Get the absolute values of the gradients\n",
" grad_input = grad_input / np.max(grad_input) # Normalize the gradients\n",
"\n",
" # Plot the gradient\n",
" plt.imshow(grad_input, cmap='gray', interpolation='nearest')\n",
" plt.imsave(im_name, grad_input, cmap='gray')\n",
" plt.title(\"Effective Receptive Field (ERF)\")\n",
" plt.colorbar()\n",
" plt.show()\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Epoch 1: 100%|██████████| 188/188 [00:01<00:00, 110.98batch/s, loss=1.47] \n",
"Epoch 1/Validation: 100%|██████████| 47/47 [00:00<00:00, 84.56batch/s]\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAesAAAGzCAYAAAAPLj87AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJvElEQVR4nO3deVxVdf4/8NcF4bLjwo4oiiauVJiES1mSaJNpWWI1uWSaDVRKZTLf1GzDtDGbyfJXjdlYJmrZnk6iaAvWSJHVJCphriAurAoo9/P7owd3urJ43nCvnMN9PR+P+3jouW8+53POuZc3n885531MSikFIiIi0i2X1u4AERERNY3JmoiISOeYrImIiHSOyZqIiEjnmKyJiIh0jsmaiIhI55isiYiIdI7JmoiISOeYrImIiHSOydpAKioqcO+99yIkJAQmkwmzZs0CABQVFeG2225Dp06dYDKZsGzZskvWp1WrVsFkMuHAgQOXbJ3OJDIyElOmTGntbtQzZcoUREZGNutnhw8fjuHDh180LisrCyaTCVlZWZraXbx4MaKjo2GxWJrVL3ubO3cu4uLiWrsb1EYwWbeyumTX2Gvnzp3W2GeffRarVq3C/fffj9WrV+Puu+8GAMyePRubN29GWloaVq9ejVGjRtm9n88++yzef/99u7fbXBfut3bt2iE8PBxTpkzBkSNHWrt7Il9//TWeeOIJlJSUtHZXrCIjIxv9TFZVVbV29+opKyvDc889h8ceewwuLv/7tdbUd2vmzJnWuClTpti8Zzabcdlll2H+/PkNbm9jbYaEhFhjZs2ahR9++AEffvihYzeenEK71u4A/e7JJ59Et27d6i3v0aOH9d9bt27F1VdfjQULFtjEbN26FWPHjsUjjzzisP49++yzuO222zBu3Dib5XfffTcmTpwIs9nssHU3pW6/VVVVYefOnVi1ahW+/PJL/PTTT/Dw8GiVPkl9/fXXWLhwIaZMmYL27dvbvJeXl2eTfC6lyy+/HA8//HC95e7u7njttdd0M4IFgJUrV+L8+fO444476r13ww03YNKkSfWWX3bZZTb/N5vNeP311wEApaWl+OCDD/DUU08hPz8fb7/9tqZ2PT09rf8OCQnB2LFj8fzzz+Pmm29u1nYR1WGy1onRo0dj4MCBTcYcP34cffr0aXD5hb/kLxVXV1e4urq2yroB2/127733IiAgAM899xw+/PBDTJgwodX6ZS+t9UcQAISHh+PPf/5zg++11h8QjXnjjTdw8803N/gH2mWXXdbodvxRu3btbOL+8pe/YPDgwXjnnXewdOlSBAcHi9udMGECbr/9dvz666/o3r27xq0hqk9f3zhqUN25u4KCAnzyySfWKbe6qWClFJYvX25dXqekpASzZs1CREQEzGYzevTogeeee67eiMhiseDFF19E//794eHhgcDAQIwaNQq7du0C8PuUX2VlJd58803rOurOo154zvqmm25q9JdSfHx8vT9I3nrrLcTGxsLT0xMdO3bExIkTcejQoWbvq2HDhgEA8vPzbZbv2bMHt912Gzp27AgPDw8MHDiwwenJkpISzJ49G5GRkTCbzejcuTMmTZqEEydOWGOqq6uxYMEC9OjRA2azGREREZgzZw6qq6tt2jKZTEhJScHbb7+NXr16wcPDA7GxsdixY4c15oknnsCjjz4KAOjWrZt1/9btzz+es961axdMJhPefPPNev3evHkzTCYTPv74Y+uyI0eO4J577kFwcDDMZjP69u2LlStXCvZm4xo6Z22xWLBs2TL07dsXHh4eCA4Oxn333YfTp09ftL3Dhw9j3Lhx8Pb2RlBQEGbPnl1vfzamoKAAu3fvRkJCQnM2pVEmkwlDhw6FUgq//vprs9qo69MHH3xgz66RE+LIWidKS0ttEgLw+y+LTp06oXfv3li9ejVmz56Nzp07W6cmr7jiCuu56wun5M6cOYNrr70WR44cwX333YcuXbrg66+/RlpaGo4dO2ZzEdq0adOwatUqjB49Gvfeey/Onz+PL774Ajt37sTAgQOxevVq3HvvvRg0aBBmzJgBAIiKimpwO5KSkjBp0iT85z//wVVXXWVd/ttvv2Hnzp1YsmSJddkzzzyDefPmYcKECbj33ntRXFyMf/zjH7jmmmvw/fffN2u2oC7JdejQwbrs559/xpAhQxAeHo65c+fC29sb69atw7hx4/Duu+/illtuAfD7BXzDhg3DL7/8gnvuuQdXXnklTpw4gQ8//BCHDx9GQEAALBYLbr75Znz55ZeYMWMGevfujR9//BEvvPAC9u7dW++8/vbt25GRkYEHH3wQZrMZL7/8MkaNGoVvv/0W/fr1w6233oq9e/finXfewQsvvICAgAAAQGBgYL1tGzhwILp3745169Zh8uTJNu9lZGSgQ4cOSExMBPD7RYdXX3219Q+GwMBAfPbZZ5g2bRrKysqsFyc25dy5c/U+k15eXvDy8mow/r777sOqVaswdepUPPjggygoKMBLL72E77//Hl999RXc3Nwa/LmzZ89ixIgROHjwIB588EGEhYVh9erV2Lp160X7CPx+GgEArrzyygbfr6qqqrcdAODn5wd3d/cm227o89RUu76+vjazIf7+/oiKisJXX32F2bNnN7kuoiYpalVvvPGGAtDgy2w228R27dpV/elPf6rXBgCVnJxss+ypp55S3t7eau/evTbL586dq1xdXdXBgweVUkpt3bpVAVAPPvhgvXYtFov1397e3mry5MmN9r+goEAppVRpaakym83q4YcftolbvHixMplM6rffflNKKXXgwAHl6uqqnnnmGZu4H3/8UbVr167e8sbWu2XLFlVcXKwOHTqkNmzYoAIDA5XZbFaHDh2yxo4YMUL1799fVVVV2Wzb4MGDVc+ePa3L5s+frwCo9957r9F9sXr1auXi4qK++OILm/dXrFihAKivvvrKuqzuOO7atcu67LffflMeHh7qlltusS5bsmSJzT78o65du9rs97S0NOXm5qZOnTplXVZdXa3at2+v7rnnHuuyadOmqdDQUHXixAmb9iZOnKj8/f3VmTNn6q3rwvU29JlcsGCBUkqpyZMnq65du1rjv/jiCwVAvf322zbtbNq0qd7ya6+9Vl177bXW/y9btkwBUOvWrbMuq6ysVD169FAA1LZt25rs6+OPP64AqPLy8nrvNfbdAqDeeecda9zkyZOVt7e3Ki4uVsXFxWr//v3q+eefVyaTSfXr18/mu9BUu2+88Ua9PowcOVL17t27yW0guhiOrHVi+fLl9S54acm54PXr12PYsGHo0KGDzV//CQkJWLRoEXbs2IG77roL7777LkwmU72L1gDYTKlr5efnh9GjR2PdunVYsmSJtY2MjAxcffXV6NKlCwDgvffeg8ViwYQJE2z6FxISgp49e2Lbtm3461//etH1XTj1GRkZibfeegudO3cGAJw6dQpbt27Fk08+ifLycpSXl1tjExMTsWDBAhw5cgTh4eF49913ERMTYx1pN7Qv1q9fj969eyM6Otqm39dffz0AYNu2bRg8eLB1eXx8PGJjY63/79KlC8aOHYuPPvoItbW14mOclJSE9PR0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Cd0ma8nOl9TlldYGl/TDx8dH1LaHh4fmWGlNZkkdX+kHvaqqShQv2U5p3XFvb2/NsS4ujptIOnv2rCheUu8ZAI4ePao5tl072de6a9eummOlNbMln5UjR46I2t67d6/m2OLiYlHbks+sVEVFhSheUl9d2m/Jd1+vCZHT4ERERKQLuh1ZExERXYyzjKyZrImIyLCcJVlzGpyIiEjnOLImIiLDcpaRNZM1EREZlrMka06DExER6RxH1kREZFjOMrJmsiYiIsNisiYiItI5JutWZrFYYDKZNMVKdra05KSkfJ+07ZqaGs2xp06dErUtiZeWD83PzxfFx8bGao7t2bOnqO0OHTpojnV1dRW1XV1drTn29OnToralpTWPHz+uOXbQoEGitiMjIzXHSvfhuXPnNMeGhISI2paU7ZR+fyorK0Xxku+QtHSwpKSu5DMrjZeUajZKAjQS3SZrIiKii+HImoiISOecJVnz1i0iIiKd48iaiIgMy1lG1kzWRERkWM6SrDkNTkREpHMcWRMRkWE5y8iayZqIiAzLWZI1p8GJiIh0jiNrIiIyLGcZWTNZExGRYTFZt1Fa643Xqa2t1RwrrScsqbVbWlrqsLal/e7Ro4coPiIiQnNsQECAqG1pnWUJyWdFWhdeGi/5HEpipfHSfktqiUtqYANAu3baf31Ja5p7enqK4iXfIcl3E5AdH0ktduD3ZzAYnbMka56zJiIi0jlRsk5PT8dVV10FX19fBAUFYdy4ccjLy7OJGT58OEwmk81r5syZdu00ERFRnbrRdXNeRiFK1tu3b0dycjJ27tyJzz//HOfOncPIkSPrTQFNnz4dx44ds74WL15s104TEREBLUvURkrYomS9adMmTJkyBX379kVMTAxWrVqFgwcPIicnxybOy8sLISEh1pefn59dO01ERNSali9fjsjISHh4eCAuLg7ffvtto7GvvfYahg0bhg4dOqBDhw5ISEhoMr4hLTpnXXfRU8eOHW2Wv/322wgICEC/fv2QlpaGM2fONNpGdXU1ysrKbF5ERERatMbIOiMjA6mpqViwYAG+++47xMTEIDExEcePH28wPisrC3fccQe2bduG7OxsREREYOTIkThy5IjmdTY7WVssFsyaNQtDhgxBv379rMvvvPNOvPXWW9i2bRvS0tKwevVq/PnPf260nfT0dPj7+1tfkiuHiYjI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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"train(model, num_epochs=1)\n",
"conv_trained = ConvLeNet(model).to(device=device)\n",
"visualize_erf(conv_trained, input_shape=(1, 1, 32, 32), device='cuda', im_name='erf_trained_20.png')\n"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Testing: 100%|██████████| 40/40 [00:01<00:00, 38.79batch/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy of the model on the 10000 test images: 98.55%\n"
]
}
],
"source": [
"test(model)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"conv_trained = ConvLeNet(model).to(device=device)\n",
"conv_untrained = ConvLeNet().to(device=device)"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAesAAAGzCAYAAAAPLj87AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKmElEQVR4nO3de1xUdf4/8NeAMNxRRK6ieMlLqViYhFpZkmibaVpitXnJNFvoIrUm+03Nbpi2ZrtZ/qo128pELbunmyhaiZUYmZuiEgZeQNS4CHIRPr8/ejDbyIDnDTNyjvN6Ph7zeOiZN5/5nHNm5j2fzznnfUxKKQUiIiLSLZe27gARERE1j8maiIhI55isiYiIdI7JmoiISOeYrImIiHSOyZqIiEjnmKyJiIh0jsmaiIhI55isiYiIdI7J2kDOnDmD++67DyEhITCZTHjkkUcAAEVFRbj99tvRsWNHmEwmLFu27KL1adWqVTCZTDh8+PBFe01nEhkZialTp7Z1NxqZOnUqIiMjW/S3w4cPx/Dhwy8Yl5GRAZPJhIyMDE3tLl68GH369EF9fX2L+mVvc+fORUxMTFt3gy4RTNZtrCHZNfXYuXOnJfa5557DqlWr8MADD+Dtt9/GPffcAwCYPXs2Nm3ahJSUFLz99tsYNWqU3fv53HPP4cMPP7R7uy11/nZr164dwsPDMXXqVBw9erStuyeyY8cOPPnkkygpKWnrrlhERkY2+Z6sqqpq6+41UlZWhueffx6PP/44XFz+97XW3Gdr1qxZlripU6daPWc2m9GrVy/Mnz/f5vo21WZISIgl5pFHHsGPP/6Ijz/+2LErT06hXVt3gH731FNPoVu3bo2W9+zZ0/LvLVu24JprrsGCBQusYrZs2YKxY8fisccec1j/nnvuOdx+++0YN26c1fJ77rkHkyZNgtlsdthrN6dhu1VVVWHnzp1YtWoVvv76a+zduxceHh5t0iepHTt2YOHChZg6dSrat29v9VxOTo5V8rmYBg4ciEcffbTRcnd3d7z++uu6GcECwMqVK3Hu3DnceeedjZ676aabMHny5EbLe/XqZfV/s9mMN954AwBQWlqKjz76CE8//TRyc3Px7rvvamrX09PT8u+QkBCMHTsWL7zwAm699dYWrRdRAyZrnRg9ejQGDRrUbMyJEydw+eWX21x+/pf8xeLq6gpXV9c2eW3Aervdd999CAwMxPPPP4+PP/4YEydObLN+2Utb/QgCgPDwcPz5z3+2+Vxb/YBoyptvvolbb73V5g+0Xr16Nbkef9SuXTuruL/85S8YMmQI3nvvPSxduhTBwcHididOnIg77rgDv/zyC7p3765xbYga09cnjmxqOHaXl5eHzz77zDLl1jAVrJTC8uXLLcsblJSU4JFHHkFERATMZjN69uyJ559/vtGIqL6+Hi+99BL69+8PDw8PdOrUCaNGjcKuXbsA/D7lV1FRgbfeesvyGg3HUc8/Zn3LLbc0+aUUGxvb6AfJO++8g+joaHh6eiIgIACTJk1CQUFBi7fVtddeCwDIzc21Wr5//37cfvvtCAgIgIeHBwYNGmRzerKkpASzZ89GZGQkzGYzOnfujMmTJ+PkyZOWmOrqaixYsAA9e/aE2WxGREQE5syZg+rqaqu2TCYTkpKS8O6776J3797w8PBAdHQ0tm/fbol58skn8de//hUA0K1bN8v2bdiefzxmvWvXLphMJrz11luN+r1p0yaYTCZ8+umnlmVHjx7Fvffei+DgYJjNZlxxxRVYuXKlYGs2zdYx6/r6eixbtgxXXHEFPDw8EBwcjPvvvx+//fbbBds7cuQIxo0bB29vbwQFBWH27NmNtmdT8vLysGfPHsTFxbVkVZpkMpkwbNgwKKXwyy+/tKiNhj599NFH9uwaOSGOrHWitLTUKiEAv39ZdOzYEX379sXbb7+N2bNno3PnzpapySuvvNJy7Pr8KbnKykpcf/31OHr0KO6//3506dIFO3bsQEpKCo4fP251Etr06dOxatUqjB49Gvfddx/OnTuHr776Cjt37sSgQYPw9ttv47777sPgwYMxc+ZMAECPHj1srkdCQgImT56M77//HldffbVl+a+//oqdO3diyZIllmXPPvss5s2bh4kTJ+K+++5DcXEx/vnPf+K6667DDz/80KLZgoYk16FDB8uy//73vxg6dCjCw8Mxd+5ceHt7Y+3atRg3bhzef/993HbbbQB+P4Hv2muvxb59+3DvvffiqquuwsmTJ/Hxxx/jyJEjCAwMRH19PW699VZ8/fXXmDlzJvr27YuffvoJL774Ig4cONDouP62bduQlpaGhx56CGazGa+88gpGjRqF7777Dv369cP48eNx4MABvPfee3jxxRcRGBgIAOjUqVOjdRs0aBC6d++OtWvXYsqUKVbPpaWloUOHDoiPjwfw+0mH11xzjeUHQ6dOnfDFF19g+vTpKCsrs5yc2Jza2tpG70kvLy94eXnZjL///vuxatUqTJs2DQ899BDy8vLw8ssv44cffsA333wDNzc3m3939uxZjBgxAvn5+XjooYcQFhaGt99+G1u2bLlgH4HfDyMAwFVXXWXz+aqqqkbrAQB+fn5wd3dvtm1b76fm2vX19bWaDfH390ePHj3wzTffYPbs2c2+FlGzFLWpN998UwGw+TCbzVaxXbt2VX/6058atQFAJSYmWi17+umnlbe3tzpw4IDV8rlz5ypXV1eVn5+vlFJqy5YtCoB66KGHGrVbX19v+be3t7eaMmVKk/3Py8tTSilVWlqqzGazevTRR63iFi9erEwmk/r111+VUkodPnxYubq6qmeffdYq7qefflLt2rVrtLyp1928ebMqLi5WBQUFav369apTp07KbDargoICS+yIESNU//79VVVVldW6DRkyRF122WWWZfPnz1cA1AcffNDktnj77beVi4uL+uqrr6yeX7FihQKgvvnmG8uyhv24a9cuy7Jff/1VeXh4qNtuu82ybMmSJVbb8I+6du1qtd1TUlKUm5ubOn36tGVZdXW1at++vbr33nsty6ZPn65CQ0PVyZMnrdqbNGmS8vf3V5WVlY1e6/zXtfWeXLBggVJKqSlTpqiuXbta4r/66isFQL377rtW7WzcuLHR8uuvv15df/31lv8vW7ZMAVBr1661LKuoqFA9e/ZUANTWrVub7esTTzyhAKjy8vJGzzX12QKg3nvvPUvclClTlLe3tyouLlbFxcXq0KFD6oUXXlAmk0n169fP6rPQXLtvvvlmoz6MHDlS9e3bt9l1ILoQjqx1Yvny5Y1OeGnNseB169bh2muvRYcOHax+/cfFxWHRokXYvn077r77brz//vswmUyNTloDYDWlrpWfnx9Gjx6NtWvXYsmSJZY20tLScM0116BLly4AgA8++AD19fWYOHGiVf9CQkJw2WWXYevWrfjb3/52wdc7f+ozMjIS77zzDjp37gwAOH36NLZs2YKnnnoK5eXlKC8vt8TGx8djwYIFOHr0KMLDw/H+++8jKirKMtK2tS3WrVuHvn37ok+fPlb9vvHGGwEAW7duxZAhQyzLY2NjER0dbfl/ly5dMHbsWHzyySeoq6sT7+OEhASkpqbigw8+wPTp0wEA//nPf1BSUoKEhAQAgFIK77//PiZOnAillFU/4+PjsWbNGuzevRtDhw5t9rViYmLwzDPPWC1r6hDHunXr4O/vj5tuusnq9aKjo+Hj44OtW7firrvusvm3n3/+OUJDQ3H77bdblnl5eWHmzJmYM2dOs30EgFOnTqFdu3bw8fGx+fzYsWORlJTUaHn//v2t/l9RUdFoRmPYsGGWwz9a2r3iiisaxXXo0AE//PDDBdeDqDlM1joxePDgC55gJnHw4EHs2bPH5nQq8PtJacDvx3bDwsIQEBBgt9dOSEjAhx9+iMzMTAwZMgS5ubnIysqymno/ePAglFK47LLLbLbR1JTp+Rp+5JSWlmLlypXYvn271TTkoUOHoJTCvHnzMG/ePJttnDhxAuHh4cjNzcWECROafb2DBw9i3759F9yuDWytX69evVBZWYni4mKrS320iIqKQp8+fZCWlmZJ1mlpaQgMDLT8YCguLkZJSQlee+01vPbaa5r6aUtgYKDm48AHDx5EaWkpgoKCxK/366+/omfPno0SYu/evTW99oV07txZ03p4eHjgk08+AfD7MfTFixfjxIkTVmd4t6RdpVSLfvgS/RGT9SWqvr4eN910U5Mjk/NH8fY0ZswYeHl5Ye3atRgyZAjWrl0LFxcX3HHHHVb9M5lM+OKLL2yOLpsaJZ3vjz9yxo0bh2HDhuGuu+5CTk4OfHx8LCfTPfbYY5bjuef74+VxF1JfX4/+/ftj6dKlNp+PiIjQ3FZLJSQk4Nlnn8XJkyfh6+uLjz/+GHfeeSfatWtn6SMA/PnPf250bLvBgAED7Nqn+vp6BAUF2bzECbB9DN5eOnbsiHPnzqG8vBy+vr4tbsfV1dUq+cbHx6NPnz64//77W3Wt9G+//WY5F4GopZisL1E9evTAmTNnLvjLv0ePHti0aRNOnz7d7OhaMjLw9vbGLbfcgnXr1mHp0qVIS0vDtddei7CwMKvXVUqhW7dudvvh4OrqitTUVNxwww14+eWXMXfuXMu0rZubm6ZtsXfv3gvG/PjjjxgxYoSmbXLw4MFGyw4cOAAvLy9LApOOuhISErBw4UK8//77CA4ORllZGSZNmmR5vlOnTvD19UVdXZ3dz5BuSo8ePbB582YMHTq0yZFoU7p27Yq9e/c2GoHm5ORo+vs+ffoA+P2scHv+CAkNDcXs2bOxcOFC7Ny5E9dcc02L2snLy0NUVJTd+kXOiZduXaImTpyIzMxMbNq0qdFzJSUlOHfuHABgwoQJUEph4cKFjeKUUpZ/e3t7iypsJSQk4NixY3jjjTfw448/Wo6nNhg/fjxcXV2xcOFCq9dpeN1Tp05pfq0/Gj58OAYPHoxly5ahqqoKQUFBGD58OP7f//t/OH78eKP44uJiy78nTJiAH3/8ERs2bGgU19DHiRMn4ujRo3j99dcbxZw9exYVFRVWyzIzM7F7927L/wsKCvDRRx9h5MiRlhkFb29vANC8ffv27Yv+/fsjLS0NaWlpCA0NxXXXXWd53tXVFRMmTMD7779v88fHH9fZXiZOnIi6ujo8/fTTjZ47d+5cs+t2880349ixY1i/fr1lWWVlZZNT+OeLjY0FAMulhvb04IMPwsvLC4sWLWrR35eWliI3N9fqPAailuDIWie++OIL7N+/v9HyIUOGtKiYwl//+ld8/PHHuOWWWzB16lRER0ejoqICP/30E9avX4/Dhw8jMDAQN9xwA+655x784x//wMGDBzFq1CjU19fjq6++wg033GA5gSY6OhqbN2/G0qVLERYWhm7dujVb9/jmm2+Gr68vHnvsMUvy+KMePXrgmWeeQUpKCg4fPoxx48bB19cXeXl52LBhA2bOnNniimx//etfcccdd2DVqlWYNWsWli9fjmHDhqF///6YMWMGunfvjqKiImRmZuLIkSP48ccfLX+3fv163HHHHbj33nsRHR2N06dP4+OPP8aKFSsQFRWFe+65B2vXrsWsWbOwdetWDB06FHV1ddi/fz/Wrl2LTZs2WZ170K9fP8THx1tdugXA6sdRwwlo//d//4dJkybBzc0NY8aMsSRxWxISEjB//nx4eHhg+vTpjYqULFq0CFu3bkVMTAxmzJiByy+/HKdPn8bu3buxefNmnD59ukXbtinXX3897r//fqSmpiI7OxsjR46Em5sbDh48iHXr1uGll16yOoHsj2bMmIGXX34ZkydPRlZWFkJDQ/H22283eYnY+bp3745+/fph8+bNuPfeexs9f+DAAbzzzjuNlgcHB+Omm25qtu2OHTti2rRpeOWVV7Bv3z707dtXU58abN68GUopjB07VvR3RI20yTnoZNHcpVs471IQyaVbSilVXl6uUlJSVM+ePZW7u7sKDAxUQ4YMUS+8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pMWdIiIi0sJZkrVDKphlZGQgKCgIvXv3xgMPPIBTp041GVtdXY2ysjKrBxEREf2P3ZP1qFGj8O9//xvp6el4/vnnsW3bNowePRp1dXU241NTU+Hv7295RERE2LtLRER0iWoYWbfmYQR2Pxt80qRJln/3798fAwYMQI8ePZCRkYERI0Y0ik9JSUFycrLl/2VlZUzYRESkCafB7aR79+4IDAxssqiH2WyGn5+f1YOIiIj+x+HXWR85cgSnTp0SVWAiIiLSwllG1uJkfebMGatRcl5eHrKzsxEQEICAgAAsXLgQEyZMQEhICHJzczFnzhz07NkT8fHxdu04ERERk3UTdu3ahRtuuMHy/4bjzVOmTMGrr76KPXv24K233kJJSQnCwsIwcuRIPP300+JrrRsKqmghqRF85swZUT8kNX/37t0ravv48eOaY7dt2yZqW1J/eN++faK2pXWwJTWffXx8RG1fdtllmmOlh1gGDx6sOdbFRXZEKTs7WxR/7NgxzbEdOnQQtS1x4MABUXz79u01x3bu3NlhbUs+x4C8xrbkngPSGuhnz57VHNvUibxNkW4XvTJKwm0NcbIePnx4sxtm06ZNreoQERERWWNtcCIiMixOgxMREemcsyRrh1+6RURERK3DkTURERmWs4ysmayJiMiwnCVZcxqciIhI5ziyJiIiw3KWkTWTNRERGZazJGtOgxMREekcR9ZERGRYzjKyviSStaQus6SOOADU1NRojv35559FbUveJF5eXqK2O3XqpDl2+PDhoraDgoJE8QEBAZpj3dzcRG1L6mCXl5eL2t61a5fm2IMHD4ralq7nzTffrDk2MjJS1Lbkfbh7925R23v27NEc29RtdJsiue+9tGZ2WVmZKL62tlZzrDQ5SL6zJP0AZN+deq0jzmRNRESkc86SrHnMmoiISOc4siYiIsNylpE1kzURERmWsyRrToMTERHpHEfWRERkWM4ysmayJiIiw3KWZM1pcCIiIp3jyJqIiAzLWUbWTNZERGRYTNZtzNXVFSaTSVOsh4eH5nbd3d1F/ZCUs/T09BS1HRISojk2NjZW1Hb37t01xw4ePFjUtqR8KCD7MPz222+itk+dOqU5VlI+FJCVjz158qSo7SeeeEIUP2jQIM2xvr6+orZLSko0x3p7e4valpT5/Oabb0RtS8pfSj/3VVVVovjq6mrNsdLS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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"visualize_erf(conv_trained, input_shape=(1, 1, 32, 32), device='cuda', im_name='erf_trained.png')\n",
"visualize_erf(conv_untrained, input_shape=(1, 1, 32, 32), device='cuda', im_name='erf_untrained.png')"
]
},
{
"cell_type": "code",
"execution_count": 132,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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6too69bpdNBoNDh27BhcXFzqvZ7S0lL07NmzUcdqCY1+5leLFi1w33334dy5c0bfV6vVUKvVjT0MIiIi2Wr0241eu3YN58+fh7e3d2NvioiIFEYp0+AWD+vnn38eGRkZuHDhAg4dOoQnnngCtra2GD9+vKU3RUREdM8HNdAI0+C//PILxo8fj99++w2tW7dG//79kZWVhdatW1t6U0RERIpg8bDeuHGjpVdJRERklFKus+atxYiISLYY1kRERFZOKWHd6GeDExERUcOwsiYiItlSSmXNsCYiItlSSlhzGpyIiMjKsbImIiLZUkplzbAmIiLZUkpYcxqciIjIyrGyJiIi2VJKZc2wJiIi2VJKWHManIiIyMqxsiYiItlSSmXNsCYiItlSSlhzGpyIiGSrOqwbstRHamoqAgIC4ODggNDQUHz//fd19k9JScH999+P5s2bw8/PD/Hx8SgvLzd5ewxrIiIiM6SlpSEhIQFJSUk4evQogoODERERgcuXLxvtv2HDBsydOxdJSUk4deoUPvroI6SlpeHll182eZsMayIikq2mqKyXLVuGadOmYdKkSejcuTNWrlwJR0dHrF692mj/Q4cOoV+/fnjqqacQEBCAYcOGYfz48Xesxm/FsCYiItmyVFjrdDqDpaKiwuj2KisrkZ2djfDwcKnNxsYG4eHhyMzMNPqZvn37Ijs7Wwrnn376CV9//TUeeeQRk78nw5qIiBTPz88PGo1GWpKTk432u3LlCqqqquDp6WnQ7unpicLCQqOfeeqpp/Dqq6+if//+sLOzQ/v27TFo0CCzpsF5NjgREcmWpc4GLygogKurq9SuVqsbPLZq+/fvxxtvvIHly5cjNDQU586dw+zZs7Fo0SLMnz/fpHUwrImISLYsFdaurq4GYV0bd3d32NraoqioyKC9qKgIXl5eRj8zf/58PP3005g6dSoAoFu3bigrK8P06dPx97//HTY2d57k5jQ4ERGRiezt7RESEoL09HSpTa/XIz09HWFhYUY/c/369RqBbGtrC8D067xZWRMRkWw1xU1REhISEBsbi169eqF3795ISUlBWVkZJk2aBACIiYmBr6+vdNx75MiRWLZsGXr27ClNg8+fPx8jR46UQvtOGNZERCRrd/suZNHR0SguLsaCBQtQWFiIHj16YOfOndJJZ/n5+QaV9Lx586BSqTBv3jxc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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"tensor = torch.zeros(1, 1, 41, 41, requires_grad=False)\n",
"\n",
"tensor[0, 0, 20, 20] = 1\n",
"\n",
"# Plot the gradient\n",
"plt.imshow(tensor.squeeze().numpy(), cmap='gray', interpolation='nearest')\n",
"plt.imsave(\"feature_one.png\", tensor.squeeze().numpy(), cmap='gray')\n",
"plt.title(\"Effective Receptive Field (ERF)\")\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torch.nn as nn\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import os\n",
"\n",
"def visualize_gradients(model, input_shape=(1, 1, 32, 32), device='cuda', gradients_dir='gradients'):\n",
" input_tensor = torch.zeros(input_shape, device=device, requires_grad=True)\n",
" # input_tensor = torch.randn(input_shape, device=device, requires_grad=True)\n",
" # Set the model to evaluation mode\n",
" model.eval()\n",
"\n",
" # Create a directory to save the gradients\n",
" os.makedirs(gradients_dir, exist_ok=True)\n",
" \n",
" # Function to save the gradient as an image\n",
" def save_gradient(name):\n",
" def hook(grad):\n",
" grad = grad[0].cpu().numpy()\n",
" grad = np.abs(grad) # Get the absolute values of the gradients\n",
" grad = grad / np.max(grad) # Normalize the gradients\n",
"\n",
" if grad.shape[0] > 1:\n",
" grad = np.mean(grad, axis=0)\n",
" \n",
" grad = grad.squeeze()\n",
" plt.imsave(os.path.join(gradients_dir, f'{name}_grad.png'), grad, cmap='gray')\n",
" return hook\n",
"\n",
" # Register hooks to save gradients for each layer\n",
" for name, module in model.named_modules():\n",
" if isinstance(module, nn.Conv2d) or isinstance(module, nn.Linear):\n",
" module.register_full_backward_hook(lambda module, grad_input, grad_output, name=name: save_gradient(name)(grad_input[0]))\n",
"\n",
" # Forward pass: compute the output tensor\n",
" output = model(input_tensor)\n",
" \n",
" # Initialize the output gradient as zero everywhere and 1 at a specific location\n",
" grad_output = torch.zeros_like(output)\n",
" x, y = grad_output.shape[2] // 2, grad_output.shape[3] // 2\n",
" \n",
" for i in range(grad_output.shape[1]):\n",
" grad_output[0, i, x, y] = 1 # Target a specific output unit\n",
"\n",
" # Backward pass: compute gradient of the output with respect to the input image\n",
" output.backward(grad_output)\n",
"\n",
"# Device configuration\n",
"device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
"\n",
"# Instantiate the model\n",
"cnn20 = CNN15Layers().to(device=device)\n",
"cnn20relu = CNN15LayersReLU().to(device=device)\n",
"cnn20tanh= CNN15LayersTanh().to(device=device)\n",
"cnn20uniform = CNN15Layers().to(device=device)\n",
"\n",
"init_weights(cnn20uniform, val=0.1)\n",
"conv_untrained = ConvLeNet().to(device=device)\n",
"\n",
"# Visualize gradients\n",
"visualize_gradients(cnn20, input_shape=(1, 1, 32, 32), device=device, gradients_dir='gradients_cnn20')\n",
"visualize_gradients(cnn20relu, input_shape=(1, 1, 32, 32), device=device, gradients_dir='gradients_cnn20relu')\n",
"visualize_gradients(cnn20tanh, input_shape=(1, 1, 32, 32), device=device, gradients_dir='gradients_cnn20tanh')\n",
"visualize_gradients(cnn20uniform, input_shape=(1, 1, 32, 32), device=device, gradients_dir='gradients_cnn20uniform')\n",
"visualize_gradients(conv_untrained, input_shape=(1, 1, 32, 32), device=device, gradients_dir='gradients_conv_untrained')"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.load(\"gradients/conv_layers.19_grad.npy\")\n",
"\n",
"plt.imsave(\"images/feature_two.png\", np.abs(t[0, 6]), cmap='gray')\n",
"plt.imshow(np.abs(t[0, 6]), cmap='gray', interpolation='nearest')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Manim",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment