import cv2
from numpy import *
import numpy as np
import math
np.set_printoptions(suppress=True)
img0 = cv2.resize(cv2.imread("D:\DDDD.png", cv2.IMREAD_GRAYSCALE), (32, 32), interpolation=cv2.INTER_CUBIC)
for i in range(32):
for j in range(32):
img0[i][j] = (255 - img0[i][j]) / 255
print(img0)
HE0 = np.random.random((6, 5, 5))
he1 = HE0[0]
he2 = HE0[1]
he3 = HE0[2]
he4 = HE0[3]
he5 = HE0[4]
he6 = HE0[5]
(h1, z1) = img0.shape
cx = [[]]
bias_0 = 1
bias_1 = 1
bias_2 = 1
bias_3 = 1
w = 1 / 10000
b = -10
ww = 1 / 1000
bb = 20
def Conv_1(bei_H, bei_Z, he_L, x, y):
conv = [[] for i in range(28)]
cL = 0
for i in range(bei_H - he_L + 1):
for j in range(bei_Z - he_L + 1):
for k in range(he_L):
for l in range(he_L):
cL = cL + x[k][l] * y[i + k][j + l]
cL = cL + bias_0
conv[i].append(cL)
cL = 0
return conv
def Conv_3(bei_H, bei_Z, he_L, x, y):
conv = [[] for iiii in range(10)]
cL = 0
for i in range(bei_H - he_L + 1):
for j in range(bei_Z - he_L + 1):
for k in range(he_L):
for l in range(he_L):
cL = cL + x[k][l] * y[i + k][j + l]
cL = cL + bias_1
conv[i].append(cL)
cL = 0
return conv
def Conv_5(bei_H, bei_Z, he_L, x, y):
conv = [[]]
cL = 0
for i in range(bei_H - he_L + 1):
for j in range(bei_Z - he_L + 1):
for k in range(he_L):
for l in range(he_L):
cL = cL + x[k][l] * y[i + k][j + l]
cL = cL + bias_2
conv[i].append(cL)
cL = 0
return conv
def Conv_6(x, y):
conv = []
cL = 0
cL = x * y
cL = cL + bias_3
cL = sigmoid(cL)
conv.append(cL)
cL = 0
return conv
def sigmoid(x):
return 1.0 / (1.0 + np.exp(-x))
def Pool(bei_H, bei_Z, img_pool):
Pool = [[] for i in range(14)]
cL = 0
for ii in range(0, bei_H, 2):
for jj in range(0, bei_Z, 2):
for kk in range(2):
for ll in range(2):
cL = cL + img_pool[0][ii + kk][jj + ll]
cL = cL * w + b
cL = sigmoid(cL)
Pool[int(ii / 2)].append(cL)
cL = 0
return Pool
def Pool_4(bei_H, bei_Z, img_pool):
Pool = [[] for i in range(5)]
cL = 0
for ii in range(0, bei_H, 2):
for jj in range(0, bei_Z, 2):
for kk in range(2):
for ll in range(2):
cL = cL + img_pool[0][ii + kk][jj + ll]
cL = cL * ww + bb
cL = sigmoid(cL)
Pool[int(ii / 2)].append(cL)
cL = 0
return Pool
def CLL_1():
C11 = Conv_1(h1, z1, len(he1), he1, img0)
C12 = Conv_1(h1, z1, len(he2), he2, img0)
C13 = Conv_1(h1, z1, len(he3), he3, img0)
C14 = Conv_1(h1, z1, len(he4), he4, img0)
C15 = Conv_1(h1, z1, len(he5), he5, img0)
C16 = Conv_1(h1, z1, len(he6), he6, img0)
woo = np.array([C11, C12, C13, C14, C15, C16])
return woo
C1_conv = CLL_1()
def CLL_2():
Pool_Conv = [[] for j in range(6)]
(h_w, h_p, h_z) = C1_conv.shape
for i in range(6):
Pool_Conv[i] = Pool(h_p, h_z, C1_conv)
return Pool_Conv
C2_conv = CLL_2()
HE2 = np.random.random((16, 5, 5))
h = 14
z = 14
def CLL_3():
C20 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C21 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C22 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C23 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C24 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C25 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C26 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C27 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C28 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C29 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C210 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C211 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C212 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C213 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C214 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
C215 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for iiii in range(10)]
for i in range(10):
for j in range(10):
C20[i][j] = (Conv_3(h, z, len(HE2[0]), HE2[0], C2_conv[0]))[i][j] + \
(Conv_3(h, z, len(HE2[0]), HE2[0], C2_conv[1]))[i][j] + \
(Conv_3(h, z, len(HE2[0]), HE2[0], C2_conv[2]))[i][j]
C21[i][j] = (Conv_3(h, z, len(HE2[1]), HE2[1], C2_conv[1]))[i][j] + \
(Conv_3(h, z, len(HE2[1]), HE2[1], C2_conv[2]))[i][j] + \
(Conv_3(h, z, len(HE2[1]), HE2[1], C2_conv[3]))[i][j]
C22[i][j] = (Conv_3(h, z, len(HE2[2]), HE2[2], C2_conv[2]))[i][j] + \
(Conv_3(h, z, len(HE2[2]), HE2[2], C2_conv[3]))[i][j] + \
(Conv_3(h, z, len(HE2[2]), HE2[2], C2_conv[4]))[i][j]
C23[i][j] = (Conv_3(h, z, len(HE2[3]), HE2[3], C2_conv[3]))[i][j] + \
(Conv_3(h, z, len(HE2[3]), HE2[3], C2_conv[4]))[i][j] + \
(Conv_3(h, z, len(HE2[3]), HE2[3], C2_conv[5]))[i][j]
C24[i][j] = (Conv_3(h, z, len(HE2[4]), HE2[4], C2_conv[4]))[i][j] + \
(Conv_3(h, z, len(HE2[4]), HE2[4], C2_conv[5]))[i][j] + \
(Conv_3(h, z, len(HE2[4]), HE2[4], C2_conv[0]))[i][j]
C25[i][j] = (Conv_3(h, z, len(HE2[5]), HE2[5], C2_conv[5]))[i][j] + \
(Conv_3(h, z, len(HE2[5]), HE2[5], C2_conv[0]))[i][j] + \
(Conv_3(h, z, len(HE2[5]), HE2[5], C2_conv[1]))[i][j]
C26[i][j] = (Conv_3(h, z, len(HE2[6]), HE2[6], C2_conv[0]))[i][j] + \
(Conv_3(h, z, len(HE2[6]), HE2[6], C2_conv[1]))[i][j] + \
(Conv_3(h, z, len(HE2[6]), HE2[6], C2_conv[2]))[i][j] + \
(Conv_3(h, z, len(HE2[6]), HE2[6], C2_conv[3]))[i][j]
C27[i][j] = (Conv_3(h, z, len(HE2[7]), HE2[7], C2_conv[1]))[i][j] + \
(Conv_3(h, z, len(HE2[7]), HE2[7], C2_conv[2]))[i][j] + \
(Conv_3(h, z, len(HE2[7]), HE2[7], C2_conv[3]))[i][j] + \
(Conv_3(h, z, len(HE2[7]), HE2[7], C2_conv[4]))[i][j]
C28[i][j] = (Conv_3(h, z, len(HE2[8]), HE2[8], C2_conv[2]))[i][j] + \
(Conv_3(h, z, len(HE2[8]), HE2[8], C2_conv[3]))[i][j] + \
(Conv_3(h, z, len(HE2[8]), HE2[8], C2_conv[4]))[i][j] + \
(Conv_3(h, z, len(HE2[8]), HE2[8], C2_conv[5]))[i][j]
C29[i][j] = (Conv_3(h, z, len(HE2[9]), HE2[9], C2_conv[3]))[i][j] + \
(Conv_3(h, z, len(HE2[9]), HE2[9], C2_conv[4]))[i][j] + \
(Conv_3(h, z, len(HE2[9]), HE2[9], C2_conv[5]))[i][j] + \
(Conv_3(h, z, len(HE2[9]), HE2[9], C2_conv[0]))[i][j]
C210[i][j] = (Conv_3(h, z, len(HE2[10]), HE2[10], C2_conv[4]))[i][j] + \
(Conv_3(h, z, len(HE2[10]), HE2[10], C2_conv[5]))[i][j] + \
(Conv_3(h, z, len(HE2[10]), HE2[10], C2_conv[0]))[i][j] + \
(Conv_3(h, z, len(HE2[10]), HE2[10], C2_conv[1]))[i][j]
C211[i][j] = (Conv_3(h, z, len(HE2[11]), HE2[11], C2_conv[5]))[i][j] + \
(Conv_3(h, z, len(HE2[11]), HE2[11], C2_conv[0]))[i][j] + \
(Conv_3(h, z, len(HE2[11]), HE2[11], C2_conv[1]))[i][j] + \
(Conv_3(h, z, len(HE2[11]), HE2[11], C2_conv[2]))[i][j]
C212[i][j] = (Conv_3(h, z, len(HE2[12]), HE2[12], C2_conv[0]))[i][j] + \
(Conv_3(h, z, len(HE2[12]), HE2[12], C2_conv[1]))[i][j] + \
(Conv_3(h, z, len(HE2[12]), HE2[12], C2_conv[3]))[i][j] + \
(Conv_3(h, z, len(HE2[12]), HE2[12], C2_conv[4]))[i][j]
C213[i][j] = (Conv_3(h, z, len(HE2[13]), HE2[13], C2_conv[1]))[i][j] + \
(Conv_3(h, z, len(HE2[13]), HE2[13], C2_conv[2]))[i][j] + \
(Conv_3(h, z, len(HE2[13]), HE2[13], C2_conv[4]))[i][j] + \
(Conv_3(h, z, len(HE2[13]), HE2[13], C2_conv[5]))[i][j]
C214[i][j] = (Conv_3(h, z, len(HE2[14]), HE2[14], C2_conv[0]))[i][j] + \
(Conv_3(h, z, len(HE2[14]), HE2[14], C2_conv[2]))[i][j] + \
(Conv_3(h, z, len(HE2[14]), HE2[14], C2_conv[3]))[i][j] + \
(Conv_3(h, z, len(HE2[14]), HE2[14], C2_conv[5]))[i][j]
C215[i][j] = (Conv_3(h, z, len(HE2[15]), HE2[15], C2_conv[0]))[i][j] + \
(Conv_3(h, z, len(HE2[15]), HE2[15], C2_conv[1]))[i][j] + \
(Conv_3(h, z, len(HE2[15]), HE2[15], C2_conv[2]))[i][j] + \
(Conv_3(h, z, len(HE2[15]), HE2[15], C2_conv[3]))[i][j] + \
(Conv_3(h, z, len(HE2[15]), HE2[15], C2_conv[4]))[i][j] + \
(Conv_3(h, z, len(HE2[15]), HE2[15], C2_conv[5]))[i][j]
oo = np.array([C20, C21, C22, C23, C24, C25, C26, C27, C28, C29, C210, C211, C212, C213, C214, C215])
return oo
C3hh = CLL_3()
def CLL_4():
Poo2_Conv = [[] for j in range(16)]
(h_ww, h_pp, h_zz) = C3hh.shape
for i in range(16):
Poo2_Conv[i] = Pool_4(h_pp, h_zz, C3hh)
return Poo2_Conv
C4hh = CLL_4()
HE3 = np.random.random((120, 5, 5))
hh = 5
zz = 5
def CLL_5():
C = []
b = 0
for f in range(120):
C.append([0])
for i in range(1):
for j in range(1):
for k in range(16):
C[f] = (Conv_5(hh, zz, len(HE3[f]), HE3[f], C4hh[k]))[i][j]
b = C[f] + b
C[f] = b
b = 0
ooo = np.array(
[C[0], C[1], C[2], C[3], C[4], C[5], C[6], C[7], C[8], C[9], C[10], C[11], C[12], C[13], C[14], C[15], C[16],
C[17], C[18], C[19], C[20], C[21], C[22], C[23], C[24], C[25], C[26], C[27], C[28], C[29], C[30], C[31], C[32],
C[33], C[34], C[35], C[36], C[37], C[38], C[39], C[40], C[41], C[42], C[43], C[44], C[45], C[46], C[47],
C[48], C[49], C[50], C[51], C[52], C[53], C[54], C[55], C[56], C[57], C[58], C[59], C[60], C[61], C[62], C[63],
C[64], C[65], C[66], C[67], C[68], C[69], C[70], C[71], C[72], C[73], C[74], C[75], C[76], C[77], C[78], C[79],
C[80], C[81], C[82], C[83], C[84], C[85], C[86], C[87], C[88], C[89], C[90], C[91], C[92], C[93], C[94], C[95],
C[96], C[97], C[98], C[99], C[100], C[101], C[102], C[103], C[104], C[105], C[106], C[107], C[108], C[109],
C[110], C[111], C[112], C[113], C[114], C[115], C[116], C[117], C[118], C[119]])
return (ooo)
C5hh = CLL_5()
hhh = 1
zzz = 1
HE4 = np.random.random((84, 1, 1))
def CLL_6():
C = [[]]
a = 0
for f in range(84):
C.append([0])
for i in range(1):
for j in range(1):
for k in range(120):
kkk = np.random.rand()
C[f] = (Conv_6(HE4[f], C5hh[k]))[i][j]
a = kkk * C[f] + a
C[f] = a
a = 0
oooo = np.array(
[C[0], C[1], C[2], C[3], C[4], C[5], C[6], C[7], C[8], C[9], C[10], C[11], C[12], C[13], C[14], C[15], C[16],
C[17], C[18], C[19], C[20], C[21], C[22], C[23], C[24], C[25], C[26], C[27], C[28], C[29], C[30], C[31], C[32],
C[33], C[34], C[35], C[36], C[37], C[38], C[39], C[40], C[41], C[42], C[43], C[44], C[45], C[46], C[47],
C[48], C[49], C[50], C[51], C[52], C[53], C[54], C[55], C[56], C[57], C[58], C[59], C[60], C[61], C[62], C[63],
C[64], C[65], C[66], C[67], C[68], C[69], C[70], C[71], C[72], C[73], C[74], C[75], C[76], C[77], C[78], C[79],
C[80], C[81], C[82], C[83]])
return (oooo)
C6hh = CLL_6()
HE5 = np.random.random((10, 1, 1))
def OutPut():
C = [[]]
a = 0
for f in range(10):
C.append([0])
for i in range(1):
for j in range(1):
for k in range(84):
C[f] = (Conv_6(HE5[f], C6hh[k]))[i][j]
kkk = np.random.rand()
a = kkk * C[f] + a
C[f] = a
a = 0
ooooo = np.array([C[0], C[1], C[2], C[3], C[4], C[5], C[6], C[7], C[8], C[9]])
return (ooooo)
Outppp = OutPut()
OutPPP = [[]]
for i in range(10):
OutPPP[0].append(Outppp[i][0])
OutPPP = np.array(OutPPP)
def softmax(x):
m, n = np.shape(x)
outMatrix = np.mat(np.zeros((m, n)))
soft_sum = 0
for idx in range(0, n):
outMatrix[0, idx] = math.exp(x[0, idx])
soft_sum += outMatrix[0, idx]
for idx in range(0, n):
outMatrix[0, idx] = outMatrix[0, idx] / soft_sum
return outMatrix
outhhh = []
outhhh.append(softmax(OutPPP))
a = np.max(outhhh)
x = np.where(outhhh == a)
print(outhhh)
print(a)
print(x)
手撸Lenet-5留念
最新推荐文章于 2024-05-07 12:57:39 发布