def sigmoid(z):
return 1./(1+np.exp(-z))
def ReLU(z):
return np.maximum(0,z)
def tanh(z):
return np.tanh(z)
z = np.linspace(-10,10,100)
plt.plot(z, sigmoid(z),'r', label = 'sigmoid')
plt.plot(z, ReLU(z),'b',label ='ReLU')
plt.plot(z, tanh(z),'g',label ='tanh')
plt.legend(fontsize=12)
x1 = np.linspace(-2,2,50)
x2 = np.linspace(-2,2,50)
x3 = np.linspace(-1,1,50*50)
result = np.zeros((50*50,3))
out11 = np.zeros((50*50, 1))
out12 = np.zeros((50*50, 1))
out13 = np.zeros((50*50, 1))
out14 = np.zeros((50*50, 1))
out21 = np.zeros((50*50, 1))
out22 = np.zeros((50*50, 1))
out23 = np.zeros((50*50, 1))
out24 = np.zeros((50*50, 1))
out25 = np.zeros((50*50, 1))
out26 = np.zeros((50*50, 1))
out31 = np.zeros((50*50, 1))
for i in range(len(x1)):
for j in range(len(x2 )):
# Input layer
n11 = x1[i] * weights0[0][0] + x2[j] * weights0[1][0] + biases0[0]
a11 = tanh(n11)
n12 = x1[i] * weights0[0][1] + x2[j] * weights0[1][1] + biases0[1]
a12 = tanh(n12)
n13 = x1[i] * weights0[0][2] + x2[j] * weights0[1][2] + biases0[2]
a13 = tanh(n13)
n14 = x1[i] * weights0[0][3] + x2[j] * weights0[1][3] + biases0[3]
a14 = tanh(n14)
# Hidden layer
n21 = a11 * weights1[0][0] + a12 * weights1[1][0] + a13 * weights1[2][0] + a14 * weights1[3][0] + biases1[0]
a21 = ReLU(n21)
n22 = a11 * weights1[0][1] + a12 * weights1[1][1] + a13 * weights1[2][1] + a14 * weights1[3][1] + biases1[1]
a22 = ReLU(n22)
n23 = a11 * weights1[0][2] + a12 * weights1[1][2] + a13 * weights1[2][2] + a14 * weights1[3][2] + biases1[2]
a23 = ReLU(n23)
n24 = a11 * weights1[0][3] + a12 * weights1[1][3] + a13 * weights1[2][3] + a14 * weights1[3][3] + biases1[3]
a24 = ReLU(n24)
n25 = a11 * weights1[0][4] + a12 * weights1[1][4] + a13 * weights1[2][4] + a14 * weights1[3][4] + biases1[4]
a25 = ReLU(n25)
n26 = a11 * weights1[0][5] + a12 * weights1[1][5] + a13 * weights1[2][5] + a14 * weights1[3][5] + biases1[5]
a26 = ReLU(n26)
# Output layer
n31 = a21 * weights2[0][0] + a22 * weights2[1][0] \
+ a23 * weights2[2][0] + a24 * weights2[3][0] \
+ a25 * weights2[4][0] + a26 * weights2[5][0] \
+ biases2[0]
a31 = sigmoid(n31)
result[i*50+j,0 ] = x1[i]
result[i*50+j, 1] = x2[j]
out11[i*50+j] = a11
out12[i*50+j] = a12
out13[i*50+j] = a13
out14[i*50+j] = a14
out21[i*50+j] = a21
out22[i*50+j] = a22
out23[i*50+j] = a23
out24[i*50+j] = a24
out25[i*50+j] = a25
out26[i*50+j] = a26
out31[i*50+j] = a31