ved1beta
commited on
Commit
·
e1d27d4
1
Parent(s):
fd35fa1
ho ja bhai
Browse files- main@@.ipynb +397 -39
main@@.ipynb
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
"cells": [
|
3 |
{
|
4 |
"cell_type": "code",
|
5 |
-
"execution_count":
|
6 |
"id": "90418142-03d2-4803-b187-f112f426a008",
|
7 |
"metadata": {},
|
8 |
"outputs": [],
|
@@ -17,7 +17,7 @@
|
|
17 |
},
|
18 |
{
|
19 |
"cell_type": "code",
|
20 |
-
"execution_count":
|
21 |
"id": "03498927-394e-4438-98f3-27d71e3a8920",
|
22 |
"metadata": {},
|
23 |
"outputs": [
|
@@ -35,7 +35,7 @@
|
|
35 |
},
|
36 |
{
|
37 |
"cell_type": "code",
|
38 |
-
"execution_count":
|
39 |
"id": "65ffc9ef-eeb4-4318-b648-d257d3bb4b34",
|
40 |
"metadata": {},
|
41 |
"outputs": [],
|
@@ -45,7 +45,7 @@
|
|
45 |
},
|
46 |
{
|
47 |
"cell_type": "code",
|
48 |
-
"execution_count":
|
49 |
"id": "670c7b49-01f3-446a-bd60-b1e1710a30a6",
|
50 |
"metadata": {},
|
51 |
"outputs": [
|
@@ -5581,7 +5581,7 @@
|
|
5581 |
"4 0 "
|
5582 |
]
|
5583 |
},
|
5584 |
-
"execution_count":
|
5585 |
"metadata": {},
|
5586 |
"output_type": "execute_result"
|
5587 |
}
|
@@ -5592,7 +5592,7 @@
|
|
5592 |
},
|
5593 |
{
|
5594 |
"cell_type": "code",
|
5595 |
-
"execution_count":
|
5596 |
"id": "b6de1f03-d0bd-48d2-96f6-cfb5bdca6819",
|
5597 |
"metadata": {},
|
5598 |
"outputs": [],
|
@@ -5611,7 +5611,7 @@
|
|
5611 |
},
|
5612 |
{
|
5613 |
"cell_type": "code",
|
5614 |
-
"execution_count":
|
5615 |
"id": "5aa2c7da-e7e6-426d-9867-86937a76892c",
|
5616 |
"metadata": {},
|
5617 |
"outputs": [],
|
@@ -5622,19 +5622,20 @@
|
|
5622 |
},
|
5623 |
{
|
5624 |
"cell_type": "code",
|
5625 |
-
"execution_count":
|
5626 |
"id": "2fa2a087-fec8-4a7a-8c94-95520e87e83c",
|
5627 |
"metadata": {},
|
5628 |
"outputs": [],
|
5629 |
"source": [
|
5630 |
"data_dev = data[0:1000].T\n",
|
5631 |
"X_dev = data_dev[1:n]\n",
|
5632 |
-
"y_dev = data_dev[0]"
|
|
|
5633 |
]
|
5634 |
},
|
5635 |
{
|
5636 |
"cell_type": "code",
|
5637 |
-
"execution_count":
|
5638 |
"id": "b00b5e87-6762-4d9d-9089-268ab82cdfee",
|
5639 |
"metadata": {},
|
5640 |
"outputs": [],
|
@@ -5648,7 +5649,7 @@
|
|
5648 |
},
|
5649 |
{
|
5650 |
"cell_type": "code",
|
5651 |
-
"execution_count":
|
5652 |
"id": "3dfbc08b-676c-424f-9620-5a15716a291a",
|
5653 |
"metadata": {},
|
5654 |
"outputs": [],
|
@@ -5663,7 +5664,7 @@
|
|
5663 |
},
|
5664 |
{
|
5665 |
"cell_type": "code",
|
5666 |
-
"execution_count":
|
5667 |
"id": "cddd98b0-9287-4398-a0e1-dc985efccbf2",
|
5668 |
"metadata": {},
|
5669 |
"outputs": [],
|
@@ -5672,13 +5673,14 @@
|
|
5672 |
" return np.maximum(0, Z)\n",
|
5673 |
" \n",
|
5674 |
"def softmax(Z):\n",
|
5675 |
-
"
|
|
|
5676 |
" \n",
|
5677 |
"def forward_prop(W1, b1 , W2, b2, X):\n",
|
5678 |
" Z1 = W1.dot(X) + b1\n",
|
5679 |
" A1 = ReLu(Z1)\n",
|
5680 |
" Z2 = W2.dot(A1) + b2 \n",
|
5681 |
-
" A2 = softmax(
|
5682 |
" \n",
|
5683 |
" return Z1 , Z2 , A1 , A2\n",
|
5684 |
" "
|
@@ -5686,17 +5688,17 @@
|
|
5686 |
},
|
5687 |
{
|
5688 |
"cell_type": "code",
|
5689 |
-
"execution_count":
|
5690 |
"id": "90c76872-2a23-4756-8d04-dfecce8fbcd0",
|
5691 |
"metadata": {},
|
5692 |
"outputs": [],
|
5693 |
"source": [
|
5694 |
"def one_hot(Y):\n",
|
5695 |
-
" one_hot_Y = np.
|
5696 |
" one_hot_Y[np.arange(Y.size) , Y] = 1\n",
|
5697 |
" return one_hot_Y.T\n",
|
5698 |
"\n",
|
5699 |
-
"def deriv_ReLU():\n",
|
5700 |
" return Z > 0\n",
|
5701 |
" \n",
|
5702 |
"def back_prop(Z1 , Z2 , A1 , A2, W2 ,X, Y ):\n",
|
@@ -5706,29 +5708,30 @@
|
|
5706 |
" dW2 = 1/m * dZ2.dot(A1.T)\n",
|
5707 |
" db2 = 1/m * np.sum(dZ2)\n",
|
5708 |
" dZ1 = W2.T.dot(dZ2) *deriv_ReLU(Z1)\n",
|
5709 |
-
" dW1 = 1/m *
|
5710 |
" db1 = 1/m * np.sum(dZ1)\n",
|
5711 |
" return dW2 ,dW1, db1, db2"
|
5712 |
]
|
5713 |
},
|
5714 |
{
|
5715 |
"cell_type": "code",
|
5716 |
-
"execution_count":
|
5717 |
"id": "2735f3d3-df5a-465f-aa59-a247ecb27343",
|
5718 |
"metadata": {},
|
5719 |
"outputs": [],
|
5720 |
"source": [
|
5721 |
-
"def update_params(W1, b1, W2
|
5722 |
-
"
|
|
|
5723 |
" b1 = b1 - alpha * db1\n",
|
5724 |
-
" W2 =
|
5725 |
-
" b2 =
|
5726 |
-
" return W1
|
5727 |
]
|
5728 |
},
|
5729 |
{
|
5730 |
"cell_type": "code",
|
5731 |
-
"execution_count":
|
5732 |
"id": "9b2e810f-9911-445b-944b-6a7488647b80",
|
5733 |
"metadata": {},
|
5734 |
"outputs": [],
|
@@ -5757,22 +5760,164 @@
|
|
5757 |
},
|
5758 |
{
|
5759 |
"cell_type": "code",
|
5760 |
-
"execution_count":
|
5761 |
"id": "543f85cc-6171-4d5d-80c4-3206e44e1714",
|
5762 |
"metadata": {},
|
5763 |
"outputs": [
|
5764 |
{
|
5765 |
-
"
|
5766 |
-
"
|
5767 |
-
"
|
5768 |
-
|
5769 |
-
"
|
5770 |
-
"
|
5771 |
-
"
|
5772 |
-
"
|
5773 |
-
"
|
5774 |
-
"
|
5775 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5776 |
]
|
5777 |
}
|
5778 |
],
|
@@ -5782,16 +5927,229 @@
|
|
5782 |
},
|
5783 |
{
|
5784 |
"cell_type": "code",
|
5785 |
-
"execution_count":
|
5786 |
"id": "4a6a9819-bf7f-443b-b654-8b4a94c07d4f",
|
5787 |
"metadata": {},
|
5788 |
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5789 |
"source": []
|
5790 |
},
|
5791 |
{
|
5792 |
"cell_type": "code",
|
5793 |
"execution_count": null,
|
5794 |
-
"id": "
|
5795 |
"metadata": {},
|
5796 |
"outputs": [],
|
5797 |
"source": []
|
|
|
2 |
"cells": [
|
3 |
{
|
4 |
"cell_type": "code",
|
5 |
+
"execution_count": 4,
|
6 |
"id": "90418142-03d2-4803-b187-f112f426a008",
|
7 |
"metadata": {},
|
8 |
"outputs": [],
|
|
|
17 |
},
|
18 |
{
|
19 |
"cell_type": "code",
|
20 |
+
"execution_count": 5,
|
21 |
"id": "03498927-394e-4438-98f3-27d71e3a8920",
|
22 |
"metadata": {},
|
23 |
"outputs": [
|
|
|
35 |
},
|
36 |
{
|
37 |
"cell_type": "code",
|
38 |
+
"execution_count": 6,
|
39 |
"id": "65ffc9ef-eeb4-4318-b648-d257d3bb4b34",
|
40 |
"metadata": {},
|
41 |
"outputs": [],
|
|
|
45 |
},
|
46 |
{
|
47 |
"cell_type": "code",
|
48 |
+
"execution_count": 7,
|
49 |
"id": "670c7b49-01f3-446a-bd60-b1e1710a30a6",
|
50 |
"metadata": {},
|
51 |
"outputs": [
|
|
|
5581 |
"4 0 "
|
5582 |
]
|
5583 |
},
|
5584 |
+
"execution_count": 7,
|
5585 |
"metadata": {},
|
5586 |
"output_type": "execute_result"
|
5587 |
}
|
|
|
5592 |
},
|
5593 |
{
|
5594 |
"cell_type": "code",
|
5595 |
+
"execution_count": 8,
|
5596 |
"id": "b6de1f03-d0bd-48d2-96f6-cfb5bdca6819",
|
5597 |
"metadata": {},
|
5598 |
"outputs": [],
|
|
|
5611 |
},
|
5612 |
{
|
5613 |
"cell_type": "code",
|
5614 |
+
"execution_count": 9,
|
5615 |
"id": "5aa2c7da-e7e6-426d-9867-86937a76892c",
|
5616 |
"metadata": {},
|
5617 |
"outputs": [],
|
|
|
5622 |
},
|
5623 |
{
|
5624 |
"cell_type": "code",
|
5625 |
+
"execution_count": 10,
|
5626 |
"id": "2fa2a087-fec8-4a7a-8c94-95520e87e83c",
|
5627 |
"metadata": {},
|
5628 |
"outputs": [],
|
5629 |
"source": [
|
5630 |
"data_dev = data[0:1000].T\n",
|
5631 |
"X_dev = data_dev[1:n]\n",
|
5632 |
+
"y_dev = data_dev[0]\n",
|
5633 |
+
"X_dev = X_dev / 255."
|
5634 |
]
|
5635 |
},
|
5636 |
{
|
5637 |
"cell_type": "code",
|
5638 |
+
"execution_count": 11,
|
5639 |
"id": "b00b5e87-6762-4d9d-9089-268ab82cdfee",
|
5640 |
"metadata": {},
|
5641 |
"outputs": [],
|
|
|
5649 |
},
|
5650 |
{
|
5651 |
"cell_type": "code",
|
5652 |
+
"execution_count": 12,
|
5653 |
"id": "3dfbc08b-676c-424f-9620-5a15716a291a",
|
5654 |
"metadata": {},
|
5655 |
"outputs": [],
|
|
|
5664 |
},
|
5665 |
{
|
5666 |
"cell_type": "code",
|
5667 |
+
"execution_count": 20,
|
5668 |
"id": "cddd98b0-9287-4398-a0e1-dc985efccbf2",
|
5669 |
"metadata": {},
|
5670 |
"outputs": [],
|
|
|
5673 |
" return np.maximum(0, Z)\n",
|
5674 |
" \n",
|
5675 |
"def softmax(Z):\n",
|
5676 |
+
" exp_Z = np.exp(Z - np.max(Z, axis=0, keepdims=True))\n",
|
5677 |
+
" return exp_Z / np.sum(exp_Z, axis=0, keepdims=True)\n",
|
5678 |
" \n",
|
5679 |
"def forward_prop(W1, b1 , W2, b2, X):\n",
|
5680 |
" Z1 = W1.dot(X) + b1\n",
|
5681 |
" A1 = ReLu(Z1)\n",
|
5682 |
" Z2 = W2.dot(A1) + b2 \n",
|
5683 |
+
" A2 = softmax(Z2)\n",
|
5684 |
" \n",
|
5685 |
" return Z1 , Z2 , A1 , A2\n",
|
5686 |
" "
|
|
|
5688 |
},
|
5689 |
{
|
5690 |
"cell_type": "code",
|
5691 |
+
"execution_count": 21,
|
5692 |
"id": "90c76872-2a23-4756-8d04-dfecce8fbcd0",
|
5693 |
"metadata": {},
|
5694 |
"outputs": [],
|
5695 |
"source": [
|
5696 |
"def one_hot(Y):\n",
|
5697 |
+
" one_hot_Y = np.zeros((Y.size, Y.max() + 1))\n",
|
5698 |
" one_hot_Y[np.arange(Y.size) , Y] = 1\n",
|
5699 |
" return one_hot_Y.T\n",
|
5700 |
"\n",
|
5701 |
+
"def deriv_ReLU(Z):\n",
|
5702 |
" return Z > 0\n",
|
5703 |
" \n",
|
5704 |
"def back_prop(Z1 , Z2 , A1 , A2, W2 ,X, Y ):\n",
|
|
|
5708 |
" dW2 = 1/m * dZ2.dot(A1.T)\n",
|
5709 |
" db2 = 1/m * np.sum(dZ2)\n",
|
5710 |
" dZ1 = W2.T.dot(dZ2) *deriv_ReLU(Z1)\n",
|
5711 |
+
" dW1 = 1/m * dZ1.dot(X.T)\n",
|
5712 |
" db1 = 1/m * np.sum(dZ1)\n",
|
5713 |
" return dW2 ,dW1, db1, db2"
|
5714 |
]
|
5715 |
},
|
5716 |
{
|
5717 |
"cell_type": "code",
|
5718 |
+
"execution_count": 22,
|
5719 |
"id": "2735f3d3-df5a-465f-aa59-a247ecb27343",
|
5720 |
"metadata": {},
|
5721 |
"outputs": [],
|
5722 |
"source": [
|
5723 |
+
"def update_params(W1, b1, W2, b2, dW2, dW1, db1, db2, alpha):\n",
|
5724 |
+
" \n",
|
5725 |
+
" W1 = W1 - alpha * dW2\n",
|
5726 |
" b1 = b1 - alpha * db1\n",
|
5727 |
+
" W2 = W2 - alpha * dW1\n",
|
5728 |
+
" b2 = b2 - alpha * db2\n",
|
5729 |
+
" return W1, b1, W2, b2\n"
|
5730 |
]
|
5731 |
},
|
5732 |
{
|
5733 |
"cell_type": "code",
|
5734 |
+
"execution_count": 23,
|
5735 |
"id": "9b2e810f-9911-445b-944b-6a7488647b80",
|
5736 |
"metadata": {},
|
5737 |
"outputs": [],
|
|
|
5760 |
},
|
5761 |
{
|
5762 |
"cell_type": "code",
|
5763 |
+
"execution_count": 24,
|
5764 |
"id": "543f85cc-6171-4d5d-80c4-3206e44e1714",
|
5765 |
"metadata": {},
|
5766 |
"outputs": [
|
5767 |
{
|
5768 |
+
"name": "stdout",
|
5769 |
+
"output_type": "stream",
|
5770 |
+
"text": [
|
5771 |
+
"Iteration: 0\n",
|
5772 |
+
"[4 4 4 ... 4 7 2] [2 6 4 ... 2 6 0]\n",
|
5773 |
+
"0.10421951219512195\n",
|
5774 |
+
"Iteration: 10\n",
|
5775 |
+
"[4 4 4 ... 6 4 4] [2 6 4 ... 2 6 0]\n",
|
5776 |
+
"0.1402439024390244\n",
|
5777 |
+
"Iteration: 20\n",
|
5778 |
+
"[2 4 4 ... 6 4 4] [2 6 4 ... 2 6 0]\n",
|
5779 |
+
"0.18260975609756097\n",
|
5780 |
+
"Iteration: 30\n",
|
5781 |
+
"[2 4 4 ... 6 4 2] [2 6 4 ... 2 6 0]\n",
|
5782 |
+
"0.22639024390243903\n",
|
5783 |
+
"Iteration: 40\n",
|
5784 |
+
"[2 4 4 ... 6 4 2] [2 6 4 ... 2 6 0]\n",
|
5785 |
+
"0.27358536585365856\n",
|
5786 |
+
"Iteration: 50\n",
|
5787 |
+
"[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n",
|
5788 |
+
"0.3517073170731707\n",
|
5789 |
+
"Iteration: 60\n",
|
5790 |
+
"[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n",
|
5791 |
+
"0.40836585365853656\n",
|
5792 |
+
"Iteration: 70\n",
|
5793 |
+
"[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n",
|
5794 |
+
"0.4554878048780488\n",
|
5795 |
+
"Iteration: 80\n",
|
5796 |
+
"[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n",
|
5797 |
+
"0.49997560975609756\n",
|
5798 |
+
"Iteration: 90\n",
|
5799 |
+
"[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n",
|
5800 |
+
"0.5408780487804878\n",
|
5801 |
+
"Iteration: 100\n",
|
5802 |
+
"[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n",
|
5803 |
+
"0.5816341463414634\n",
|
5804 |
+
"Iteration: 110\n",
|
5805 |
+
"[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n",
|
5806 |
+
"0.6165121951219512\n",
|
5807 |
+
"Iteration: 120\n",
|
5808 |
+
"[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n",
|
5809 |
+
"0.6435853658536586\n",
|
5810 |
+
"Iteration: 130\n",
|
5811 |
+
"[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n",
|
5812 |
+
"0.6667073170731708\n",
|
5813 |
+
"Iteration: 140\n",
|
5814 |
+
"[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n",
|
5815 |
+
"0.6854634146341464\n",
|
5816 |
+
"Iteration: 150\n",
|
5817 |
+
"[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n",
|
5818 |
+
"0.7005121951219512\n",
|
5819 |
+
"Iteration: 160\n",
|
5820 |
+
"[2 6 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n",
|
5821 |
+
"0.7150487804878048\n",
|
5822 |
+
"Iteration: 170\n",
|
5823 |
+
"[2 6 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n",
|
5824 |
+
"0.7254146341463414\n",
|
5825 |
+
"Iteration: 180\n",
|
5826 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5827 |
+
"0.7356585365853658\n",
|
5828 |
+
"Iteration: 190\n",
|
5829 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5830 |
+
"0.7440243902439024\n",
|
5831 |
+
"Iteration: 200\n",
|
5832 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5833 |
+
"0.7522926829268293\n",
|
5834 |
+
"Iteration: 210\n",
|
5835 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5836 |
+
"0.759609756097561\n",
|
5837 |
+
"Iteration: 220\n",
|
5838 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5839 |
+
"0.766\n",
|
5840 |
+
"Iteration: 230\n",
|
5841 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5842 |
+
"0.7719268292682927\n",
|
5843 |
+
"Iteration: 240\n",
|
5844 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5845 |
+
"0.777\n",
|
5846 |
+
"Iteration: 250\n",
|
5847 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5848 |
+
"0.781829268292683\n",
|
5849 |
+
"Iteration: 260\n",
|
5850 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5851 |
+
"0.7859756097560976\n",
|
5852 |
+
"Iteration: 270\n",
|
5853 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5854 |
+
"0.7901951219512195\n",
|
5855 |
+
"Iteration: 280\n",
|
5856 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5857 |
+
"0.7943902439024391\n",
|
5858 |
+
"Iteration: 290\n",
|
5859 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5860 |
+
"0.7986829268292683\n",
|
5861 |
+
"Iteration: 300\n",
|
5862 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5863 |
+
"0.8016341463414635\n",
|
5864 |
+
"Iteration: 310\n",
|
5865 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5866 |
+
"0.8048780487804879\n",
|
5867 |
+
"Iteration: 320\n",
|
5868 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5869 |
+
"0.8074878048780488\n",
|
5870 |
+
"Iteration: 330\n",
|
5871 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5872 |
+
"0.810829268292683\n",
|
5873 |
+
"Iteration: 340\n",
|
5874 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5875 |
+
"0.8133170731707317\n",
|
5876 |
+
"Iteration: 350\n",
|
5877 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5878 |
+
"0.8162682926829268\n",
|
5879 |
+
"Iteration: 360\n",
|
5880 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5881 |
+
"0.8192926829268292\n",
|
5882 |
+
"Iteration: 370\n",
|
5883 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5884 |
+
"0.8213170731707317\n",
|
5885 |
+
"Iteration: 380\n",
|
5886 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5887 |
+
"0.8239024390243902\n",
|
5888 |
+
"Iteration: 390\n",
|
5889 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5890 |
+
"0.8258048780487804\n",
|
5891 |
+
"Iteration: 400\n",
|
5892 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5893 |
+
"0.8281219512195122\n",
|
5894 |
+
"Iteration: 410\n",
|
5895 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5896 |
+
"0.8301463414634146\n",
|
5897 |
+
"Iteration: 420\n",
|
5898 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5899 |
+
"0.8321951219512195\n",
|
5900 |
+
"Iteration: 430\n",
|
5901 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5902 |
+
"0.8337317073170731\n",
|
5903 |
+
"Iteration: 440\n",
|
5904 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5905 |
+
"0.8355853658536585\n",
|
5906 |
+
"Iteration: 450\n",
|
5907 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5908 |
+
"0.8376585365853658\n",
|
5909 |
+
"Iteration: 460\n",
|
5910 |
+
"[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n",
|
5911 |
+
"0.8391463414634146\n",
|
5912 |
+
"Iteration: 470\n",
|
5913 |
+
"[2 6 4 ... 9 6 0] [2 6 4 ... 2 6 0]\n",
|
5914 |
+
"0.840780487804878\n",
|
5915 |
+
"Iteration: 480\n",
|
5916 |
+
"[2 6 4 ... 9 6 0] [2 6 4 ... 2 6 0]\n",
|
5917 |
+
"0.8422682926829268\n",
|
5918 |
+
"Iteration: 490\n",
|
5919 |
+
"[2 6 4 ... 9 6 0] [2 6 4 ... 2 6 0]\n",
|
5920 |
+
"0.8439512195121951\n"
|
5921 |
]
|
5922 |
}
|
5923 |
],
|
|
|
5927 |
},
|
5928 |
{
|
5929 |
"cell_type": "code",
|
5930 |
+
"execution_count": 25,
|
5931 |
"id": "4a6a9819-bf7f-443b-b654-8b4a94c07d4f",
|
5932 |
"metadata": {},
|
5933 |
"outputs": [],
|
5934 |
+
"source": [
|
5935 |
+
"def make_predictions(X, W1, b1, W2, b2):\n",
|
5936 |
+
" _, _, _, A2 = forward_prop(W1, b1, W2, b2, X)\n",
|
5937 |
+
" predictions = get_predictions(A2)\n",
|
5938 |
+
" return predictions\n",
|
5939 |
+
"\n",
|
5940 |
+
"def test_prediction(index, W1, b1, W2, b2):\n",
|
5941 |
+
" current_image = X_train[:, index, None]\n",
|
5942 |
+
" prediction = make_predictions(X_train[:, index, None], W1, b1, W2, b2)\n",
|
5943 |
+
" label = Y_train[index]\n",
|
5944 |
+
" print(\"Prediction: \", prediction)\n",
|
5945 |
+
" print(\"Label: \", label)\n",
|
5946 |
+
" \n",
|
5947 |
+
" current_image = current_image.reshape((28, 28)) * 255\n",
|
5948 |
+
" plt.gray()\n",
|
5949 |
+
" plt.imshow(current_image, interpolation='nearest')\n",
|
5950 |
+
" plt.show()"
|
5951 |
+
]
|
5952 |
+
},
|
5953 |
+
{
|
5954 |
+
"cell_type": "code",
|
5955 |
+
"execution_count": 26,
|
5956 |
+
"id": "430ac2c1-f81c-488c-9b94-433d750d459e",
|
5957 |
+
"metadata": {},
|
5958 |
+
"outputs": [
|
5959 |
+
{
|
5960 |
+
"name": "stdout",
|
5961 |
+
"output_type": "stream",
|
5962 |
+
"text": [
|
5963 |
+
"Prediction: [2]\n",
|
5964 |
+
"Label: 2\n"
|
5965 |
+
]
|
5966 |
+
},
|
5967 |
+
{
|
5968 |
+
"data": {
|
5969 |
+
"image/png": "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mEAgAQBMIJAAACYQSAAAEwgkAIAJBBIAwASP4zhOuJu4EL/fL6/XG+42IlZMjPsHus+YMSOguR544AHXNRs3bnRd895777muwcCkp6e7rqmtrQ3JPPPmzXNds3v3btc1GDifz6fExMQ+13OGBAAwgUACAJhAIAEATCCQAAAmEEgAABMIJACACQQSAMAEAgkAYAKBBAAwgUACAJhAIAEATCCQAAAmuH/yJiJKR0eH65q///3vAc31ox/9KKA62FdfX++6ZufOna5rfvazn7muWbRokesaHq5qE2dIAAATCCQAgAkEEgDABAIJAGACgQQAMIFAAgCYQCABAEwgkAAAJhBIAAATCCQAgAkEEgDABAIJAGACD1cFEBQTJkwIyTwZGRkhmQfBxxkSAMAE14HU3NyskpISzZ07V6mpqfJ4PCorK+t124MHD+q6665TQkKCkpKSVFRUpC+++GKgPQMAopDrQGpoaNCWLVvU3t6uJUuW9Lndp59+qlmzZunrr7/Wq6++queff16fffaZZs6cqVOnTg2kZwBAFHL9HlJGRoaamprk8Xh0+vRpPffcc71uV1paqtjYWFVXVysxMVGSNG3aNE2YMEGbNm3SY489NrDOAQBRxfUZksfjkcfjueA2HR0dqq6u1o033tgVRtK5MJs9e7Z27NjhvlMAQFQLyocajhw5otbWVuXm5vZYl5ubq7q6OrW1tfVa297eLr/f320AAKJfUAKpoaFBkpScnNxjXXJyshzHUVNTU6+1FRUV8nq9XSM9PT0YLQIAjAnqx74vdGmvr3Vr1qyRz+frGvX19cFqDwBgSFBujE1JSZH0f2dK/6uxsVEej0dJSUm91sbGxio2NjYYbQEADAvKGdL48eMVFxenQ4cO9Vh36NAhZWVlaeTIkcGYGgAQoYISSDExMVq0aJG2b9+u5ubmruVffvml9uzZo6KiomBMCwCIYAFdstu5c6fOnDnTFTYff/yxqqqqJEnz58/XqFGjVF5erunTp2vhwoVavXq12traVFpaqtGjR+v+++8fvJ8AABAVPI7jOG6LMjMzdfz48V7XHT16VJmZmZKkAwcO6IEHHtC7776rmJgYzZkzR5s2bdL48eP7PZff75fX63XbIoAwu+WWW1zXvPTSS65r3njjDdc1hYWFrmswcD6fr9u9qd8W0BnSsWPH+rXdtGnT9Pbbbwcy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",
|
5970 |
+
"text/plain": [
|
5971 |
+
"<Figure size 640x480 with 1 Axes>"
|
5972 |
+
]
|
5973 |
+
},
|
5974 |
+
"metadata": {},
|
5975 |
+
"output_type": "display_data"
|
5976 |
+
},
|
5977 |
+
{
|
5978 |
+
"name": "stdout",
|
5979 |
+
"output_type": "stream",
|
5980 |
+
"text": [
|
5981 |
+
"Prediction: [6]\n",
|
5982 |
+
"Label: 6\n"
|
5983 |
+
]
|
5984 |
+
},
|
5985 |
+
{
|
5986 |
+
"data": {
|
5987 |
+
"image/png": "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nG6//Xbt3r2719clf/vtt9q/f79KSkoi2F3k1dTU6Ny5cyooKIh0K0P25JNPqqKiQhs2bNDGjRv7rB8p58LljsNALJ4LUfUe0q233qqioiKtXLlSgUBAmZmZ2rlzp9555x299tprGj16dKRbDJvS0lJdddVVuvbaazVhwgR99dVXqq6u1unTp7Vt27ZItxcyb7/9ts6ePdvzB+bIkSOqqamRJN12220aN26cKisrNW/ePC1ZskRr167t+TDkhAkT9Oijj0ay/WFzuePQ1NSk0tJSrVixQpmZmXIcR/X19dq6datycnL04IMPRrL9IauurlZ5ebkWLVqkxYsX97nsdPGPbKyfC4M5DidPnoyecyGin4IKQltbm/vQQw+56enp7pgxY9zc3Fx3586dkW4r7Kqqqtz8/HzX5/O5o0ePdidOnOgWFxe7H330UaRbC6lp06a5kvod33zzTc92H3/8sXvjjTe648aNc5OTk92lS5e6x44di1zjw+xyx6GlpcUtLi52p0+f7iYkJLhjxoxxs7Ky3LKyMvf777+PdPtDdsMNNwz4+//0z1osnwuDOQ7RdC7wfUgAABOi6j0kAEDsIpAAACYQSAAAEwgkAIAJBBIAwAQCCQBgAoEEADCBQAIAmEAgAQBMIJAAACYQSAAAEwgkAIAJ/w8caFvydw4z2gAAAABJRU5ErkJggg==",
|
5988 |
+
"text/plain": [
|
5989 |
+
"<Figure size 640x480 with 1 Axes>"
|
5990 |
+
]
|
5991 |
+
},
|
5992 |
+
"metadata": {},
|
5993 |
+
"output_type": "display_data"
|
5994 |
+
},
|
5995 |
+
{
|
5996 |
+
"name": "stdout",
|
5997 |
+
"output_type": "stream",
|
5998 |
+
"text": [
|
5999 |
+
"Prediction: [4]\n",
|
6000 |
+
"Label: 4\n"
|
6001 |
+
]
|
6002 |
+
},
|
6003 |
+
{
|
6004 |
+
"data": {
|
6005 |
+
"image/png": "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",
|
6006 |
+
"text/plain": [
|
6007 |
+
"<Figure size 640x480 with 1 Axes>"
|
6008 |
+
]
|
6009 |
+
},
|
6010 |
+
"metadata": {},
|
6011 |
+
"output_type": "display_data"
|
6012 |
+
},
|
6013 |
+
{
|
6014 |
+
"name": "stdout",
|
6015 |
+
"output_type": "stream",
|
6016 |
+
"text": [
|
6017 |
+
"Prediction: [3]\n",
|
6018 |
+
"Label: 8\n"
|
6019 |
+
]
|
6020 |
+
},
|
6021 |
+
{
|
6022 |
+
"data": {
|
6023 |
+
"image/png": "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unXd1o2kc6G/49Afa+eCnU4GID8/X2fOnNGbb77Zbfkrr7yipKQkXXPNNSHqzIampiZVVVUpKysrYv5HcysqKkpLlizRrl27un1d8smTJ7Vv3z4VFBSEsLvQq6ys1NmzZ5WTkxPqVgZt48aNKikp0fr167Vhw4Ye60fKuXCx49AXi+dCWL2HdMsttygvL08PPPCA/H6/0tLStGPHDr3zzjt69dVXNXr06FC3OGwKCwt1xRVX6Oqrr9aECRP09ddfq7y8XKdPn9bLL78c6vaCZu/evWppaen6A/P555+rsrJSknTrrbdq3LhxKi0t1bx587R48WKtWbOm68OQEyZM0KOPPhrK9ofMxY5DfX29CgsLdeeddyotLU0ej0c1NTXasmWL0tPTdf/994ey/UErLy9XcXGxFi1apNtuu63HbacLf2Qj/VwYyHE4ceJE+JwLIf0UVACam5udhx56yJk8ebIzZswYJyMjw9mxY0eo2xp2ZWVlTlZWluP1ep3Ro0c7EydOdPLz851//etfoW4tqFJTUx1JvY5jx451bffvf//bueGGG5xx48Y58fHxzrJly5zDhw+HrvEhdrHj0NjY6OTn5ztTp051YmJinDFjxjjTp093ioqKnO+//z7U7Q/a9ddf3+fv/9M/a5F8LgzkOITTucD3IQEATAir95AAAJGLQAIAmEAgAQBMIJAAACYQSAAAEwgkAIAJBBIAwAQCCQBgAoEEADCBQAIAmEAgAQBMIJAAACb8P/orjD03AKHpAAAAAElFTkSuQmCC",
|
6024 |
+
"text/plain": [
|
6025 |
+
"<Figure size 640x480 with 1 Axes>"
|
6026 |
+
]
|
6027 |
+
},
|
6028 |
+
"metadata": {},
|
6029 |
+
"output_type": "display_data"
|
6030 |
+
}
|
6031 |
+
],
|
6032 |
+
"source": [
|
6033 |
+
"test_prediction(0, W1, b1, W2, b2)\n",
|
6034 |
+
"test_prediction(1, W1, b1, W2, b2)\n",
|
6035 |
+
"test_prediction(2, W1, b1, W2, b2)\n",
|
6036 |
+
"test_prediction(3, W1, b1, W2, b2)"
|
6037 |
+
]
|
6038 |
+
},
|
6039 |
+
{
|
6040 |
+
"cell_type": "code",
|
6041 |
+
"execution_count": 31,
|
6042 |
+
"id": "fdb878e1-cd7c-48c8-bbab-2407dcc41eab",
|
6043 |
+
"metadata": {},
|
6044 |
+
"outputs": [],
|
6045 |
+
"source": [
|
6046 |
+
"import numpy as np\n",
|
6047 |
+
"from PIL import Image\n",
|
6048 |
+
"\n",
|
6049 |
+
"def preprocess_image(image_path, target_size=(28, 28)):\n",
|
6050 |
+
" try:\n",
|
6051 |
+
" # Load the image\n",
|
6052 |
+
" img = Image.open(image_path)\n",
|
6053 |
+
" \n",
|
6054 |
+
" # Convert to RGB if the image has an alpha channel (PNG)\n",
|
6055 |
+
" if img.mode == 'RGBA':\n",
|
6056 |
+
" img = img.convert('RGB')\n",
|
6057 |
+
" \n",
|
6058 |
+
" # Convert to grayscale\n",
|
6059 |
+
" img = img.convert('L')\n",
|
6060 |
+
" \n",
|
6061 |
+
" # Resize the image\n",
|
6062 |
+
" img = img.resize(target_size)\n",
|
6063 |
+
" \n",
|
6064 |
+
" # Convert to numpy array and normalize\n",
|
6065 |
+
" img_array = np.array(img).reshape(1, 28*28) / 255.0\n",
|
6066 |
+
" \n",
|
6067 |
+
" return img_array.T # Transpose to match the shape (784, 1)\n",
|
6068 |
+
" \n",
|
6069 |
+
" except Exception as e:\n",
|
6070 |
+
" print(f\"Error processing image {image_path}: {str(e)}\")\n",
|
6071 |
+
" return None\n",
|
6072 |
+
" return img_array.T # Transpose to match the shape (784, 1)"
|
6073 |
+
]
|
6074 |
+
},
|
6075 |
+
{
|
6076 |
+
"cell_type": "code",
|
6077 |
+
"execution_count": 32,
|
6078 |
+
"id": "723d31e8-33dd-438b-8b6a-21d3cde7eace",
|
6079 |
+
"metadata": {},
|
6080 |
+
"outputs": [],
|
6081 |
+
"source": [
|
6082 |
+
"def predict_custom_image(image_path, W1, b1, W2, b2):\n",
|
6083 |
+
" # Preprocess the image\n",
|
6084 |
+
" X = preprocess_image(image_path)\n",
|
6085 |
+
" \n",
|
6086 |
+
" # Forward propagation\n",
|
6087 |
+
" _, _, _, A2 = forward_prop(W1, b1, W2, b2, X)\n",
|
6088 |
+
" \n",
|
6089 |
+
" # Get the prediction\n",
|
6090 |
+
" prediction = get_predictions(A2)\n",
|
6091 |
+
" \n",
|
6092 |
+
" return prediction[0] # Return the single prediction"
|
6093 |
+
]
|
6094 |
+
},
|
6095 |
+
{
|
6096 |
+
"cell_type": "code",
|
6097 |
+
"execution_count": 35,
|
6098 |
+
"id": "a9aa8b02-edd4-477f-a74e-8b63c77eb51e",
|
6099 |
+
"metadata": {},
|
6100 |
+
"outputs": [
|
6101 |
+
{
|
6102 |
+
"name": "stdout",
|
6103 |
+
"output_type": "stream",
|
6104 |
+
"text": [
|
6105 |
+
"The predicted digit is: 6\n"
|
6106 |
+
]
|
6107 |
+
}
|
6108 |
+
],
|
6109 |
+
"source": [
|
6110 |
+
"# Assuming you have already trained your model and have W1, b1, W2, b2\n",
|
6111 |
+
"\n",
|
6112 |
+
"# Path to your custom image\n",
|
6113 |
+
"custom_image_path = \"images.png\"\n",
|
6114 |
+
"\n",
|
6115 |
+
"# Make prediction\n",
|
6116 |
+
"predicted_digit = predict_custom_image(custom_image_path, W1, b1, W2, b2)\n",
|
6117 |
+
"\n",
|
6118 |
+
"print(f\"The predicted digit is: {predicted_digit}\")"
|
6119 |
+
]
|
6120 |
+
},
|
6121 |
+
{
|
6122 |
+
"cell_type": "code",
|
6123 |
+
"execution_count": 36,
|
6124 |
+
"id": "2e02ae63-cdff-4b57-ab45-4906693645eb",
|
6125 |
+
"metadata": {},
|
6126 |
+
"outputs": [],
|
6127 |
+
"source": [
|
6128 |
+
"import pickle\n",
|
6129 |
+
"\n",
|
6130 |
+
"model_params = {\n",
|
6131 |
+
" 'W1': W1,\n",
|
6132 |
+
" 'b1': b1,\n",
|
6133 |
+
" 'W2': W2,\n",
|
6134 |
+
" 'b2': b2\n",
|
6135 |
+
"}\n",
|
6136 |
+
"\n",
|
6137 |
+
"with open('model.pkl', 'wb') as f:\n",
|
6138 |
+
" pickle.dump(model_params, f)"
|
6139 |
+
]
|
6140 |
+
},
|
6141 |
+
{
|
6142 |
+
"cell_type": "code",
|
6143 |
+
"execution_count": null,
|
6144 |
+
"id": "f5b72124-7465-46ee-8bc7-72e2ab756b1b",
|
6145 |
+
"metadata": {},
|
6146 |
+
"outputs": [],
|
6147 |
"source": []
|
6148 |
},
|
6149 |
{
|
6150 |
"cell_type": "code",
|
6151 |
"execution_count": null,
|
6152 |
+
"id": "e50817d2-c0a4-4564-8afc-c570526ab8fa",
|
6153 |
"metadata": {},
|
6154 |
"outputs": [],
|
6155 |
"source": []
|