1

このチュートリアルに従って、テンソルフロー フェデレーションを開始します。私の目的は、サーバーに送信される前に、クライアントの勾配値を操作してフェデレーション sgd (フェデレーション avg ではない) を実行することです。

先に進む前に、フェデレーテッド sgd プロセスを簡単に繰り返すと、各ターンで、クライアントは計算された勾配 (更新された重みではなく) をサーバーに送信し、サーバーはそれらを集約して、更新されたモデルをクライアントにブロードキャストします。

これまでに収集したことから、前述のチュートリアルのbuild_federated_sgd_process代わりに関数を使用build_federated_averaging_processして、上記の方法でフェデレーション sgd を実行できます。

私が迷っているのは、グラデーションをサーバーに送信する前に、クライアントのグラデーションをクリップし、それらにノイズを追加する必要があります (グラデーション値ごとに個別に生成されます)。その方法がわかりません。ノイズの生成は簡単ですが、勾配にノイズを適用できるようにするには、どの関数を変更/実装する必要がありますか?

4

1 に答える 1