Skip to content

Commit aef8611

Browse files
authored
Create main.py
1 parent 7ea43a2 commit aef8611

File tree

1 file changed

+127
-0
lines changed

1 file changed

+127
-0
lines changed

Weight Initialization/main.py

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
import random
2+
import math
3+
4+
while True:
5+
try:
6+
rows:int = int(input("Enter number of rows: "))
7+
break
8+
except ValueError:
9+
print("Enter an integer Value")
10+
11+
12+
while True:
13+
try:
14+
cols:int = int(input("Enter number of columns: "))
15+
break
16+
except ValueError:
17+
print("Enter an integer Value")
18+
19+
def zero_initialization(rows:int, cols:int)->list:
20+
'''
21+
This functions generates a matrix whose all values are zero for weight initialization.
22+
'''
23+
24+
matrix:List = []
25+
26+
for i in range(rows):
27+
row:List = []
28+
for j in range(cols):
29+
row.append(0.0)
30+
matrix.append(row)
31+
return matrix
32+
33+
print(zero_initialization(rows, cols))
34+
35+
def random_uniform_initialization(rows:int, cols:int)->list:
36+
'''
37+
This function generates a matrix whose elements are drawn from unifrom distribution.
38+
'''
39+
matrix:List = []
40+
41+
for i in range(rows):
42+
row:List = []
43+
for j in range(cols):
44+
row.append(random.uniform(-1.0, 1.0))
45+
matrix.append(row)
46+
return matrix
47+
48+
print(random_uniform_initialization(rows, cols))
49+
50+
51+
def random_normal_initialization(rows:int, cols:int)->list:
52+
'''
53+
This function generates a matrix whose elements are drawn from normal distribution.
54+
'''
55+
matrix:List = []
56+
57+
for i in range(rows):
58+
row:List = []
59+
for j in range(cols):
60+
row.append(random.gauss(0.0, 1.0))
61+
matrix.append(row)
62+
return matrix
63+
64+
print(random_normal_initialization(rows, cols))
65+
66+
67+
def xavier_uniform_initialization(rows:int, cols:int)->list:
68+
'''
69+
This function generates a matrix whose elements are drawn from unifrom distribution.
70+
'''
71+
matrix:List = []
72+
73+
for i in range(rows):
74+
row:List = []
75+
for j in range(cols):
76+
row.append(random.uniform(-math.sqrt(6 / (rows + cols)), math.sqrt(6 / (rows + cols))))
77+
matrix.append(row)
78+
return matrix
79+
80+
print(xavier_uniform_initialization(rows, cols))
81+
82+
83+
def xavier_normal_initialization(rows:int, cols:int)->list:
84+
'''
85+
This function generates a matrix whose elements are drawn from normal distribution.
86+
'''
87+
matrix:List = []
88+
89+
for i in range(rows):
90+
row:List = []
91+
for j in range(cols):
92+
row.append(random.gauss(0.0, math.sqrt(2 / (rows + cols))))
93+
matrix.append(row)
94+
return matrix
95+
96+
print(xavier_normal_initialization(rows, cols))
97+
98+
def he_uniform_initialization(rows:int, cols:int)->list:
99+
'''
100+
This function generates a matrix whose elements are drawn from unifrom distribution.
101+
'''
102+
matrix:List = []
103+
104+
for i in range(rows):
105+
row:List = []
106+
for j in range(cols):
107+
row.append(random.uniform(-math.sqrt(2 / (rows + cols)), math.sqrt(2 / (rows + cols))))
108+
matrix.append(row)
109+
return matrix
110+
111+
112+
print(he_uniform_initialization(rows, cols))
113+
114+
def he_normal_initialization(rows:int, cols:int)->list:
115+
'''
116+
This function generates a matrix whose elements are drawn from normal distribution.
117+
'''
118+
matrix:List = []
119+
120+
for i in range(rows):
121+
row:List = []
122+
for j in range(cols):
123+
row.append(random.gauss(0.0, math.sqrt(2 / (rows + cols))))
124+
matrix.append(row)
125+
return matrix
126+
127+
print(he_normal_initialization(rows, cols))

0 commit comments

Comments
 (0)