{"meta":{"sha":"8309d0c33997c899d7c47ff1411858f1c11766eb"},"files":[{"path":".github/actions/benchmark-install/action.yml","mode":"100644","sha":"706998e3f2e9ae5741ad545a81946e04be93a8a8","size":390},{"path":".github/actions/full-install/action.yml","mode":"100644","sha":"b80d38a8e63865498c2565a303f9938c91652d2c","size":703},{"path":".github/actions/python-install/action.yml","mode":"100644","sha":"588db6f4ce4736621aad5bb58764bc21604c11cf","size":494},{"path":".github/dependabot.yaml","mode":"100644","sha":"6cc00712d1c7c45d8bf82580e66f448dbac11070","size":154},{"path":".github/workflows/build.yaml","mode":"100644","sha":"e31fff2be8b019ca8dcaaff0cb1ed4dec625a23f","size":5698},{"path":".github/workflows/publish-docs.yaml","mode":"100644","sha":"cc554a33d0d93a2da9c153dffb0d063fe426ffa7","size":1043},{"path":".github/workflows/publish-wheel.yaml","mode":"100644","sha":"477ee5e57952f11afbe515703a65e207256a1106","size":1517},{"path":".gitignore","mode":"100644","sha":"28a7c5ce234de945ebf3cc2898cb1654fc3d8997","size":3506},{"path":".pre-commit-config.yaml","mode":"100644","sha":"e91a0b0f7cfd4077a24072baef7ece60f8d53a5b","size":1412},{"path":"CHANGELOG.md","mode":"100644","sha":"cda37381d64399d761abb6f83670e4ec902bba4a","size":3823},{"path":"CITATION.cff","mode":"100644","sha":"5c73f90c6a390dc1e3c6dd0eeeae9cb56c5d8d2a","size":2081},{"path":"CODE_OF_CONDUCT.md","mode":"100644","sha":"66c83d2865ac6b235135af45709e929a279c5bad","size":3358},{"path":"CONTRIBUTING.md","mode":"100644","sha":"650a8aa12551ba069dbcd170aceab8618cf0c4d0","size":646},{"path":"Dockerfile","mode":"100644","sha":"f8fdffb0ba91372ec8aa9ab79284023461257a22","size":2575},{"path":"LICENSE","mode":"100644","sha":"d645695673349e3947e8e5ae42332d0ac3164cd7","size":11358},{"path":"Makefile","mode":"100644","sha":"474c42f1b816a01dd84ec8acddc0563fab9f4583","size":1478},{"path":"README.md","mode":"100644","sha":"5020d785eef46d872d3c4f2a5432eaae5addd98e","size":5294},{"path":"VERSION","mode":"100644","sha":"cb0c939a936f142669d38cf1ece330266d730965","size":6},{"path":"benchmarks/README.md","mode":"100644","sha":"611b612f1a681cfcb6a5cb62d90bd8b06f9fdc56","size":3108},{"path":"benchmarks/dataset/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/dataset/argument_parsing.py","mode":"100644","sha":"33042849e43a657d3b213a71dcacb31910771a25","size":14710},{"path":"benchmarks/dataset/cifar10/README.md","mode":"100644","sha":"9620cc05135b05d485764ad22bb3625104b02b06","size":385},{"path":"benchmarks/dataset/cifar10/__init__.py","mode":"100644","sha":"2702eea293594fa38d12bdb624ee05160e27f87f","size":228},{"path":"benchmarks/dataset/cifar10/download_preprocess.py","mode":"100644","sha":"2e715c4172b60ea5ce2411b1414779bfe2c09da4","size":2669},{"path":"benchmarks/dataset/cifar10/numpy.py","mode":"100644","sha":"3321741058e8a398eda9c064ef55142cad417134","size":6462},{"path":"benchmarks/dataset/femnist.py","mode":"100644","sha":"e5318e2c8ce2844987e464e90dc37b3650bb25bd","size":3920},{"path":"benchmarks/dataset/flair/__init__.py","mode":"100644","sha":"b2fa017d7f9775e69b8a15fe31784392c31e4cb1","size":3781},{"path":"benchmarks/dataset/flair/common.py","mode":"100644","sha":"6e4370aa21c5c97e4c8b64e320588a3ac8e8c1ad","size":6167},{"path":"benchmarks/dataset/flair/download_preprocess.py","mode":"100644","sha":"f6e833e064e70b9aea05156d0f72380a866228bf","size":9040},{"path":"benchmarks/dataset/flair/numpy.py","mode":"100644","sha":"05d65e6215aff1f9557c8de87966fd3d3b0150c4","size":6181},{"path":"benchmarks/dataset/flair/pytorch.py","mode":"100644","sha":"d046c6726d28662ec4cfe1135bb130caf49671cf","size":3444},{"path":"benchmarks/dataset/hugging_face/__init__.py","mode":"100644","sha":"4f1a4fbc41443cad53b57ae670f240839453d139","size":1563},{"path":"benchmarks/dataset/hugging_face/alpaca.py","mode":"100644","sha":"1efecdd746ee6d9b71bde7cb8c47d223d9415835","size":7302},{"path":"benchmarks/dataset/hugging_face/aya.py","mode":"100644","sha":"4cfcd375730dbcb1f37ca49088ef1cdd27a24430","size":3777},{"path":"benchmarks/dataset/hugging_face/oasst.py","mode":"100644","sha":"c513504e57bf9ed08d6c36cfeb79ec11d689dbbe","size":5696},{"path":"benchmarks/dataset/reddit.py","mode":"100644","sha":"ec91a7273488a2720e5dc0c820355c0c9491c001","size":10740},{"path":"benchmarks/dataset/stackoverflow/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/dataset/stackoverflow/download_preprocess.py","mode":"100644","sha":"006545049271fb83ebf799dfa4da71663fc3f414","size":13819},{"path":"benchmarks/dataset/stackoverflow/numpy.py","mode":"100644","sha":"ac0333caf4bb20c756a0c363d0be6fbca207c931","size":7322},{"path":"benchmarks/dataset/stackoverflow/pytorch.py","mode":"100644","sha":"bb4572ec6a63857f46993ba42d2e435e264bf611","size":5018},{"path":"benchmarks/dataset/stackoverflow/tensorflow_v2.py","mode":"100644","sha":"6d265d6d525b6c67506aa045998dea54bf50d2ed","size":4548},{"path":"benchmarks/flair/README.md","mode":"100644","sha":"89e9fcf7524a2d2c656dd9db6a25110aed182405","size":3366},{"path":"benchmarks/flair/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/flair/argument_parsing.py","mode":"100644","sha":"b9b7ab0bd7b73227ce817a67582d9cd54d242222","size":505},{"path":"benchmarks/flair/configs/baseline.yaml","mode":"100644","sha":"7a91c9a00a29e49cefbeae7593ce862cd10843ab","size":1409},{"path":"benchmarks/flair/images/FLAIR_sample.jpeg","mode":"100644","sha":"1fc365ed0cf7afa404bbb4567d59e0b3ce55e699","size":333751},{"path":"benchmarks/flair/train.py","mode":"100644","sha":"076f6ccbfa112a86ad538aa61b50dbedc903ad48","size":7049},{"path":"benchmarks/image_classification/README.md","mode":"100644","sha":"be1863bf68820e19c80f14b7383e26d452a411d1","size":1342},{"path":"benchmarks/image_classification/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/image_classification/configs/baseline.yaml","mode":"100644","sha":"36303f858f9b5e8180d278093a804b06a7af6beb","size":1504},{"path":"benchmarks/image_classification/configs/femnist.yaml","mode":"100644","sha":"3293d0c1414d3d5b31bfcf913e3400efa0258cba","size":743},{"path":"benchmarks/image_classification/images/femnist-character-dist.png","mode":"100644","sha":"5ba5a4459ad479475764b64bcd873c9398066d06","size":88523},{"path":"benchmarks/image_classification/images/femnist-data-dist.png","mode":"100644","sha":"edd592e5abbd3d3df270f5845a58603f6152c442","size":63012},{"path":"benchmarks/image_classification/mlx/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/image_classification/mlx/train.py","mode":"100644","sha":"1faa0aed05211974fe045a3c1467453ac294371f","size":5947},{"path":"benchmarks/image_classification/pytorch/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/image_classification/pytorch/train.py","mode":"100644","sha":"402a8de66f3b5b1b1dfe90a986e91b300eaf294f","size":6100},{"path":"benchmarks/image_classification/tf/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/image_classification/tf/train.py","mode":"100644","sha":"e50935a2aaf072477b2bcc27b71a2a4dfac28de6","size":6389},{"path":"benchmarks/llm/README.md","mode":"100644","sha":"b9ae583658349853deb598b201f4e42a9a631b3f","size":1178},{"path":"benchmarks/llm/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/llm/argument_parsing.py","mode":"100644","sha":"269c9b4e4d3468bd700d0d420d1b041a9db7e1ed","size":7136},{"path":"benchmarks/llm/configs/alpaca.yaml","mode":"100644","sha":"ea98a437f4fb3a2f57a0caad7ed57b6221569cdc","size":1106},{"path":"benchmarks/llm/configs/aya.yaml","mode":"100644","sha":"2eb9ad0cd905c11cc5a0809979acaaed80883580","size":1032},{"path":"benchmarks/llm/configs/oasst.yaml","mode":"100644","sha":"b5c82012c2b41f1d80a119024679940e41a71804","size":1035},{"path":"benchmarks/llm/train.py","mode":"100644","sha":"4f9a4b22c47edc644bb2ee73b7d27e6fedca98cf","size":7133},{"path":"benchmarks/lm/README.md","mode":"100644","sha":"bebccbec038f5b74df54057ed16b8b026f65236c","size":1148},{"path":"benchmarks/lm/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/lm/argument_parsing.py","mode":"100644","sha":"c7eff8f29a6cf58fbf3e4ed7130dff73405c5865","size":1831},{"path":"benchmarks/lm/configs/baseline.yaml","mode":"100644","sha":"dc7f737d248fa2bb4337d94e4cfdc765ae79b893","size":2056},{"path":"benchmarks/lm/mlx/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/lm/mlx/train.py","mode":"100644","sha":"f970e5152c474bcfda8d7de916666591b762527a","size":6982},{"path":"benchmarks/lm/pytorch/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/lm/pytorch/train.py","mode":"100644","sha":"44d41d33f702957aa2cf1283a6b763a813acf672","size":7355},{"path":"benchmarks/lm/tf/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/lm/tf/train.py","mode":"100644","sha":"0b66e4a7302ba1ae8e3ff7cbd3fc275e7332bf97","size":8477},{"path":"benchmarks/model/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/model/argument_parsing.py","mode":"100644","sha":"be93daaa2adb95b4cbc1baf1500b6c8742581d04","size":8950},{"path":"benchmarks/model/hugging_face/__init__.py","mode":"100644","sha":"8a2f579737375381ad7f30ff7fe353569d339028","size":5417},{"path":"benchmarks/model/mlx/__init__.py","mode":"100644","sha":"35582d0b962cdbdc221e7e93a22d03d5f4d2c025","size":105},{"path":"benchmarks/model/mlx/cnn.py","mode":"100644","sha":"4055f234dc50ed226f4ea0f1fe982f1bafae567a","size":2400},{"path":"benchmarks/model/mlx/transformer.py","mode":"100644","sha":"41d27fb6b36f860c8830173d1337848f08910402","size":6613},{"path":"benchmarks/model/numpy/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/model/numpy/layer.py","mode":"100644","sha":"b253f03e91aa717a60d45a7650fdf541cee34e42","size":715},{"path":"benchmarks/model/numpy/metrics.py","mode":"100644","sha":"e084917df556c606d27b01f9142d84d534bd426f","size":18984},{"path":"benchmarks/model/pytorch/__init__.py","mode":"100644","sha":"8ef95f06a3788debaa6cb5e672da131e4e6cfbaa","size":181},{"path":"benchmarks/model/pytorch/cnn.py","mode":"100644","sha":"c326fe95fd7b2a672e2231149115f6bb18303f71","size":8864},{"path":"benchmarks/model/pytorch/dnn.py","mode":"100644","sha":"daa0dbc77b89015d240b4093ad70ae5914735e59","size":1917},{"path":"benchmarks/model/pytorch/layer.py","mode":"100644","sha":"9d31b62360ae404e85f1374c6897e7edef769a8d","size":2550},{"path":"benchmarks/model/pytorch/lstm.py","mode":"100644","sha":"dffa386d254d49099a1b0d3ce0c0a535bd4f435d","size":5325},{"path":"benchmarks/model/pytorch/metrics.py","mode":"100644","sha":"1dec74699ee0916287fedb7619c26ae072a1593b","size":1977},{"path":"benchmarks/model/pytorch/module_modification.py","mode":"100644","sha":"a685ac3e9d8893b022467c883afa2fdc3412894f","size":4432},{"path":"benchmarks/model/pytorch/transformer.py","mode":"100644","sha":"2445651f7ff8b75db1444659e9273cc30e6bd134","size":4493},{"path":"benchmarks/model/tf2/__init__.py","mode":"100644","sha":"ec2fc0ac436325746b6061d1be314a1cdda2b14e","size":173},{"path":"benchmarks/model/tf2/cnn.py","mode":"100644","sha":"8b8df2df7d1ec34ed3f911098cc7df42a945f400","size":4399},{"path":"benchmarks/model/tf2/dnn.py","mode":"100644","sha":"e298a0791b6c7cd273b484e1708aa7843bffadc1","size":1698},{"path":"benchmarks/model/tf2/layer.py","mode":"100644","sha":"735927de594654c3da3d0d25d9fbf9903893fe49","size":3140},{"path":"benchmarks/model/tf2/lstm.py","mode":"100644","sha":"1df219163c6abf1155570e8bab27153b9a867b58","size":1907},{"path":"benchmarks/model/tf2/metrics.py","mode":"100644","sha":"703e397da40450bac2cd604f60dd56dad8afce5e","size":2539},{"path":"benchmarks/model/tf2/transformer.py","mode":"100644","sha":"9de9a967df72f0d329dca043ebebee9ed672c225","size":2762},{"path":"benchmarks/poetry.lock","mode":"100644","sha":"dcee7081a2e5eed02bad167bdae89b51b3accae1","size":378449},{"path":"benchmarks/pyproject.toml","mode":"100644","sha":"08209a8b3b21cb1dc29a8025bebfff7bca6743f9","size":2196},{"path":"benchmarks/test/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/test/conftest.py","mode":"100644","sha":"d1009207c911f7c6edd37dc0f705a533d53e7751","size":579},{"path":"benchmarks/test/dataset/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/test/dataset/cifar10/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/test/dataset/cifar10/test_download_preprocess.py","mode":"100644","sha":"99ee2db0a778c4f0a8db1d4e935304d5dfc0e8a4","size":2042},{"path":"benchmarks/test/dataset/stackoverflow/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/test/dataset/stackoverflow/test_download_preprocess.py","mode":"100644","sha":"42cf0ae8600adbdf81af5b67e46c0dc2768de520","size":3584},{"path":"benchmarks/test/dataset/stackoverflow/test_stackoverflow.py","mode":"100644","sha":"846d1d473232b770786745563c5655b3aec1c38a","size":7129},{"path":"benchmarks/test/model/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/test/model/numpy/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/test/model/numpy/test_metrics.py","mode":"100644","sha":"709a40ad16c2ad671fc9e9589a0981d16f1410ac","size":5811},{"path":"benchmarks/test/model/pytorch/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/test/model/pytorch/test_cnn.py","mode":"100644","sha":"6e935f563bdd7d7c6fab9a37e94ce122414812c7","size":1862},{"path":"benchmarks/test/model/pytorch/test_dnn.py","mode":"100644","sha":"ea6504e3ea1a3f210d4daf01c0e91becc0699add","size":1623},{"path":"benchmarks/test/model/pytorch/test_lstm.py","mode":"100644","sha":"d3cc5a029ceaa4288f53ab87c34bc1815dd6c19f","size":2949},{"path":"benchmarks/test/test_argument_parsing.py","mode":"100644","sha":"28d1770d1a453aac157a01196880c1a55739cfe7","size":1532},{"path":"benchmarks/utils/__init__.py","mode":"100644","sha":"14e0b53a889a057ede7ef4b7090ac17f0a216297","size":36},{"path":"benchmarks/utils/argument_parsing.py","mode":"100644","sha":"e965948d8ed20a8ac5a4574d59305096bce1699d","size":20480},{"path":"benchmarks/utils/callback/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"benchmarks/utils/callback/hugging_face.py","mode":"100644","sha":"1c99244d85124cd8546f7c99b7a6bd0325ea60c7","size":2114},{"path":"benchmarks/utils/callback/mlx.py","mode":"100644","sha":"26dbf8f69ae81b34080be2fd2a7cd454efd16486","size":1276},{"path":"benchmarks/utils/callback/pytorch.py","mode":"100644","sha":"8d161ab65ef30fc038a46711114646cb1480151d","size":1495},{"path":"benchmarks/utils/callback/tensorflow.py","mode":"100644","sha":"29b3694d65a6a0d141248fedd6d594433a3acbf7","size":3407},{"path":"benchmarks/utils/logging.py","mode":"100644","sha":"06b9d18ddbdd9a310a57d2c050917601b399ce5f","size":361},{"path":"benchmarks/utils/weighting.py","mode":"100644","sha":"21cc535134daeb7e1d345f328547db701969d333","size":1183},{"path":"build_scripts/install_pytorch_always_true.sh","mode":"100755","sha":"8a32fe9ab8b6a03187ae55e998acacea4b96c062","size":274},{"path":"codecov.yaml","mode":"100644","sha":"058cfb76552d027f9be6211a32fac87dc01a2ab4","size":138},{"path":"docs/Makefile","mode":"100644","sha":"d0c3cbf1020d5c292abdedf27627c6abe25e2293","size":638},{"path":"docs/source/conf.py","mode":"100644","sha":"8c0f4f62f6b4ef3b5959081e274f17531e4d4115","size":1343},{"path":"docs/source/guides/fl_introduction.rst","mode":"100644","sha":"9cb95928018d2f89422db4834a0d69a5894af523","size":16091},{"path":"docs/source/guides/simulation_distributed.rst","mode":"100644","sha":"818f18d110eecc37352c364992a841deded317ed","size":11826},{"path":"docs/source/images/distributed-sim-eval-duration.png","mode":"100644","sha":"d6036850895624671ea3377b000b275cd0cef20a","size":93900},{"path":"docs/source/images/distributed-sim-viz.png","mode":"100644","sha":"83306df28610567ec35295cc4963158b1a1b8a5d","size":131331},{"path":"docs/source/index.rst","mode":"100644","sha":"18e1a71c42e2f1b7c69df10f3f9942afdcb9cf5a","size":2829},{"path":"docs/source/installation.rst","mode":"100644","sha":"4c7f940ea8f1b790cec3a9fec28a196cbed09096","size":1235},{"path":"docs/source/reference/aggregate.rst","mode":"100644","sha":"bd0bd7d7650e4f967e535528cf57cf47ffe5601d","size":465},{"path":"docs/source/reference/algorithm.rst","mode":"100644","sha":"d606079ecbc7497171a30b6915fca352aa9a00ac","size":817},{"path":"docs/source/reference/callback.rst","mode":"100644","sha":"2fa66817f0ed54057e207b022067649dad4d7b87","size":721},{"path":"docs/source/reference/common_types.rst","mode":"100644","sha":"ffaee6ec5f806b7efdd8680bab29bbd2bec64247","size":71},{"path":"docs/source/reference/context.rst","mode":"100644","sha":"fcdfa4b918b9b741b6387095995ed29b0b6d014e","size":57},{"path":"docs/source/reference/data.rst","mode":"100644","sha":"6e543f22821f8ada03f78a9ca0c1b2bd2ead56f6","size":1236},{"path":"docs/source/reference/environment_variables.rst","mode":"100644","sha":"18397bceb08eb9142582e99e2d12e0a6793c5d89","size":709},{"path":"docs/source/reference/exception.rst","mode":"100644","sha":"aff0d669efab9661718e72b8477c5c0c7a937186","size":80},{"path":"docs/source/reference/hyperparam.rst","mode":"100644","sha":"279be960310ab2700b907a56f576dde9c5622a37","size":133},{"path":"docs/source/reference/internal/bisect.rst","mode":"100644","sha":"3e4d3b305cdf5d092d0716f3eaa6ccfd53213c05","size":64},{"path":"docs/source/reference/internal/bridge.rst","mode":"100644","sha":"7ee1ab0e59c347c66843f7030fa772952affd1a9","size":891},{"path":"docs/source/reference/internal/distribution.rst","mode":"100644","sha":"6fca44a4614062144aad2390b9f6f670224c843d","size":491},{"path":"docs/source/reference/internal/index.rst","mode":"100644","sha":"18e6ebdef80e40508fe0852d1883acc7207a4e28","size":466},{"path":"docs/source/reference/internal/ops.rst","mode":"100644","sha":"ae2c4224bae3922e7bd2c767b8edf05108987a4d","size":575},{"path":"docs/source/reference/internal/platform.rst","mode":"100644","sha":"f8e79be3e77a8e1b94097ae5ad4cf9b1c63f66d6","size":202},{"path":"docs/source/reference/internal/privacy_loss_bound.rst","mode":"100644","sha":"c941ecd940dc0e5d0b64acde084ca4e0cfcba8b3","size":100},{"path":"docs/source/reference/internal/tree.rst","mode":"100644","sha":"349860678b686a1ca68c126dc53a5ac150f571b4","size":394},{"path":"docs/source/reference/metrics.rst","mode":"100644","sha":"075329b971e175a2a33ed6445c777f2765b5fd09","size":58},{"path":"docs/source/reference/model.rst","mode":"100644","sha":"2e0f175f9aa51c74c4f027c1be0401cbab37db7d","size":467},{"path":"docs/source/reference/postprocessor.rst","mode":"100644","sha":"6334d2ce8b58ba4e0d201052a0002133dd429ea3","size":155},{"path":"docs/source/reference/privacy.rst","mode":"100644","sha":"0edb4f4fa88ecaa07328cd898d13bddc750674f7","size":1408},{"path":"docs/source/reference/stats.rst","mode":"100644","sha":"91893c2070e48a14cb294b0cf3ca2506d72fb466","size":92},{"path":"docs/source/reference/tree.rst","mode":"100644","sha":"91c594d85a823313677be82d3b64d5b029da8c68","size":280},{"path":"docs/source/support/contributing.rst","mode":"100644","sha":"45bd482977c2144ff4382ddddacea66c46f392cf","size":13659},{"path":"pfl/__init__.py","mode":"100644","sha":"1c08c400525eae91fc5ef985b42097ad823ee411","size":137},{"path":"pfl/aggregate/__init__.py","mode":"100644","sha":"14e0b53a889a057ede7ef4b7090ac17f0a216297","size":36},{"path":"pfl/aggregate/base.py","mode":"100644","sha":"2d277aa095714b95e412ebf1b8d4fbb16f4e166d","size":5996},{"path":"pfl/aggregate/data_transport.py","mode":"100644","sha":"41a0b4f8c25cca6abc7b249a790a1ef8d5d03ac7","size":2471},{"path":"pfl/aggregate/simulate.py","mode":"100644","sha":"7e494c40ab86999d0f55174d514f7b0c1c1976d5","size":10088},{"path":"pfl/aggregate/weighting.py","mode":"100644","sha":"90938d79e57dbd86a0dec7c26af39ea68941e32c","size":2747},{"path":"pfl/algorithm/__init__.py","mode":"100644","sha":"43efa5f462283a05ca76058713bbbbf4398147f6","size":245},{"path":"pfl/algorithm/algorithm_utils.py","mode":"100644","sha":"efaf123c2b30213b503a105e3092ea9473f17e8c","size":2267},{"path":"pfl/algorithm/base.py","mode":"100644","sha":"756c0768a97cd992b79b395bc28b2bfc335a1814","size":25747},{"path":"pfl/algorithm/expectation_maximization_gmm.py","mode":"100644","sha":"d097156c81b9b71305b4ed07622fd9003b4c7de8","size":9917},{"path":"pfl/algorithm/federated_averaging.py","mode":"100644","sha":"1c6c0ff67b3eff547cbf1a2417966cadca987d41","size":2126},{"path":"pfl/algorithm/fedprox.py","mode":"100644","sha":"904f8f5a0040856c554a17dbadc19d67af7d8edd","size":4945},{"path":"pfl/algorithm/reptile.py","mode":"100644","sha":"aac25fa017efe7228352eeb2b3b94dfada6f9af1","size":379},{"path":"pfl/algorithm/scaffold.py","mode":"100644","sha":"2accb7d30721c4e8e22801f6f43ab97b734a30a8","size":7527},{"path":"pfl/callback/__init__.py","mode":"100644","sha":"d442367f4b763607b38236e3146ccaa7a6a047a6","size":119},{"path":"pfl/callback/aggregate_metrics_to_disk.py","mode":"100644","sha":"4b875e5ec6f990c951073a64f84780fc715a1acf","size":4467},{"path":"pfl/callback/base.py","mode":"100644","sha":"89206c1d75d1db086db64c0663f5610bdee76a50","size":1628},{"path":"pfl/callback/central_evaluation.py","mode":"100644","sha":"7662b7508f3f597cfc0ae73a9d50fab8dac56679","size":8641},{"path":"pfl/callback/checkpoint.py","mode":"100644","sha":"e63730abc77eeccd32a6b96f62de5435d2ebed99","size":7593},{"path":"pfl/callback/convergence.py","mode":"100644","sha":"db7dee88b3685e130b579d343b8d11d7359b34fe","size":3722},{"path":"pfl/callback/early_stopping.py","mode":"100644","sha":"2ae641a92e8501793554ad5b8eb350b19edbe45a","size":3123},{"path":"pfl/callback/profiler.py","mode":"100644","sha":"19fbcd81db045eeb76e2a6d6430b8ac8ff679468","size":4298},{"path":"pfl/callback/restore_training.py","mode":"100644","sha":"1891e12c662bfecd6d78a04f6bd9d937a6060394","size":4294},{"path":"pfl/callback/stopwatch.py","mode":"100644","sha":"8fcd1626b100adc6af0b286cb7b0c21a9ea4bc1f","size":2494},{"path":"pfl/callback/tensorboard.py","mode":"100644","sha":"e0ea2ff998efcab9c501482e9c0cf6cbc28dba47","size":7134},{"path":"pfl/callback/track_best_overall_metrics.py","mode":"100644","sha":"68c656303c3e9b964f96b87e96ab07e3fd485331","size":4857},{"path":"pfl/callback/wandb.py","mode":"100644","sha":"45855e8fbc9f63fd2177689e2c4346f053cba625","size":2955},{"path":"pfl/common_types.py","mode":"100644","sha":"d8d06931e7ab96683ca7b43a8e0fe67371748d70","size":2084},{"path":"pfl/context.py","mode":"100644","sha":"c14d7dbc369c03b245853f2ea859445580bc6176","size":3583},{"path":"pfl/data/__init__.py","mode":"100644","sha":"a25a16956c12671a9b20046fa522c0597b6f6552","size":428},{"path":"pfl/data/dataset.py","mode":"100644","sha":"c254230cefaf18ad8b3faaf424e27369e9a8cc58","size":15852},{"path":"pfl/data/federated_dataset.py","mode":"100644","sha":"47440d921f9559dcce7bae78163a5e1d32297e23","size":22194},{"path":"pfl/data/partition.py","mode":"100644","sha":"e14dd97dc207e4cb1b827d133df80f68d8e2039b","size":4513},{"path":"pfl/data/pytorch.py","mode":"100644","sha":"ce8d60065c67ec2a53ade8e3944232a9e186dd67","size":13949},{"path":"pfl/data/sampling.py","mode":"100644","sha":"72b49e977d8d689545471451960b392ee3957644","size":10635},{"path":"pfl/data/tensorflow.py","mode":"100644","sha":"16b77b6f1524ea10625b97cb9cdb1ca8a8989127","size":12816},{"path":"pfl/data/user_state.py","mode":"100644","sha":"4cd7862f4db92e4659ac82501bedc28516730b85","size":7848},{"path":"pfl/exception.py","mode":"100644","sha":"4b10ec37ff60ae5427a30a0dc1b9d56ca43ebc21","size":511},{"path":"pfl/hyperparam/__init__.py","mode":"100644","sha":"ac61a3c716c8c1ab25840f1dd75f614ee9ddae96","size":283},{"path":"pfl/hyperparam/base.py","mode":"100644","sha":"bfdc23c6201c896fc47c1b54c48eabeb4acc3f24","size":7207},{"path":"pfl/internal/__init__.py","mode":"100644","sha":"61456706128b09cf45efec9a2596ba4a8ce4ac2f","size":153},{"path":"pfl/internal/bisect.py","mode":"100644","sha":"afce5f9897b4394d16ef7c956f494e7251a6ae10","size":2569},{"path":"pfl/internal/bridge/__init__.py","mode":"100644","sha":"55d67d0889ba29e5041e001fdbda1994da8583a5","size":81},{"path":"pfl/internal/bridge/base.py","mode":"100644","sha":"d650d6ef312f94bf5b4e5728b3902d6578f13cd7","size":6416},{"path":"pfl/internal/bridge/factory.py","mode":"100644","sha":"920279bd6cba1f93533f7cb3b2a51a2e411e3335","size":3843},{"path":"pfl/internal/bridge/mlx/__init__.py","mode":"100644","sha":"37a3790fbe405a5126ae872f83d7cb81fa4d8edd","size":67},{"path":"pfl/internal/bridge/mlx/sgd.py","mode":"100644","sha":"7d32db66a377849bb6745bb3cf205020a503dbf4","size":2345},{"path":"pfl/internal/bridge/numpy/__init__.py","mode":"100644","sha":"6b340fd3cabef9cb62031551878a31adbf20c23c","size":75},{"path":"pfl/internal/bridge/numpy/common.py","mode":"100644","sha":"b3a691e44fe24b144d7bf85d9f59ca77a47594ba","size":587},{"path":"pfl/internal/bridge/pytorch/__init__.py","mode":"100644","sha":"bbfd0573ca6276e6e92a658f0f73886b226ac5f6","size":154},{"path":"pfl/internal/bridge/pytorch/common.py","mode":"100644","sha":"b30b51411ad2c9169b249d1057b4f31f1513526b","size":1160},{"path":"pfl/internal/bridge/pytorch/ftrl.py","mode":"100644","sha":"936f5523225196e6ab244eabf74cac811084e679","size":2603},{"path":"pfl/internal/bridge/pytorch/proximal.py","mode":"100644","sha":"ac826ace76e0b3f4751be11234df0b45bcd71b1b","size":2113},{"path":"pfl/internal/bridge/pytorch/scaffold.py","mode":"100644","sha":"5bf71b964077d6ee765fd476841b287252a76c00","size":2255},{"path":"pfl/internal/bridge/pytorch/sgd.py","mode":"100644","sha":"eb214d4f0f4ff96353a1c78fdf616b01d65ab04b","size":1483},{"path":"pfl/internal/bridge/pytorch/utils.py","mode":"100644","sha":"a0b7f9369f030490f8736e59c82fa7b05039df1a","size":1172},{"path":"pfl/internal/bridge/tensorflow/__init__.py","mode":"100644","sha":"649bb35884257e844a0e973d48ba2ef84d1fe3f0","size":164},{"path":"pfl/internal/bridge/tensorflow/common.py","mode":"100644","sha":"d13ec67c41b6e339338b746f3650a7aea3e3ac0f","size":1331},{"path":"pfl/internal/bridge/tensorflow/ftrl.py","mode":"100644","sha":"07dcb10223d73be337c3ea73f4b72b7eefa741f9","size":2940},{"path":"pfl/internal/bridge/tensorflow/proximal.py","mode":"100644","sha":"4e67b1fab46763a91ed467e7e0965948c469e508","size":2413},{"path":"pfl/internal/bridge/tensorflow/sgd.py","mode":"100644","sha":"8d2cc4bfe3f1ece76d3265caab2773491cd21e2c","size":2326},{"path":"pfl/internal/distribution/__init__.py","mode":"100644","sha":"414741b9fb97b0eb2b82a0c62fabce121d0ebe80","size":213},{"path":"pfl/internal/distribution/diagonal_gaussian.py","mode":"100644","sha":"3d445cd0e12dcaca989978feb892131495db1bb5","size":4318},{"path":"pfl/internal/distribution/distribution.py","mode":"100644","sha":"d3806249d39fed19e14641a2ba5ed2e427000443","size":2264},{"path":"pfl/internal/distribution/log_float.py","mode":"100644","sha":"0dd8a397d46667a61a98929a6f56cc259c07cb29","size":6125},{"path":"pfl/internal/distribution/log_float_functions.py","mode":"100644","sha":"3b042e21a936b2dffa541660e4551c571e91f1c0","size":2696},{"path":"pfl/internal/distribution/mixture.py","mode":"100644","sha":"821e7b6fc8c3fa31ea181454c46bd670e18eaa55","size":3542},{"path":"pfl/internal/logging_utils.py","mode":"100644","sha":"c68e8f940df56c51a5a9184f15b8ed1b18932673","size":1625},{"path":"pfl/internal/ops/__init__.py","mode":"100644","sha":"2e34ec205a897927f2ec17b1785ede67301acb4d","size":77},{"path":"pfl/internal/ops/common_ops.py","mode":"100644","sha":"9b815123a2ce557040413e7056e25b896b760af5","size":3750},{"path":"pfl/internal/ops/distributed.py","mode":"100644","sha":"a0e35fae9c4684fef31ae271c8e70129d6a7a9fa","size":4152},{"path":"pfl/internal/ops/framework_types.py","mode":"100644","sha":"cb007a337245dcf2fe0f3e81c9ca50aca92df007","size":175},{"path":"pfl/internal/ops/mlx_ops.py","mode":"100644","sha":"53204c6ce59e1ffb98edc51e6d237def8d81d8d5","size":9702},{"path":"pfl/internal/ops/numpy_ops.py","mode":"100644","sha":"0894b6b18af8ec6f10ce627c44ff40ea8657ea5d","size":10232},{"path":"pfl/internal/ops/pytorch_ops.py","mode":"100644","sha":"18a7e52eee4e0c9eca0756604a4756f4b612b34e","size":18569},{"path":"pfl/internal/ops/selector.py","mode":"100644","sha":"7afa4657d5b050697eaf74aad549dc6558669df9","size":1771},{"path":"pfl/internal/ops/tensorflow_ops.py","mode":"100644","sha":"67cc918843232af96c58ce77aa179036bc1690bb","size":23778},{"path":"pfl/internal/platform/__init__.py","mode":"100644","sha":"1b674a27b018349f9f815be448a246ec9478f9ce","size":188},{"path":"pfl/internal/platform/generic_platform.py","mode":"100644","sha":"90d462ef8afd05d78d4a19fd177e7e1c0b21b549","size":4668},{"path":"pfl/internal/platform/selector.py","mode":"100644","sha":"03b22289cd06eba9a09287da73647daa91547848","size":835},{"path":"pfl/internal/privacy_loss_bound.py","mode":"100644","sha":"31917cd7e619c1bdf838bd24e259624530a8681f","size":7155},{"path":"pfl/internal/tree/__init__.py","mode":"100644","sha":"a29e81781d126d8648cd582e31565b4ac274eec7","size":304},{"path":"pfl/internal/tree/gbdt.py","mode":"100644","sha":"f62b4e382ee48a116e08f372661f36167f8534c2","size":11020},{"path":"pfl/internal/tree/gbdt_adaptive_hyperparameters.py","mode":"100644","sha":"3785932b4498f74494447a983af7f0746a58a92f","size":8509},{"path":"pfl/internal/tree/node.py","mode":"100644","sha":"f9f382580d3fa9ea09ec0b42c4bb1ab38cbbbdf3","size":13439},{"path":"pfl/internal/tree/questions.py","mode":"100644","sha":"fdd2a10ab4157f43b727ede4b9db47ea1d22ade4","size":4749},{"path":"pfl/metrics.py","mode":"100644","sha":"457f447788b314316796caa255067267bf254f55","size":21144},{"path":"pfl/model/__init__.py","mode":"100644","sha":"f1d0a59b808c9a6e9955e7493b8820e62f801e93","size":215},{"path":"pfl/model/base.py","mode":"100644","sha":"ae72aeb7e15eeac2e7646260be3a457bdffd96e1","size":6354},{"path":"pfl/model/ema.py","mode":"100644","sha":"cc83aaef139d60b16a4d00284cfaedecfe71075b","size":5121},{"path":"pfl/model/gaussian_mixture_model.py","mode":"100644","sha":"1827e13b027070247cf35f256d5af28a620668f3","size":14926},{"path":"pfl/model/mlx.py","mode":"100644","sha":"bd71856aa532d8276140a6134e24519216aba433","size":12595},{"path":"pfl/model/pytorch.py","mode":"100644","sha":"903e4dfe40a5222507637edd45fca69c130d209c","size":18881},{"path":"pfl/model/tensorflow.py","mode":"100644","sha":"c643a69e20d25926c50a374c165a3ceb00c46ddb","size":16784},{"path":"pfl/postprocessor/__init__.py","mode":"100644","sha":"be0553ffd86d25a30a455ee5f1e53b3d4cdd72ec","size":105},{"path":"pfl/postprocessor/base.py","mode":"100644","sha":"4fc70df2e2037f253af63f46513e2ffa5207597b","size":2833},{"path":"pfl/postprocessor/metrics.py","mode":"100644","sha":"69e056884c2de47b8589e20777caa799e1d0f19c","size":9552},{"path":"pfl/privacy/__init__.py","mode":"100644","sha":"0f45f06d5aed100d2c0ba131d95fdcde28d55965","size":609},{"path":"pfl/privacy/adaptive_clipping.py","mode":"100644","sha":"ec7d204912331727dedb6216d109dd0c6dcde1e5","size":13444},{"path":"pfl/privacy/approximate_mechanism.py","mode":"100644","sha":"e55cb991a41684d06aaf8d46a2d8deb156ae5b7d","size":8177},{"path":"pfl/privacy/compute_parameters.py","mode":"100644","sha":"251fe8b4c884b0bfab62542dc17fb07cf064b5d2","size":2167},{"path":"pfl/privacy/ftrl_mechanism.py","mode":"100644","sha":"1913f22082234264ee9b76880ad19656fbb86b5b","size":11221},{"path":"pfl/privacy/gaussian_mechanism.py","mode":"100644","sha":"749a34f882a90723c6d441aedbbbea90df83ac97","size":6696},{"path":"pfl/privacy/joint_mechanism.py","mode":"100644","sha":"038b4ce883e28081eb3dfe2c281793b3c08ab7e6","size":6618},{"path":"pfl/privacy/joint_privacy_accountant.py","mode":"100644","sha":"3bce1d5e3d636424e2f80951ca864a2ea5e5c20a","size":29910},{"path":"pfl/privacy/laplace_mechanism.py","mode":"100644","sha":"496644abfb87443f502b6dd95c3ce6b1d07322e0","size":2603},{"path":"pfl/privacy/privacy_accountant.py","mode":"100644","sha":"5a6471aa4a8108fbefe8ed06e3a77e18dc1a22f1","size":22424},{"path":"pfl/privacy/privacy_mechanism.py","mode":"100644","sha":"3149203486df09c6f37b6411d08f14a972afd4b3","size":16513},{"path":"pfl/privacy/privacy_snr.py","mode":"100644","sha":"c7512f4f2cd7574b57d70d2b2f7d19403c391784","size":4353},{"path":"pfl/stats.py","mode":"100644","sha":"170871ee5110f40b27331ec3a4488af20613a158","size":18154},{"path":"pfl/tree/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"pfl/tree/federated_gbdt.py","mode":"100644","sha":"338fd98d8ef67beaedee2037477c98a5f254131b","size":45619},{"path":"pfl/tree/gbdt_model.py","mode":"100644","sha":"c7df1eb4f099b53894a0e1ab13a5dba7f0d67abb","size":18765},{"path":"pfl/tree/tree_utils.py","mode":"100644","sha":"a135da0bd5e4dc03fc62ea1a014be67af4a805af","size":7364},{"path":"pfl/version.py","mode":"100644","sha":"722515271fb7bb96fecc18d2c8e87f8dd71a3a57","size":22},{"path":"poetry.lock","mode":"100644","sha":"3fef542a9475b54e07db8b89fc74ae7f138d0438","size":272131},{"path":"publications/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/mdm/README.md","mode":"100644","sha":"38e2a266e7c67dc75c036c85ff8de55c31c05a62","size":2300},{"path":"publications/mdm/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/mdm/mdm/__init__.py","mode":"100644","sha":"89c1ea94cae820c3276ddd58a19d7629fc2b7a98","size":194},{"path":"publications/mdm/mdm/algorithm.py","mode":"100644","sha":"0f360c6b41f2605df71f97fcd123f49b6407d9a9","size":12794},{"path":"publications/mdm/mdm/bridge/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/mdm/mdm/bridge/base.py","mode":"100644","sha":"a9900efd8e0c1048bfd3e6ee118414a68a33a46f","size":1032},{"path":"publications/mdm/mdm/bridge/factory.py","mode":"100644","sha":"4c3e449268c32ca345755bf4ccb25e17a315f494","size":4260},{"path":"publications/mdm/mdm/bridge/pytorch/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/mdm/mdm/bridge/pytorch/polya_mixture.py","mode":"100644","sha":"463e42ac2c60dce072ede7ad29160d9940e7ca19","size":4657},{"path":"publications/mdm/mdm/init_algorithm.py","mode":"100644","sha":"9acaaee8cf0795b749a1e213b2d6f159ddb21fe5","size":10900},{"path":"publications/mdm/mdm/model.py","mode":"100644","sha":"65813f07b966f513386e9197f4d99296ec8c2d3f","size":4630},{"path":"publications/mdm/mdm_paper/README.md","mode":"100644","sha":"0a7e824aca8fb8d90c9abae30075c170e8248697","size":235},{"path":"publications/mdm/mdm_paper/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/mdm/mdm_paper/notebooks/MSE_cifar10_experiments.ipynb","mode":"100644","sha":"5d3ce36ef53e64d605702c74077b201687133d3b","size":365152},{"path":"publications/mdm/mdm_paper/notebooks/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/mdm/mdm_paper/notebooks/cifar10_visualisations.ipynb","mode":"100644","sha":"fb04e259c88662671d2441842b3fe7c1a3acd124","size":78538},{"path":"publications/mdm/mdm_paper/notebooks/femnist_visualisations.ipynb","mode":"100644","sha":"5bd90460ca6b7b15ee39f28c2b5604cdaeb26d97","size":271413},{"path":"publications/mdm/mdm_paper/training/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/mdm/mdm_paper/training/mle.py","mode":"100644","sha":"726d6ebbabbb4c7115e59a5f1d338f1d1b598be3","size":4120},{"path":"publications/mdm/mdm_paper/training/train.py","mode":"100644","sha":"811cefe4a76e565c7ed44e3ff4c0e3b9625a731c","size":5854},{"path":"publications/mdm/mdm_paper/training/train_femnist.py","mode":"100644","sha":"9b118b39ab40fe883cbd3fe79076dad7bcb45012","size":3598},{"path":"publications/mdm/mdm_paper/training/train_femnist_rebuttal.py","mode":"100644","sha":"9848838c255b009db983b25826189952ff1b6f1e","size":4390},{"path":"publications/mdm/mdm_utils/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/mdm/mdm_utils/datasets/__init__.py","mode":"100644","sha":"533151fc2b759485af08f51469d1772eb3c8162d","size":147},{"path":"publications/mdm/mdm_utils/datasets/cifar10_dataset.py","mode":"100644","sha":"bd27c0e9c3b8a7af62374ddde9518cfe3344b867","size":5579},{"path":"publications/mdm/mdm_utils/datasets/femnist_dataset.py","mode":"100644","sha":"21880a8280535b0779254e28cb2fee56b984592f","size":12194},{"path":"publications/mdm/mdm_utils/datasets/mixture_dataset.py","mode":"100644","sha":"2de7789aa0aec202fa76d25ab4e349e50567a4f4","size":6512},{"path":"publications/mdm/mdm_utils/datasets/sampler.py","mode":"100644","sha":"c419d53fffe9293f389267409c8e143d128bb204","size":4412},{"path":"publications/mdm/mdm_utils/models/__init__.py","mode":"100644","sha":"92c2260e24263030ed5aab028993f6b450da09ed","size":38},{"path":"publications/mdm/mdm_utils/models/argument_parsing.py","mode":"100644","sha":"3f109a88c38b2b6fae5b0b134bf507736f30267a","size":7220},{"path":"publications/mdm/mdm_utils/models/pytorch/__init__.py","mode":"100644","sha":"ee4accf5197f0f7bb84fcb885cf0db0ec84e377a","size":144},{"path":"publications/mdm/mdm_utils/models/pytorch/cnn.py","mode":"100644","sha":"f8d00ba62e52bed268a1434460740ebcfa1a1949","size":8731},{"path":"publications/mdm/mdm_utils/models/pytorch/dnn.py","mode":"100644","sha":"b6ac8bfad25d0838936f4c7f97cde0e11268fd2a","size":1754},{"path":"publications/mdm/mdm_utils/models/pytorch/layer.py","mode":"100644","sha":"9c627360125e13fd4d6471c4305a9a78c29eb140","size":2513},{"path":"publications/mdm/mdm_utils/models/pytorch/metrics.py","mode":"100644","sha":"92c15239c3418ce4dbbe18b6f8509ea380c5074a","size":1940},{"path":"publications/mdm/mdm_utils/models/pytorch/module_modification.py","mode":"100644","sha":"345fe64426196b22e8120359594ede4f72b31cc8","size":4296},{"path":"publications/mdm/mdm_utils/models/pytorch_model.py","mode":"100644","sha":"5ab603e57586246ba5e037c1fc28083fc446f75f","size":3539},{"path":"publications/mdm/mdm_utils/utils/__init__.py","mode":"100644","sha":"37bf73582ffef1f026645e1c90d3a301c9c75555","size":255},{"path":"publications/mdm/mdm_utils/utils/argument_parsing.py","mode":"100644","sha":"e936c8b07baeaebbbf515bec859592aef7f5f6ba","size":5540},{"path":"publications/mdm/mdm_utils/utils/tools.py","mode":"100644","sha":"d019367c85b082dde043aa1b890bf5b518409fc2","size":2172},{"path":"publications/mdm/mdm_utils/utils/visualize_results.py","mode":"100644","sha":"67ddc8016f9463bc71f1e73856d631c78d5de492","size":1971},{"path":"publications/mdm/run_cifar10_mse_alpha_phi_experiments.sh","mode":"100755","sha":"23e6be92411949baf0eb7cf5c70a544713d157c1","size":2407},{"path":"publications/mdm/run_femnist.sh","mode":"100755","sha":"419d97841a96f67ae2c10b216a62311de6c35a54","size":2062},{"path":"publications/pfl/README.md","mode":"100644","sha":"95cc3af6783db3e17d7bb87dfb409fc1496f3e89","size":506},{"path":"publications/pfl/compare_utils/pytorch.py","mode":"100644","sha":"f92a18b53b044a77c144f64e7d2288d62f9e8831","size":1471},{"path":"publications/pfl/compare_utils/tensorflow.py","mode":"100644","sha":"82ce9fc5eb847473ca6e6df204e2a17142fc879e","size":1179},{"path":"publications/pfl/fedml/cifar10/README.md","mode":"100644","sha":"a53bc0b87a15b3fd7b15cd15822fb739434f47da","size":754},{"path":"publications/pfl/fedml/cifar10/fedml_config.yaml","mode":"100644","sha":"0d277dc653e5ff3eec072588a82f8bfe702caaf6","size":879},{"path":"publications/pfl/fedml/cifar10/main.py","mode":"100644","sha":"aa432a55edd26d181813e95c007199a710a8139a","size":1172},{"path":"publications/pfl/fedml/cifar10/setup.sh","mode":"100755","sha":"76b77329add068af254cbdc34791374e13a65899","size":461},{"path":"publications/pfl/fedscale/cifar10/README.md","mode":"100644","sha":"78072586de42085ed2af800a16c4ce2ccba0e704","size":563},{"path":"publications/pfl/fedscale/cifar10/fedscale_config.yaml","mode":"100644","sha":"d17d600463859fd8e6d3831dda325851c1a38d60","size":2280},{"path":"publications/pfl/fedscale/cifar10/setup.sh","mode":"100755","sha":"508eca4fb8a75f8c21dc79b3e37adb8b81c42557","size":833},{"path":"publications/pfl/flower/cifar10/README.md","mode":"100644","sha":"ad6562ac1f5f8edc9798adcbe78c183823510ef5","size":669},{"path":"publications/pfl/flower/cifar10/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/pfl/flower/cifar10/cifar/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"publications/pfl/flower/cifar10/cifar/client.py","mode":"100644","sha":"eed4ce06931f40f94e08642abf7daaff62bd075d","size":6121},{"path":"publications/pfl/flower/cifar10/cifar/utils.py","mode":"100644","sha":"cb644286f1f376d0c40d8ba9bc95358f494882e2","size":11268},{"path":"publications/pfl/flower/cifar10/conf/cifar10/config.yaml","mode":"100644","sha":"bcbe84b54fc684dd1183fdc70718bc16574c1831","size":1227},{"path":"publications/pfl/flower/cifar10/conf/cifar10/strategy/fedavg.yaml","mode":"100644","sha":"7343153583f9c22eeebce37ab896fc6d7e8610fb","size":150},{"path":"publications/pfl/flower/cifar10/main.py","mode":"100644","sha":"95442fed6ad1a844163aefaaf68f3d8b8397e0bd","size":3040},{"path":"publications/pfl/flower/cifar10/setup.sh","mode":"100755","sha":"d439ddac9547b8854f86a076515611a1799a5823","size":651},{"path":"publications/pfl/flower/flair/README.md","mode":"100644","sha":"4c7c797542020cee7df211128dd73d1d1aba07be","size":208},{"path":"publications/pfl/flute/cifar10/README.md","mode":"100644","sha":"431cd2fa88933b9c7635988c153109b1f2d63ed8","size":2196},{"path":"publications/pfl/flute/cifar10/config.yaml","mode":"100644","sha":"3f09a8ef397dd7372af7ca68772b3f48a724df56","size":3485},{"path":"publications/pfl/flute/cifar10/dataloaders/dataloader.py","mode":"100644","sha":"0cb5220bedd8e72fc80a86ba68be5d9cbb03904b","size":1038},{"path":"publications/pfl/flute/cifar10/dataloaders/dataset.py","mode":"100644","sha":"8f6f9dbce8c97ea8625c846d82a158d2ff56421d","size":2113},{"path":"publications/pfl/flute/cifar10/dataloaders/preprocess.py","mode":"100644","sha":"7529910e169115256e1f3bace382478441e8b19f","size":2727},{"path":"publications/pfl/flute/cifar10/model.py","mode":"100644","sha":"e78112401b075e190746e4a83e74220c218f4bfa","size":1285},{"path":"publications/pfl/flute/cifar10/setup.sh","mode":"100755","sha":"ea1d7eae51fa8aef8fcce4458a90f1e2afe16a64","size":790},{"path":"publications/pfl/tff/cifar10/README.md","mode":"100644","sha":"005375a482abc5e8d375a3fb90b900e4e6663b2c","size":694},{"path":"publications/pfl/tff/cifar10/main.py","mode":"100644","sha":"2f94aee3b65354058fc3bff8570da9a61fbabeac","size":6518},{"path":"publications/pfl/tff/flair/README.md","mode":"100644","sha":"bd4cee05a58707dcbacbd96c7b5d2a84b4818001","size":168},{"path":"pyproject.toml","mode":"100644","sha":"13216db3e40cbbf370f9d2e6cf948cb978c53eb8","size":5464},{"path":"tests/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/aggregate/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/aggregate/conftest.py","mode":"100644","sha":"9207c05d55d012c030babd37a8e29e8e05b87445","size":1814},{"path":"tests/aggregate/test_data_transport.py","mode":"100644","sha":"863d24c74555f48011213e687ee553794dc93d58","size":2769},{"path":"tests/aggregate/test_simulate.py","mode":"100644","sha":"d3df51566721233514a89a5f64087b8db85ea583","size":7744},{"path":"tests/aggregate/test_weighting.py","mode":"100644","sha":"ae2717a0effec05eb5ea0cadf00f0aba11cd688b","size":929},{"path":"tests/algorithm/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/algorithm/test_expectation_maximization_gmm.py","mode":"100644","sha":"ed09964b62ccde5e14c64f7f4f189d669f57b3ae","size":7748},{"path":"tests/algorithm/test_fedavg.py","mode":"100644","sha":"101c3060e1970765238c39cd815e9660f4f0e757","size":20909},{"path":"tests/algorithm/test_fedprox.py","mode":"100644","sha":"e680c04cff3d4f22f855adc714a4a84981f4e049","size":8881},{"path":"tests/algorithm/test_reptile.py","mode":"100644","sha":"d8923806cfd4df91e8df03f12fd55e5a0afd0a28","size":6414},{"path":"tests/algorithm/test_scaffold.py","mode":"100644","sha":"5b65933a89bd19e1ef5aca67bd0c4f90185689bc","size":8533},{"path":"tests/backend/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/backend/ops/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/backend/ops/test_selector.py","mode":"100644","sha":"791ed867b0a4693feaa593e40e5703213f21e363","size":471},{"path":"tests/conftest.py","mode":"100644","sha":"bb9d33fbfd0cde95e7eda845e4a2ee2c605cb1ac","size":34889},{"path":"tests/data/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/data/test_dataset.py","mode":"100644","sha":"af6dfe90e7568a7718150c86a5c5cca49df754dd","size":12305},{"path":"tests/data/test_federated_dataset.py","mode":"100644","sha":"5f98ee89ce9658ac3c5d89d333837cfc29094bc6","size":22542},{"path":"tests/data/test_partition.py","mode":"100644","sha":"2eae9048bb69e5f67b11f8ddd2ec773fb548a045","size":1290},{"path":"tests/data/test_sampling.py","mode":"100644","sha":"606722ed65f50f3848b37e473e28685d027386c3","size":7225},{"path":"tests/data/test_user_state.py","mode":"100644","sha":"306d624aae0afff63fbc33679df142dda76ded26","size":3530},{"path":"tests/hyperparam/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/hyperparam/test_base.py","mode":"100644","sha":"401911de98feaf322ec25e55435144ed4c698b08","size":4020},{"path":"tests/integration/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/integration/conftest.py","mode":"100644","sha":"01fc1e1487b15fe8b74a5c43f2a821b0c637db5c","size":3436},{"path":"tests/integration/run_training_on_fake_data.py","mode":"100644","sha":"6e42d696e46430db74b80e0cf8ac8cc3063b4d74","size":23788},{"path":"tests/integration/test_multiprocess.py","mode":"100644","sha":"48e95a83ad67fd4511f84f7279c3f870f5a64b78","size":4607},{"path":"tests/integration/test_multiworker.py","mode":"100644","sha":"6a22101251032fcf424b7b0eb879969584156d70","size":7425},{"path":"tests/internal/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/internal/distribution/test_diagonal_gaussian.py","mode":"100644","sha":"f00670a207e5aabbbf840cd5bfad7d95865925a4","size":6366},{"path":"tests/internal/distribution/test_distribution.py","mode":"100644","sha":"c171c4c5cc19dde72382320b8ac4fe58aade6dff","size":2670},{"path":"tests/internal/distribution/test_log_float.py","mode":"100644","sha":"3c817e64b6afba1035d08801cc5760f33449fc79","size":5522},{"path":"tests/internal/distribution/test_log_float_functions.py","mode":"100644","sha":"ea5467465a1a664ff8b854f2521a89000720f52b","size":2399},{"path":"tests/internal/distribution/test_mixture.py","mode":"100644","sha":"39349f73875a124e476875bb4adab6677a2df743","size":3712},{"path":"tests/internal/ops/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/internal/ops/conftest.py","mode":"100644","sha":"dc40e051f1edeb3bffa5f7b0b6cafa53aad63bcb","size":6403},{"path":"tests/internal/ops/test_distributed.py","mode":"100644","sha":"3d7bb3307c84619d2c1173636fcdecfc3fd99672","size":6489},{"path":"tests/internal/ops/test_mlx_ops.py","mode":"100644","sha":"50f220d42857fd1e1e202c8885192dc1ccc689c9","size":872},{"path":"tests/internal/ops/test_ops.py","mode":"100644","sha":"7c8a03b0f7bb088966231fb5297db1052100dc09","size":9681},{"path":"tests/internal/ops/test_pytorch_ops.py","mode":"100644","sha":"98fa0cfeaa6b8b310e16d1b047432bd5d9d586fc","size":2395},{"path":"tests/internal/ops/test_selector.py","mode":"100644","sha":"2d0b4ab0d96707b875bf47270edfafb3bfc66536","size":770},{"path":"tests/internal/ops/test_tensorflow_ops.py","mode":"100644","sha":"84b96688cfe57eb7655cdb68db2241c20b3e32fc","size":1805},{"path":"tests/internal/test_bisect.py","mode":"100644","sha":"d5ecea24a122d7bcc623809791ec7af15235b2a1","size":1212},{"path":"tests/internal/test_platform.py","mode":"100644","sha":"52faaa9fc3abbd811f9a794a35d2124f02fdcb85","size":334},{"path":"tests/internal/test_privacy_loss_bound.py","mode":"100644","sha":"4dc5dab76f57989c05dbf5d40bca62a21d1e10a8","size":4975},{"path":"tests/internal/tree/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/internal/tree/conftest.py","mode":"100644","sha":"5494febc76cab5df53f231904b0d77468517b1c2","size":892},{"path":"tests/internal/tree/test_gbdt.py","mode":"100644","sha":"e89f4ff9814234585ede6f5c7bea4cc138408876","size":8998},{"path":"tests/internal/tree/test_gbdt_adaptive_hyperparameters.py","mode":"100644","sha":"7109aca74f26d77f16ffaf83ff22a8ae441dc4d7","size":5498},{"path":"tests/internal/tree/test_node.py","mode":"100644","sha":"0c9fdf04745b8e0e83632f164ff0dca1bd6d6fa3","size":6316},{"path":"tests/internal/tree/test_questions.py","mode":"100644","sha":"b43848bf035c1591e0e0eed5eae1d6edf509dc0c","size":5714},{"path":"tests/model/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/model/conftest.py","mode":"100644","sha":"7198d43a19f6a1afe7f658593c1911674c5f0f14","size":6462},{"path":"tests/model/test_ema.py","mode":"100644","sha":"89f6cd6338cf6f43c280662ea774256ac1ff82a7","size":4448},{"path":"tests/model/test_gaussian_mixture_model.py","mode":"100644","sha":"1bb4f8a2c7101f1f9c200a5524fa02b075095667","size":13914},{"path":"tests/model/test_mlx_model.py","mode":"100644","sha":"2cd45c81f76173e8bfd59f5398e1f44a1854c2f5","size":1055},{"path":"tests/model/test_model.py","mode":"100644","sha":"d2a160ddb851f35f4d26671066b06b5d03de6718","size":11568},{"path":"tests/model/test_pytorch_model.py","mode":"100644","sha":"6ddb538917a877e64510220e53375b65cc273d24","size":6756},{"path":"tests/model/test_tensorflow_model.py","mode":"100644","sha":"dd95192ad5c64b8e5a92075a81d2e00f6798a372","size":6084},{"path":"tests/postprocessor/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/postprocessor/test_metrics.py","mode":"100644","sha":"55beede739eb0f9c7fc430ce7ee00d3e863e0b8d","size":9131},{"path":"tests/privacy/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/privacy/conftest.py","mode":"100644","sha":"e7d9fb2a707ea413c0f4c29e67d5c25f89e648f7","size":1392},{"path":"tests/privacy/test_adaptive_clipping.py","mode":"100644","sha":"eeed99734fba55d332a9aab27dce80650bca8bca","size":9088},{"path":"tests/privacy/test_approximate_mechanism.py","mode":"100644","sha":"1b4f7e2a0d94ce2f3fb3e4e1ab6bab35fdf5e2b1","size":8444},{"path":"tests/privacy/test_compute_parameters.py","mode":"100644","sha":"c553bdcc31ba09fb34e4378e21bd8b9ddc85bcde","size":1361},{"path":"tests/privacy/test_ftrl_mechanism.py","mode":"100644","sha":"cfc14bbf2bef9cd233ec705e21035f73f822f7df","size":9837},{"path":"tests/privacy/test_joint_privacy_accountant.py","mode":"100644","sha":"af983d5e432ee1dcac3b871aeaa46d1c75d336f2","size":14994},{"path":"tests/privacy/test_privacy_accountant.py","mode":"100644","sha":"ed95781452b70f057d0d45de82e69d470c3bc0d1","size":6720},{"path":"tests/privacy/test_privacy_mechanism.py","mode":"100644","sha":"3a0e881a1d896b4f35dadc80ef1eedc2d282b3df","size":25779},{"path":"tests/privacy/test_privacy_snr.py","mode":"100644","sha":"c7a7fded1eae263833f8a259dad4ab05852fe99d","size":1947},{"path":"tests/test_callback.py","mode":"100644","sha":"62ac14314dd5ceb6fa6a6d8ec7292f3ace2277bd","size":37509},{"path":"tests/test_metrics.py","mode":"100644","sha":"c9b298c0c00f40ffe274fedf530bf0dd8f4cadba","size":12429},{"path":"tests/test_stats.py","mode":"100644","sha":"5e11d97a667fcebeaad05f7a0c4b78dca279fe37","size":11234},{"path":"tests/test_stats_examples.py","mode":"100644","sha":"4aea1a63763bf8c614c650c31dee7f9a73dbd09e","size":4395},{"path":"tests/tree/__init__.py","mode":"100644","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","size":0},{"path":"tests/tree/conftest.py","mode":"100644","sha":"f30c4399c2e7c7cf4a28742dd13f9d0c82b4e759","size":6875},{"path":"tests/tree/test_federated_gbdt.py","mode":"100644","sha":"e3e3d4004b1858e6146a5c67053aa210a9b3f478","size":28716},{"path":"tests/tree/test_gbdt_model.py","mode":"100644","sha":"ef30fe37f2cbaa21e4e0d4977eebcbfd97ffbaaa","size":16356},{"path":"tests/tree/test_tree_utils.py","mode":"100644","sha":"e007402e54264135ee596f4987d51a38c64f8ae6","size":3013},{"path":"tutorials/Creating Federated Dataset for PFL Experiment.ipynb","mode":"100644","sha":"178f0380d824387ebb48768dde70979f2127a371","size":68664},{"path":"tutorials/Introduction to Differential Privacy with Federated Learning.ipynb","mode":"100644","sha":"af09bd3b97bdef55393e7a292eafb1b35923cfa1","size":547898},{"path":"tutorials/Introduction to Federated Learning with CIFAR10 and MLX.ipynb","mode":"100644","sha":"720136482608c6ce88a75be2cf9c015a3756d1a5","size":83849},{"path":"tutorials/Introduction to Federated Learning with CIFAR10 and TensorFlow.ipynb","mode":"100644","sha":"b3b93dadf5db2fa895cec29ad332ae62e5486a85","size":106435},{"path":"tutorials/Introduction to PFL research with FLAIR.ipynb","mode":"100644","sha":"586dbb3f2c8882431f3eee114c328c9afda2cc91","size":584280},{"path":"tutorials/assets/label-dist-small.png","mode":"100644","sha":"41de7eaecbfc928917502653b5aff75be2f7e8a2","size":111820}]}