diff --git a/Lab3/code/1.1.py b/Lab3/code/1.1.py
new file mode 100644
index 0000000..c26eb9a
--- /dev/null
+++ b/Lab3/code/1.1.py
@@ -0,0 +1,36 @@
+import time
+import numpy as np
+import torch
+from torch.nn.functional import *
+from torch.utils.data import Dataset, DataLoader
+from torch import nn
+from torchvision import datasets, transforms
+from tqdm import tqdm
+from utils import *
+
+import ipdb
+
+class My_Dropout(nn.Module):
+ def __init__(self, p, **kwargs):
+ super().__init__()
+ self.p = p
+ self.mask = None
+
+ def forward(self, x:torch.Tensor):
+ if self.training:
+ self.mask = (torch.rand(x.shape) > self.p).to(dtype=torch.float32, device=x.device)
+ return x * self.mask / (1 - self.p)
+ else:
+ return x
+
+
+if __name__ == "__main__":
+ my_dropout = My_Dropout(p=0.5)
+ nn_dropout = nn.Dropout(p=0.5)
+ x = torch.tensor([[1.0, 2.0, 3.0, 4.0, 5.0],
+ [6.0, 7.0, 8.0, 9.0, 10.0]])
+ print(f"输入:\n{x}")
+ output_my_dropout = my_dropout(x)
+ output_nn_dropout = nn_dropout(x)
+ print(f"My_Dropout输出:\n{output_my_dropout}")
+ print(f"nn.Dropout输出:\n{output_nn_dropout}")
diff --git a/Lab3/code/1.2.py b/Lab3/code/1.2.py
new file mode 100644
index 0000000..0c8318e
--- /dev/null
+++ b/Lab3/code/1.2.py
@@ -0,0 +1,37 @@
+import time
+import numpy as np
+import torch
+from torch.nn.functional import *
+from torch.utils.data import Dataset, DataLoader
+from torch import nn
+from torchvision import datasets, transforms
+from tqdm import tqdm
+from utils import *
+
+import ipdb
+
+
+class MNIST_CLS_Model(nn.Module):
+ def __init__(self, num_classes, dropout_rate=0.5):
+ super().__init__()
+ self.flatten = nn.Flatten()
+ self.fc1 = nn.Linear(in_features=28 * 28, out_features=1024)
+ self.fc2 = nn.Linear(in_features=1024, out_features=num_classes)
+ self.dropout = nn.Dropout(p=dropout_rate)
+
+ def forward(self, x: torch.Tensor):
+ x = self.flatten(x)
+ x = torch.relu(self.fc1(x))
+ x = self.dropout(x)
+ x = self.fc2(x)
+ return x
+
+if __name__ == "__main__":
+ learning_rate = 8e-2
+ num_epochs = 10
+ for i in np.arange(3):
+ dropout_rate = 0.1 + 0.4 * i
+ model = MNIST_CLS_Model(num_classes=10, dropout_rate=dropout_rate)
+ optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)
+ print(f"dropout_rate={dropout_rate}")
+ train_loss, test_acc = train_MNIST_CLS(model, optimizer, num_epochs=num_epochs)
\ No newline at end of file
diff --git a/Lab3/code/utils.py b/Lab3/code/utils.py
new file mode 100644
index 0000000..b4cca83
--- /dev/null
+++ b/Lab3/code/utils.py
@@ -0,0 +1,208 @@
+import time
+import numpy as np
+import torch
+from torch.nn.functional import *
+from torch.utils.data import Dataset, DataLoader
+from torch import nn
+from torchvision import datasets, transforms
+from tqdm import tqdm
+
+import ipdb
+
+
+# 手动实现torch.nn.functional.one_hot
+def my_one_hot(indices: torch.Tensor, num_classes: int):
+ one_hot_tensor = torch.zeros(len(indices), num_classes, dtype=torch.long).to(indices.device)
+ one_hot_tensor.scatter_(1, indices.view(-1, 1), 1)
+ return one_hot_tensor
+
+
+# 手动实现torch.nn.functional.softmax
+def my_softmax(predictions: torch.Tensor, dim: int):
+ max_values = torch.max(predictions, dim=dim, keepdim=True).values
+ exp_values = torch.exp(predictions - max_values)
+ softmax_output = exp_values / torch.sum(exp_values, dim=dim, keepdim=True)
+ return softmax_output
+
+# 手动实现torch.nn.Linear
+class My_Linear:
+ def __init__(self, in_features: int, out_features: int):
+ self.weight = torch.normal(mean=0.001, std=0.5, size=(out_features, in_features), requires_grad=True, dtype=torch.float32)
+ self.bias = torch.normal(mean=0.001, std=0.5, size=(1,), requires_grad=True, dtype=torch.float32)
+ self.params = [self.weight, self.bias]
+
+ def __call__(self, x):
+ return self.forward(x)
+
+ def forward(self, x):
+ x = torch.matmul(x, self.weight.T) + self.bias
+ return x
+
+ def to(self, device: str):
+ for param in self.params:
+ param.data = param.data.to(device=device)
+ return self
+
+ def parameters(self):
+ return self.params
+
+
+# 手动实现torch.nn.Flatten
+class My_Flatten:
+ def __call__(self, x: torch.Tensor):
+ x = x.view(x.shape[0], -1)
+ return x
+
+
+# 手动实现torch.nn.ReLU
+class My_ReLU():
+ def __call__(self, x: torch.Tensor):
+ x = torch.max(x, torch.tensor(0.0, device=x.device))
+ return x
+
+
+# 手动实现torch.nn.Sigmoid
+class My_Sigmoid():
+ def __call__(self, x: torch.Tensor):
+ x = 1. / (1. + torch.exp(-x))
+ return x
+
+
+# 手动实现torch.nn.BCELoss
+class My_BCELoss:
+ def __call__(self, prediction: torch.Tensor, target: torch.Tensor):
+ loss = -torch.mean(target * torch.log(prediction) + (1 - target) * torch.log(1 - prediction))
+ return loss
+
+
+# 手动实现torch.nn.CrossEntropyLoss
+class My_CrossEntropyLoss:
+ def __call__(self, predictions: torch.Tensor, targets: torch.Tensor):
+ max_values = torch.max(predictions, dim=1, keepdim=True).values
+ exp_values = torch.exp(predictions - max_values)
+ softmax_output = exp_values / torch.sum(exp_values, dim=1, keepdim=True)
+
+ log_probs = torch.log(softmax_output)
+ nll_loss = -torch.sum(targets * log_probs, dim=1)
+ average_loss = torch.mean(nll_loss)
+ return average_loss
+
+
+# 手动实现损失函数
+class My_optimizer:
+ def __init__(self, params: list[torch.Tensor], lr: float):
+ self.params = params
+ self.lr = lr
+
+ def step(self):
+ with torch.no_grad():
+ for param in self.params:
+ param.data = param.data - self.lr * param.grad.data
+
+ def zero_grad(self):
+ for param in self.params:
+ if param.grad is not None:
+ param.grad.data = torch.zeros_like(param.grad.data)
+
+# 手动实现torch.optim.SGD
+class My_SGD:
+ def __init__(self, params: list[torch.Tensor], lr: float, weight_decay=0):
+ self.params = params
+ self.lr = lr
+ self.weight_decay = weight_decay
+
+ def step(self):
+ with torch.no_grad():
+ for param in self.params:
+ param.data = param.data - self.lr * param.grad.data
+
+ def zero_grad(self):
+ for param in self.params:
+ if param.grad is not None:
+ param.grad.data = torch.zeros_like(param.grad.data)
+
+
+def train_MNIST_CLS(model, optimizer, num_epochs):
+ batch_size = 512
+ num_classes = 10
+ device = "cuda:0" if torch.cuda.is_available() else "cpu"
+
+ transform = transforms.Compose(
+ [
+ transforms.ToTensor(),
+ transforms.Normalize((0.5,), (0.5,)),
+ ]
+ )
+ train_mnist_dataset = datasets.MNIST(root="../dataset", train=True, transform=transform, download=True)
+ test_mnist_dataset = datasets.MNIST(root="../dataset", train=False, transform=transform, download=True)
+ train_loader = DataLoader(
+ dataset=train_mnist_dataset,
+ batch_size=batch_size,
+ shuffle=True,
+ num_workers=14,
+ pin_memory=True,
+ )
+ test_loader = DataLoader(
+ dataset=test_mnist_dataset,
+ batch_size=batch_size,
+ shuffle=True,
+ num_workers=14,
+ pin_memory=True,
+ )
+
+ model = model.to(device)
+ criterion = nn.CrossEntropyLoss()
+
+ train_loss = list()
+ test_acc = list()
+ for epoch in range(num_epochs):
+ model.train()
+ total_epoch_loss = 0
+ start_time = time.time()
+ for index, (images, targets) in tqdm(
+ enumerate(train_loader), total=len(train_loader)
+ ):
+ optimizer.zero_grad()
+
+ images = images.to(device)
+ targets = targets.to(device)
+ one_hot_targets = one_hot(targets, num_classes=num_classes).to(dtype=torch.float)
+
+ outputs = model(images)
+ loss = criterion(outputs, one_hot_targets)
+ total_epoch_loss += loss.item()
+
+ loss.backward()
+ optimizer.step()
+
+ end_time = time.time()
+ train_time = end_time - start_time
+
+ model.eval()
+ with torch.no_grad():
+ total_epoch_acc = 0
+ start_time = time.time()
+ for index, (image, targets) in tqdm(
+ enumerate(test_loader), total=len(test_loader)
+ ):
+ image = image.to(device)
+ targets = targets.to(device)
+
+ outputs = model(image)
+ pred = softmax(outputs, dim=1)
+ total_epoch_acc += (pred.argmax(1) == targets).sum().item()
+
+ end_time = time.time()
+ test_time = end_time - start_time
+
+ avg_epoch_acc = total_epoch_acc / len(test_mnist_dataset)
+ print(
+ f"Epoch [{epoch + 1}/{num_epochs}],",
+ f"Train Loss: {total_epoch_loss:.10f},",
+ f"Used Time: {train_time * 1000:.3f}ms,",
+ f"Test Acc: {avg_epoch_acc * 100:.3f}%,",
+ f"Used Time: {test_time * 1000:.3f}ms",
+ )
+ train_loss.append(total_epoch_loss)
+ test_acc.append(avg_epoch_acc * 100)
+ return train_loss, test_acc
\ No newline at end of file
diff --git a/Lab3/网络优化实验.ipynb b/Lab3/网络优化实验.ipynb
new file mode 100644
index 0000000..aa3af0a
--- /dev/null
+++ b/Lab3/网络优化实验.ipynb
@@ -0,0 +1,329 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "6b54d34a-5e54-49d5-a13b-bf704cb900a4",
+ "metadata": {},
+ "source": [
+ "

\n",
+ "\n",
+ "本科生《深度学习》课程
实验报告
\n",
+ "\n",
+ "
课程名称:深度学习
\n",
+ "
实验题目:网络优化实验
\n",
+ "
学号:21281280
\n",
+ "
姓名:柯劲帆
\n",
+ "
班级:物联网2101班
\n",
+ "
指导老师:张淳杰
\n",
+ "
报告日期:2023年11月10日
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0fad7a29-2cf7-423f-b9eb-b3a8096d8148",
+ "metadata": {},
+ "source": [
+ "实验环境:\n",
+ "- OS:Ubuntu 22.04 (Kernel: 6.2.0-34-generic)\n",
+ "- CPU:12th Gen Intel(R) Core(TM) i7-12700H\n",
+ "- GPU:NVIDIA GeForce RTX 3070 Ti Laptop\n",
+ "- cuda: 12.3\n",
+ "- conda: miniconda 23.9.0\n",
+ "- python:3.10.13\n",
+ "- pytorch:2.1.0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "415d3060-464f-40c5-8af5-598e3ad6018d",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import torch\n",
+ "from torch.nn.functional import *\n",
+ "from torch.utils.data import Dataset, DataLoader\n",
+ "from torch import nn\n",
+ "from torchvision import datasets, transforms\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "026bc7da-f207-4713-acf6-10dc472237ad",
+ "metadata": {},
+ "source": [
+ "引用必要的库。"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "8cd38046-6b87-4b05-82b8-ad5576baf100",
+ "metadata": {},
+ "source": [
+ "# 任务一\n",
+ "\n",
+ "**在多分类任务实验中分别手动实现和用torch.nn实现dropout**\n",
+ "\n",
+ "- 探究不同丢弃率对实验结果的影响(可用loss曲线进行展示)\r\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "b139b54d-89ce-4b05-93fc-de5fad7e2906",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def train_MNIST_CLS(model, optimizer, num_epochs):\n",
+ " batch_size = 512\n",
+ " num_classes = 10\n",
+ " device = \"cuda:0\" if torch.cuda.is_available() else \"cpu\"\n",
+ "\n",
+ " transform = transforms.Compose(\n",
+ " [\n",
+ " transforms.ToTensor(),\n",
+ " transforms.Normalize((0.5,), (0.5,)),\n",
+ " ]\n",
+ " )\n",
+ " train_mnist_dataset = datasets.MNIST(root=\"./dataset\", train=True, transform=transform, download=True)\n",
+ " test_mnist_dataset = datasets.MNIST(root=\"./dataset\", train=False, transform=transform, download=True)\n",
+ " train_loader = DataLoader(dataset=train_mnist_dataset, batch_size=batch_size, shuffle=True, num_workers=14, pin_memory=True)\n",
+ " test_loader = DataLoader(dataset=test_mnist_dataset, batch_size=batch_size, shuffle=True, num_workers=14, pin_memory=True)\n",
+ "\n",
+ " model = model.to(device)\n",
+ " criterion = nn.CrossEntropyLoss()\n",
+ " \n",
+ " train_loss = list()\n",
+ " test_acc = list()\n",
+ " for epoch in range(num_epochs):\n",
+ " model.train()\n",
+ " total_epoch_loss = 0\n",
+ " for images, targets in train_loader:\n",
+ " optimizer.zero_grad()\n",
+ "\n",
+ " images = images.to(device)\n",
+ " targets = targets.to(device)\n",
+ " one_hot_targets = one_hot(targets, num_classes=num_classes).to(dtype=torch.float)\n",
+ "\n",
+ " outputs = model(images)\n",
+ " loss = criterion(outputs, one_hot_targets)\n",
+ " total_epoch_loss += loss.item()\n",
+ "\n",
+ " loss.backward()\n",
+ " optimizer.step()\n",
+ "\n",
+ " model.eval()\n",
+ " with torch.no_grad():\n",
+ " total_epoch_acc = 0\n",
+ " for image, targets in test_loader:\n",
+ " image = image.to(device)\n",
+ " targets = targets.to(device)\n",
+ " \n",
+ " outputs = model(image)\n",
+ " pred = softmax(outputs, dim=1)\n",
+ " total_epoch_acc += (pred.argmax(1) == targets).sum().item()\n",
+ " \n",
+ " avg_epoch_acc = total_epoch_acc / len(test_mnist_dataset)\n",
+ " if epoch % 5 == 0:\n",
+ " print(\n",
+ " f\"Epoch [{epoch + 1}/{num_epochs}],\",\n",
+ " f\"Train Loss: {total_epoch_loss:.10f},\",\n",
+ " f\"Test Acc: {avg_epoch_acc * 100:.3f}%\",\n",
+ " )\n",
+ " train_loss.append(total_epoch_loss)\n",
+ " test_acc.append(avg_epoch_acc * 100)\n",
+ " return train_loss, test_acc"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5ff4b323-7f04-40b9-a164-07858ae02a12",
+ "metadata": {},
+ "source": [
+ "首先编写训练模型的框架函数代码。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "d208439d-b749-4619-b991-4310bcbbed5b",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "输入:\n",
+ "tensor([[ 1., 2., 3., 4., 5.],\n",
+ " [ 6., 7., 8., 9., 10.]])\n",
+ "My_Dropout输出:\n",
+ "tensor([[ 2., 0., 0., 0., 0.],\n",
+ " [ 0., 0., 16., 0., 20.]])\n",
+ "nn.Dropout输出:\n",
+ "tensor([[ 2., 0., 0., 0., 10.],\n",
+ " [ 0., 14., 16., 0., 0.]])\n"
+ ]
+ }
+ ],
+ "source": [
+ "class My_Dropout(nn.Module):\n",
+ " def __init__(self, p, **kwargs):\n",
+ " super().__init__()\n",
+ " self.p = p\n",
+ " self.mask = None\n",
+ "\n",
+ " def forward(self, x:torch.Tensor):\n",
+ " if self.training:\n",
+ " self.mask = (torch.rand(x.shape) > self.p).to(dtype=torch.float32, device=x.device)\n",
+ " return x * self.mask / (1 - self.p)\n",
+ " else:\n",
+ " return x\n",
+ "\n",
+ "\n",
+ "# 测试\n",
+ "my_dropout = My_Dropout(p=0.5)\n",
+ "nn_dropout = nn.Dropout(p=0.5)\n",
+ "x = torch.tensor([[1.0, 2.0, 3.0, 4.0, 5.0],\n",
+ " [6.0, 7.0, 8.0, 9.0, 10.0]])\n",
+ "print(f\"输入:\\n{x}\")\n",
+ "output_my_dropout = my_dropout(x)\n",
+ "output_nn_dropout = nn_dropout(x)\n",
+ "print(f\"My_Dropout输出:\\n{output_my_dropout}\")\n",
+ "print(f\"nn.Dropout输出:\\n{output_nn_dropout}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "00a034cd-ec36-42d3-b678-399d4fd5d4ab",
+ "metadata": {},
+ "source": [
+ "手动实现Dropout。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "ba0b10ce-f2e8-4a3a-b1fe-7ab5fe2a2b71",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "dropout_rate=0.0\n",
+ "Epoch [1/21], Train Loss: 89.2402284741, Test Acc: 84.630%\n",
+ "Epoch [6/21], Train Loss: 28.7833277285, Test Acc: 93.350%\n",
+ "Epoch [11/21], Train Loss: 20.3238681629, Test Acc: 94.430%\n",
+ "Epoch [16/21], Train Loss: 15.3997051790, Test Acc: 96.080%\n",
+ "Epoch [21/21], Train Loss: 12.4143246412, Test Acc: 96.460%\n",
+ "dropout_rate=0.25\n",
+ "Epoch [1/21], Train Loss: 89.8318388164, Test Acc: 86.660%\n",
+ "Epoch [6/21], Train Loss: 29.1959916204, Test Acc: 93.430%\n",
+ "Epoch [11/21], Train Loss: 20.5440069586, Test Acc: 92.780%\n",
+ "Epoch [16/21], Train Loss: 16.1447852328, Test Acc: 95.850%\n",
+ "Epoch [21/21], Train Loss: 13.2362614796, Test Acc: 96.780%\n",
+ "dropout_rate=0.5\n",
+ "Epoch [1/21], Train Loss: 94.0871657729, Test Acc: 85.320%\n",
+ "Epoch [6/21], Train Loss: 30.7469169945, Test Acc: 93.850%\n",
+ "Epoch [11/21], Train Loss: 21.7881924808, Test Acc: 95.350%\n",
+ "Epoch [16/21], Train Loss: 17.3726558685, Test Acc: 96.250%\n",
+ "Epoch [21/21], Train Loss: 14.7027723491, Test Acc: 96.710%\n",
+ "dropout_rate=0.75\n",
+ "Epoch [1/21], Train Loss: 101.0703997612, Test Acc: 88.690%\n",
+ "Epoch [6/21], Train Loss: 34.2555685043, Test Acc: 93.240%\n",
+ "Epoch [11/21], Train Loss: 25.5107577592, Test Acc: 95.110%\n",
+ "Epoch [16/21], Train Loss: 21.3157409132, Test Acc: 96.160%\n",
+ "Epoch [21/21], Train Loss: 18.3269369006, Test Acc: 96.590%\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "class MNIST_CLS_Model(nn.Module):\n",
+ " def __init__(self, num_classes, dropout_rate=0.5):\n",
+ " super().__init__()\n",
+ " self.flatten = nn.Flatten()\n",
+ " self.fc1 = nn.Linear(in_features=28 * 28, out_features=1024)\n",
+ " self.fc2 = nn.Linear(in_features=1024, out_features=num_classes)\n",
+ " self.dropout = nn.Dropout(p=dropout_rate)\n",
+ "\n",
+ " def forward(self, x: torch.Tensor):\n",
+ " x = self.flatten(x)\n",
+ " x = torch.relu(self.fc1(x))\n",
+ " x = self.dropout(x)\n",
+ " x = self.fc2(x)\n",
+ " return x\n",
+ "\n",
+ "\n",
+ "learning_rate = 7e-2\n",
+ "num_epochs = 21\n",
+ "plt.figure(figsize=(7, 3.5))\n",
+ "color = [\"blue\", \"green\", \"orange\", \"purple\"]\n",
+ "for i in np.arange(4):\n",
+ " dropout_rate = i / 4\n",
+ " model = MNIST_CLS_Model(num_classes=10, dropout_rate=dropout_rate)\n",
+ " optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)\n",
+ " print(f\"dropout_rate={dropout_rate}\")\n",
+ " train_loss, test_acc = train_MNIST_CLS(model, optimizer, num_epochs=num_epochs)\n",
+ " plt.subplot(1, 2, 1)\n",
+ " plt.plot(range(1, num_epochs + 1), train_loss, label=f'dropout_rate={dropout_rate}', color=color[i])\n",
+ " plt.subplot(1, 2, 2)\n",
+ " plt.plot(range(1, num_epochs + 1), test_acc, label=f'dropout_rate={dropout_rate}', color=color[i])\n",
+ "plt.subplot(1, 2, 1)\n",
+ "plt.xlabel('Epoch')\n",
+ "plt.ylabel('Train Loss')\n",
+ "plt.legend()\n",
+ "plt.subplot(1, 2, 2)\n",
+ "plt.xlabel('Epoch')\n",
+ "plt.ylabel('Test Accuracy')\n",
+ "plt.legend()\n",
+ "plt.tight_layout()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a9f22410-1c48-46e2-a873-0b91ef824032",
+ "metadata": {},
+ "source": [
+ "可以看出,丢弃率越高,loss就会越高,因为丢弃部分神经元会导致网络在训练时失去了一些有用的信息,因为每个神经元都对模型的表达能力有贡献。如果丢弃率很高,网络可能无法充分利用所有的特征,导致信息的损失。\n",
+ "\n",
+ "但是,丢弃率越高,测试集的正确率提升相对更稳定。因为高丢弃率使得模型更多地依赖于共享的特征而不是过分依赖于个别神经元,有助于防止过拟合。"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python [conda env:DeepLearningLab]",
+ "language": "python",
+ "name": "conda-env-DeepLearningLab-py"
+ },
+ "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.10.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}