Skip to content

Commit

Permalink
remove testing code
Browse files Browse the repository at this point in the history
  • Loading branch information
m0saan committed Jul 4, 2023
1 parent 839e66d commit eb7257f
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 215 deletions.
3 changes: 3 additions & 0 deletions minima/_modidx.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
'minima.autograd.Tensor._array_from_numpy': ( 'autograd.html#tensor._array_from_numpy',
'minima/autograd.py'),
'minima.autograd.Tensor._init': ('autograd.html#tensor._init', 'minima/autograd.py'),
'minima.autograd.Tensor.accuracy': ('autograd.html#tensor.accuracy', 'minima/autograd.py'),
'minima.autograd.Tensor.argmax': ('autograd.html#tensor.argmax', 'minima/autograd.py'),
'minima.autograd.Tensor.backward': ('autograd.html#tensor.backward', 'minima/autograd.py'),
'minima.autograd.Tensor.broadcast_to': ('autograd.html#tensor.broadcast_to', 'minima/autograd.py'),
'minima.autograd.Tensor.create_detached_tensor': ( 'autograd.html#tensor.create_detached_tensor',
Expand All @@ -48,6 +50,7 @@
'minima.autograd.Tensor.device': ('autograd.html#tensor.device', 'minima/autograd.py'),
'minima.autograd.Tensor.dtype': ('autograd.html#tensor.dtype', 'minima/autograd.py'),
'minima.autograd.Tensor.exp': ('autograd.html#tensor.exp', 'minima/autograd.py'),
'minima.autograd.Tensor.item': ('autograd.html#tensor.item', 'minima/autograd.py'),
'minima.autograd.Tensor.make_from_op': ('autograd.html#tensor.make_from_op', 'minima/autograd.py'),
'minima.autograd.Tensor.matmul': ('autograd.html#tensor.matmul', 'minima/autograd.py'),
'minima.autograd.Tensor.numpy': ('autograd.html#tensor.numpy', 'minima/autograd.py'),
Expand Down
6 changes: 3 additions & 3 deletions minima/optim.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ def _reg_step(self, p):
if self.wd != 0:
p.data *= (1 - self.lr * self.wd)

# %% ../nbs/04_optim.ipynb 14
# %% ../nbs/04_optim.ipynb 10
class AdaGrad(Optimizer):
"""
Implements AdaGrad optimization algorithm.
Expand Down Expand Up @@ -190,7 +190,7 @@ def _reg_step(self, p):
if self.wd != 0:
p.data *= (1 - self.lr * self.wd)

# %% ../nbs/04_optim.ipynb 17
# %% ../nbs/04_optim.ipynb 13
class RMSProp(Optimizer):
"""
Implements RMSProp optimization algorithm.
Expand Down Expand Up @@ -257,7 +257,7 @@ def _reg_step(self, p):
if self.wd != 0:
p.data *= (1 - self.lr * self.wd)

# %% ../nbs/04_optim.ipynb 20
# %% ../nbs/04_optim.ipynb 16
class Adam(Optimizer):
"""
Implements the Adam optimization algorithm.
Expand Down
212 changes: 0 additions & 212 deletions nbs/04_optim.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -225,218 +225,6 @@
" p.data *= (1 - self.lr * self.wd)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2b37fb1f-2e60-4111-a922-48d565ce5d57",
"metadata": {},
"outputs": [],
"source": [
"import minima as mi\n",
"import numpy as np\n",
"import minima.nn as nn\n",
"from minima.data import *\n",
"X_tr = mi.Tensor(np.random.randn(50, 30))\n",
"y_tr = mi.Tensor(np.random.choice([0, 1], size=(50,)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0bfb16e2-613a-47de-acc7-635daad79112",
"metadata": {},
"outputs": [],
"source": [
"class NeuralNetwork(nn.Module):\n",
" def __init__(self, input_shape, output_shape):\n",
" super(NeuralNetwork, self).__init__()\n",
" self.dense1 = nn.Linear(in_features=input_shape, out_features=24)\n",
" self.dense2 = nn.Linear(24, 24)\n",
" self.dense3 = nn.Linear(24, 24)\n",
" self.dense4 = nn.Linear(24, output_shape)\n",
" self.relu = nn.ReLU()\n",
" self.softmax = nn.Softmax()\n",
"\n",
" def forward(self, x):\n",
" x = self.relu(self.dense1(x))\n",
" x = self.relu(self.dense2(x))\n",
" x = self.relu(self.dense3(x))\n",
" # print(self.dense4(x))\n",
" x = self.dense4(x)\n",
" return x\n",
"\n",
"# Create the neural network\n",
"input_shape = 30 # Replace with the actual input shape\n",
"output_shape = 2 # Replace with the actual output shape\n",
"\n",
"network = NeuralNetwork(input_shape, output_shape)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "119272a3-1e45-497c-8740-6610421106ac",
"metadata": {},
"outputs": [],
"source": [
"# Custom Dataset class\n",
"class MyDataset(Dataset):\n",
" def __init__(self, X, y):\n",
" self.X = mi.Tensor(X)\n",
" self.y = mi.Tensor(y)\n",
" \n",
" def __len__(self):\n",
" return len(self.X)\n",
" \n",
" def __getitem__(self, index):\n",
" return self.X[index], self.y[index]\n",
"\n",
"tr_ds = MyDataset(X_tr, y_tr)\n",
"# val_ds = MyDataset(X_val, y_val)\n",
"\n",
"# Creating the data loader\n",
"batch_size = 2\n",
"tr_dl = DataLoader(tr_ds, batch_size=batch_size, shuffle=True)\n",
"# val_dl = DataLoader(val_ds, batch_size=64, shuffle=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d4462fa7-416c-4395-8819-ef16a8a40c2f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"epoch 01/70 - loss: tensor(0.700197813232389)\n",
"epoch 02/70 - loss: tensor(0.5702160893064718)\n",
"epoch 03/70 - loss: tensor(0.4781771834460099)\n",
"epoch 04/70 - loss: tensor(0.4149589211539916)\n",
"epoch 05/70 - loss: tensor(0.3613364590848075)\n",
"epoch 06/70 - loss: tensor(0.31758262950435817)\n",
"epoch 07/70 - loss: tensor(0.2851593176987579)\n",
"epoch 08/70 - loss: tensor(0.2565602088164746)\n",
"epoch 09/70 - loss: tensor(0.2279837135720911)\n",
"epoch 10/70 - loss: tensor(0.20391791331594378)\n",
"epoch 11/70 - loss: tensor(0.18362525597862636)\n",
"epoch 12/70 - loss: tensor(0.16534999289163232)\n",
"epoch 13/70 - loss: tensor(0.14858874388316)\n",
"epoch 14/70 - loss: tensor(0.1339143012039098)\n",
"epoch 15/70 - loss: tensor(0.12085622166144133)\n",
"epoch 16/70 - loss: tensor(0.10873860546901519)\n",
"epoch 17/70 - loss: tensor(0.09773227653690045)\n",
"epoch 18/70 - loss: tensor(0.08971416063317789)\n",
"epoch 19/70 - loss: tensor(0.08155562754140087)\n",
"epoch 20/70 - loss: tensor(0.0747815835856944)\n",
"epoch 21/70 - loss: tensor(0.06858304226225533)\n",
"epoch 22/70 - loss: tensor(0.06288204682980501)\n",
"epoch 23/70 - loss: tensor(0.05829591716737667)\n",
"epoch 24/70 - loss: tensor(0.05399314703265454)\n",
"epoch 25/70 - loss: tensor(0.049791165415676526)\n",
"epoch 26/70 - loss: tensor(0.046024091742262956)\n",
"epoch 27/70 - loss: tensor(0.04295130843838544)\n",
"epoch 28/70 - loss: tensor(0.0399407705164708)\n",
"epoch 29/70 - loss: tensor(0.0373247299843922)\n",
"epoch 30/70 - loss: tensor(0.03501323246788972)\n",
"epoch 31/70 - loss: tensor(0.0328607313828347)\n",
"epoch 32/70 - loss: tensor(0.030879282021421792)\n",
"epoch 33/70 - loss: tensor(0.02916361996519098)\n",
"epoch 34/70 - loss: tensor(0.027423565808359446)\n",
"epoch 35/70 - loss: tensor(0.025977832254459442)\n",
"epoch 36/70 - loss: tensor(0.02454036343446012)\n",
"epoch 37/70 - loss: tensor(0.023137409968139046)\n",
"epoch 38/70 - loss: tensor(0.021861100351858176)\n",
"epoch 39/70 - loss: tensor(0.020676353706328126)\n",
"epoch 40/70 - loss: tensor(0.019626283105659493)\n",
"epoch 41/70 - loss: tensor(0.018673922706237276)\n",
"epoch 42/70 - loss: tensor(0.01776886982011848)\n",
"epoch 43/70 - loss: tensor(0.016982786616005132)\n",
"epoch 44/70 - loss: tensor(0.016164461298108446)\n",
"epoch 45/70 - loss: tensor(0.01551738981178671)\n",
"epoch 46/70 - loss: tensor(0.01486785999059256)\n",
"epoch 47/70 - loss: tensor(0.014339974251633745)\n",
"epoch 48/70 - loss: tensor(0.013829261180384718)\n",
"epoch 49/70 - loss: tensor(0.013317031889678947)\n",
"epoch 50/70 - loss: tensor(0.012844785989446645)\n",
"epoch 51/70 - loss: tensor(0.012391422401424936)\n",
"epoch 52/70 - loss: tensor(0.01198617749058796)\n",
"epoch 53/70 - loss: tensor(0.011616607767396472)\n",
"epoch 54/70 - loss: tensor(0.011209712217400192)\n",
"epoch 55/70 - loss: tensor(0.010845441696976153)\n",
"epoch 56/70 - loss: tensor(0.01047788269431206)\n",
"epoch 57/70 - loss: tensor(0.010131544012652505)\n",
"epoch 58/70 - loss: tensor(0.009797028713734628)\n",
"epoch 59/70 - loss: tensor(0.00948803621173946)\n",
"epoch 60/70 - loss: tensor(0.009194543314100335)\n",
"epoch 61/70 - loss: tensor(0.008938752358668341)\n",
"epoch 62/70 - loss: tensor(0.008665179954062152)\n",
"epoch 63/70 - loss: tensor(0.008405026816617003)\n",
"epoch 64/70 - loss: tensor(0.008164672795945526)\n",
"epoch 65/70 - loss: tensor(0.007954106367913907)\n",
"epoch 66/70 - loss: tensor(0.007731059352028744)\n",
"epoch 67/70 - loss: tensor(0.007527395284366483)\n",
"epoch 68/70 - loss: tensor(0.007325897390697511)\n",
"epoch 69/70 - loss: tensor(0.007133536046280336)\n",
"epoch 70/70 - loss: tensor(0.006965116523253894)\n"
]
}
],
"source": [
"\n",
"network = NeuralNetwork(input_shape, output_shape)\n",
"opt = SGD(network.parameters(), lr=0.01)\n",
"bce = nn.CrossEntropyLoss()\n",
"\n",
"network.train()\n",
"num_epochs = 70\n",
"\n",
"for epoch in range(num_epochs):\n",
" train_losses = []\n",
" val_losses = []\n",
" train_accs = []\n",
" val_accs = []\n",
" \n",
" # Training phase\n",
" network.train()\n",
" for xb, yb in tr_dl:\n",
" preds = network(xb)\n",
" loss = bce(preds, yb)\n",
" # import pdb; pdb.set_trace()\n",
" loss.backward()\n",
" opt.step()\n",
" opt.zero_grad()\n",
" train_losses.append(loss)\n",
" \n",
" # Calculate accuracy\n",
" # _, predicted_labels = torch.max(preds, dim=1)\n",
" # accuracy = (predicted_labels == yb).sum().item() / yb.size(0)\n",
" # train_accs.append(accuracy)\n",
" \n",
" # # Validation phase\n",
" # network.eval()\n",
" # with torch.no_grad():\n",
" # for xb_val, yb_val in val_dl:\n",
" # preds_val = network(xb_val)\n",
" # val_loss = bce(preds_val, yb_val)\n",
" # val_losses.append(val_loss.item())\n",
" \n",
" # # Calculate accuracy\n",
" # _, predicted_labels_val = torch.max(preds_val, dim=1)\n",
" # accuracy_val = (predicted_labels_val == yb_val).sum().item() / yb_val.size(0)\n",
" # val_accs.append(accuracy_val)\n",
" \n",
" avg_train_loss = sum(train_losses) / len(train_losses)\n",
" # avg_val_loss = sum(val_losses) / len(val_losses)\n",
" # avg_train_acc = sum(train_accs) / len(train_accs)\n",
" # avg_val_acc = sum(val_accs) / len(val_accs)\n",
" \n",
" # Print epoch-wise loss and accuracy\n",
" # print(f\"epoch {epoch + 1:02d}/{num_epochs:02d} - loss: {avg_train_loss:.4f} - acc: {avg_train_acc:.4f} - val_loss: {avg_val_loss:.4f} - val_acc: {avg_val_acc:.4f}\")\n",
" print(f\"epoch {epoch + 1:02d}/{num_epochs:02d} - loss: {avg_train_loss}\")\n"
]
},
{
"cell_type": "markdown",
"id": "e8c3ebf3-74ef-48d0-8ade-3bb981391d0b",
Expand Down

0 comments on commit eb7257f

Please sign in to comment.