日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TF实现多minibatch梯度累加及反向更新

發布時間:2024/4/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TF实现多minibatch梯度累加及反向更新 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考鏈接:

TF中optimizor源碼:

https://blog.csdn.net/Huang_Fj/article/details/102688509

如何累加梯度進行反向:

https://stackoverflow.com/questions/46772685/how-to-accumulate-gradients-in-tensorflow

https://blog.csdn.net/weixin_41560402/article/details/106930463

問題背景及解決:

在顯卡資源有限的情況下,想要增加batch_size的大小,于是可以想到將一個大的batch分解成許多的mini_batch前傳,并同時將梯度累加,達到batch_size大小之后反向跟新梯度。

操作也很簡單,實際上就是將optimizor分解為compute_gradients和apply_gradients兩步,并在第一步之后累加梯度即可,具體可以看參考鏈接里面的optimizor解析,這里也貼一下:

如何進行梯度累加,并更新梯度可以參考上面兩個鏈接,比較詳細

def minimize(self, loss, global_step=None, var_list=None,gate_gradients=GATE_OP, aggregation_method=None,colocate_gradients_with_ops=False, name=None,grad_loss=None):grads_and_vars = self.compute_gradients(loss, var_list=var_list, gate_gradients=gate_gradients,aggregation_method=aggregation_method,colocate_gradients_with_ops=colocate_gradients_with_ops,grad_loss=grad_loss)vars_with_grad = [v for g, v in grads_and_vars if g is not None]if not vars_with_grad:raise ValueError("No gradients provided for any variable, check your graph for ops"" that do not support gradients, between variables %s and loss %s." %([str(v) for _, v in grads_and_vars], loss))return self.apply_gradients(grads_and_vars, global_step=global_step,name=name)

?

總結

以上是生活随笔為你收集整理的TF实现多minibatch梯度累加及反向更新的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。