問題タブ [sgd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - tensorflow 連合 sgd でクライアント勾配を操作する方法
このチュートリアルに従って、テンソルフロー フェデレーションを開始します。私の目的は、サーバーに送信される前に、クライアントの勾配値を操作してフェデレーション sgd (フェデレーション avg ではない) を実行することです。
先に進む前に、フェデレーテッド sgd プロセスを簡単に繰り返すと、各ターンで、クライアントは計算された勾配 (更新された重みではなく) をサーバーに送信し、サーバーはそれらを集約して、更新されたモデルをクライアントにブロードキャストします。
これまでに収集したことから、前述のチュートリアルのbuild_federated_sgd_process
代わりに関数を使用build_federated_averaging_process
して、上記の方法でフェデレーション sgd を実行できます。
私が迷っているのは、グラデーションをサーバーに送信する前に、クライアントのグラデーションをクリップし、それらにノイズを追加する必要があります (グラデーション値ごとに個別に生成されます)。その方法がわかりません。ノイズの生成は簡単ですが、勾配にノイズを適用できるようにするには、どの関数を変更/実装する必要がありますか?