码迷,mamicode.com
首页 > 其他好文 > 详细

神经网络fully_connected层的forward 和backward实现

时间:2020-02-21 16:15:34      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:定义   cte   tar   des   一个   process   说明   pytho   拖拽   

 

接着上篇tensorflow compute graph的理解,其中operation node 需要给运算定义forward 和backward函数。这篇中我们实现一个简单的fully_connected layer的forward 和backward 函数:

class fullyconnect(Operation):
    def __init__(self, x, w, b): 
      super().__init__([x, w, b]) 
      self.x = x 
      self.w = w 
      self.b = b 
    def forward(self, x, w, b): 
      return x.dot(w)+b
    def backward(self, upstream_grad):
      dX = upstream_grad.dot(self.w.T)
      dW = (self.x.T).dot(upstream_grad)
      db = np.sum(upstream_grad)
      return dX, [dW, db]

 

技术图片

具体举一个简单的全连接网络结构来说明,为什么backward的中dX,dW,db的计算:

?

技术图片?

技术图片

?

神经网络fully_connected层的forward 和backward实现

标签:定义   cte   tar   des   一个   process   说明   pytho   拖拽   

原文地址:https://www.cnblogs.com/fanhaha/p/12341568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!