CNN(卷积神经网络)提取图像特征

CNN提取图像特征原文链接

# 文中简单的 反向传播代码 python版本
import numpy as np
def sigmoid(x): #激活函数,将得到的值归一化在某一范围内
    return 1/(1+np.exp(-x)) #sigmoid函数: 把一个实数压缩至0到1之间。当z是非常大的正数时,g(z)会趋近于1,而z是非常小的负数时,则g(z)会趋近于0。
input1 = np.array([[0.35],[0.9],[0.58],[0.78]])
w1 = np.random.rand(3,4)  # w1 随机初始权重 y=wx+b 利用梯度下降法优化权重
print('w1:',w1)           # 通过调整 w使得一类x运算完之后都是0,另外一类x运算完都是1
w2 = np.random.rand(2,3)
print('w2:',w2)
real = np.array([[0.5],[0.7]])
for i in range(100):
    output1 = sigmoid(np.dot(w1,input1)) #中间层
    output2 = sigmoid(np.dot(w2,output1)) #输出层
    cost = np.square(real-output2)/2 #计算误差
    dalta2 = output2*(1-output2)*(real-output2) #梯度
    dalta1 = output1*(1-output1)*w2.T.dot(dalta2) #梯度
    w2 = w2+dalta2.dot(output1.T) #更新w2
    w1 = w1+dalta1.dot(input1.T) #更新w1
    print(output1)
    print(output2)
    print(cost)

CNN(卷积神经网络)提取图像特征_第1张图片

你可能感兴趣的:(深度学习)