反向傳播組件實現

def backward_propagation(w,b,X,Y,num,learning_rate,print_cost=False):
    cost=[]
    
    for i in range(num):
        grad,cost = forward_propagate(w,b,X,Y)
        
        dw = grad['dw']#獲取此次迭代返回的權重梯度
        db = grad['db']#獲取此次迭代返回的偏置梯度
        
        w=w - learning_rate *dw #權重更新
        b= b-learning_rate*db   #偏置值更新
        
        if i% 100 == 0: #如果迭代100次
            cost.append(cost)  #更新損失值
        if print_cost and i%100 == 0: 
            print("cost after iteration %i:%f" %(i,cost))
            
    params = {"w":w,
              "b":b} #打包權重值和偏置值
    
    grads = {"dw":dw,
            "db":db} #打包權重梯度和偏置梯度
    return params,grads,cost

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章