<p>As of release <code>0.2.0</code>, TensorFlow Federated includes an implementation of FedSGD (<a href="https://www.tensorflow.org/federated/api_docs/python/tff/learning/build_federated_sgd_process" rel="nofollow noreferrer"><code>tff.learning.build_federated_sgd_process()</code></a>), as described by the paper:</p>

<p><em>Communication-Efficient Learning of Deep Networks from Decentralized Data</em>
H. Brendan McMahan, Eider Moore, Daniel Ramage, Seth Hampson, Blaise Aguera y Arcas. AISTATS 2017.
<a href="https://arxiv.org/abs/1602.05629" rel="nofollow noreferrer">https://arxiv.org/abs/1602.05629</a></p>

<p>Code can be found in <a href="https://github.com/tensorflow/federated/blob/master/tensorflow_federated/python/learning/federated_sgd.py" rel="nofollow noreferrer"><code>tensorflow_federated/python/learning/federated_sgd.py</code></a>, which shows aggregating gradients on the client and sending back an aggregated gradient to the server. </p>
Can I aggregate over gradients in tensorflow-federated?
<p>Currently, the tensorflow's federated_learn seem to only include things like federated_averaging that work on the model's trainable variables. How would I go about implementing algorithms that require the gradients for aggregation at the server?</p>

<p>Thanks</p>