44、深度学习-自学之路-自己搭建深度学习框架-6、自动优化,就是把原来的权重更新的部分用面向对象的方式再写一次
Predict# Compare''''''
·
import numpy as np
np.random.seed(1)
data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
target = np.array([[0], [1], [0], [1]])
#weights_0_1 = np.random.rand(2, 3)
#weights_1_2 = np.random.rand(3, 1)
weights_0_1 = np.array([[0.1, 0.2, 0.3],
[0.2, 0.3, 0.4]])
weights_1_2 = np.array([[0.1], [0.2], [0.3]])
for i in range(10):
# Predict
layer_1 = data.dot(weights_0_1)
layer_2 = layer_1.dot(weights_1_2)
# Compare
diff = 2*(layer_2 - target)
sqdiff = ((layer_2 - target) * (layer_2 - target))
loss = sqdiff.sum(0) # mean squared error loss
# Learn: this is the backpropagation piece
layer_1_grad = diff.dot(weights_1_2.transpose())
weight_1_2_update = layer_1.transpose().dot(diff)
weight_0_1_update = data.transpose().dot(layer_1_grad)
weights_1_2 -= weight_1_2_update * 0.1
weights_0_1 -= weight_0_1_update * 0.1
print(loss[0])
'''
1.0952000000000002
0.6129140655015936
0.32195987524699904
0.2110698255310266
0.15398367910209976
0.11124317838213824
0.07869159455532486
0.054482692309687476
0.036943246165084605
0.02456437411947067
'''
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)