{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":672196996,"defaultBranch":"main","name":"FedKit","ownerLogin":"FedCampus","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-07-29T08:43:13.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/127172191?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1704169445.0","currentOid":""},"activityList":{"items":[{"before":"c54cdb314a32a14b8a6c46f08dd0d816dddde7e5","after":"e203312add2c9fc1ebb5511bae8a52eb384814c4","ref":"refs/heads/main","pushedAt":"2024-02-03T08:32:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"tolerate CoreML ProtoBuf Swift files","shortMessageHtmlLink":"tolerate CoreML ProtoBuf Swift files"}},{"before":"1e005549c8ef3715d1e8217853d66a6eec7829b8","after":"9bece7d1e014c10ea815d33e31b0dc43eeb2ce1f","ref":"refs/heads/mnist-mlp","pushedAt":"2024-01-02T08:13:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"fix android cannot connect internet","shortMessageHtmlLink":"fix android cannot connect internet"}},{"before":null,"after":"1e005549c8ef3715d1e8217853d66a6eec7829b8","ref":"refs/heads/mnist-mlp","pushedAt":"2024-01-02T04:24:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"MLP MNIST model for fully updatable example","shortMessageHtmlLink":"MLP MNIST model for fully updatable example"}},{"before":"953c154826998a1582567da2741b4a7c6b6e2a0d","after":"c54cdb314a32a14b8a6c46f08dd0d816dddde7e5","ref":"refs/heads/main","pushedAt":"2023-10-09T05:23:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"fix gitattributes","shortMessageHtmlLink":"fix gitattributes"}},{"before":"22534e102f1a00b255f86e1f064aaf2af40c4891","after":"953c154826998a1582567da2741b4a7c6b6e2a0d","ref":"refs/heads/main","pushedAt":"2023-10-09T05:20:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"Extract iOS training library (#29)\n\n* mv out common library code\r\n\r\n* README for ios package\r\n\r\n* fix ios ci\r\n\r\n* migrate the config as xcode wish\r\n\r\n* rm unused async&func\r\n\r\n* invert control of loss&accuracy calculation","shortMessageHtmlLink":"Extract iOS training library (#29)"}},{"before":"eb60d463a09ad75dfd6e4b123c7ac6deebe473b7","after":"22534e102f1a00b255f86e1f064aaf2af40c4891","ref":"refs/heads/main","pushedAt":"2023-10-02T07:19:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"switch to gitlab for MNIST dataset","shortMessageHtmlLink":"switch to gitlab for MNIST dataset"}},{"before":"f5ae4c42dcea1b61a4b7428ff524f5ec13b079d2","after":"eb60d463a09ad75dfd6e4b123c7ac6deebe473b7","ref":"refs/heads/main","pushedAt":"2023-10-01T13:08:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"Android MNIST example (#28)\n\n* download MNIST data set instead of bundling in iOS\r\n\r\n* fix backend not picking up coreml param\r\n\r\n* android load MNIST;bug: TFLite shape mismatch\r\n\r\n* fix android mnist training by changing Y_SHAPE\r\n\r\n* get Float from loss not Double\r\n\r\n* fix iOS data loading;iOS MSE&classification accuracy;bug: predict 0s\r\n\r\n* fix android mnist data loading\r\n\r\n* no debug print when loading data\r\n\r\n* drop last relu in model;ios client directly mutate model on disk;clean up logging\r\n\r\n* fix try_make_layers_updatable marking updatable layers\r\n\r\n* correct mnist core ml layers\r\n\r\n* improve printout\r\n\r\n* change CIFAR10 names to MNIST for flutter example","shortMessageHtmlLink":"Android MNIST example (#28)"}},{"before":"87c1603701b7f73f8c6aaf02f53d18770cd27306","after":null,"ref":"refs/heads/pmdata","pushedAt":"2023-09-28T07:40:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"}},{"before":"f9d2a5a07aa722545cc83d7f97fbdcaff9f8e91a","after":"60eedf373bea409047253f13e7cb672909d074b7","ref":"refs/heads/android-mnist-binary","pushedAt":"2023-09-28T07:39:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"PMData instead of MNIST (#27)\n\n* add data loading for pmdata\r\n\r\n* modify test and sample loading\r\n\r\n* pmdata model convertor\r\n\r\n* clean up\r\n\r\n---------\r\n\r\nCo-authored-by: Beilong-Tang ","shortMessageHtmlLink":"PMData instead of MNIST (#27)"}},{"before":"0b776f5326114c47789e6aadc2516a84132b5abb","after":"87c1603701b7f73f8c6aaf02f53d18770cd27306","ref":"refs/heads/pmdata","pushedAt":"2023-09-28T07:37:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"clean up","shortMessageHtmlLink":"clean up"}},{"before":"9ad5afbde34dba2e6ae452b748ef8f861f0b678d","after":"0b776f5326114c47789e6aadc2516a84132b5abb","ref":"refs/heads/pmdata","pushedAt":"2023-09-28T03:14:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Beilong-Tang","name":null,"path":"/Beilong-Tang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99667725?s=80&v=4"},"commit":{"message":"pmdata model convertor","shortMessageHtmlLink":"pmdata model convertor"}},{"before":"cdfdd906f2a2ce23be6d843656e687b5f67529e5","after":"9ad5afbde34dba2e6ae452b748ef8f861f0b678d","ref":"refs/heads/pmdata","pushedAt":"2023-09-28T01:03:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Beilong-Tang","name":null,"path":"/Beilong-Tang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99667725?s=80&v=4"},"commit":{"message":"modify test and sample loading","shortMessageHtmlLink":"modify test and sample loading"}},{"before":"f9d2a5a07aa722545cc83d7f97fbdcaff9f8e91a","after":"cdfdd906f2a2ce23be6d843656e687b5f67529e5","ref":"refs/heads/pmdata","pushedAt":"2023-09-27T02:04:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Beilong-Tang","name":null,"path":"/Beilong-Tang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99667725?s=80&v=4"},"commit":{"message":"add data loading for pmdata","shortMessageHtmlLink":"add data loading for pmdata"}},{"before":null,"after":"f9d2a5a07aa722545cc83d7f97fbdcaff9f8e91a","ref":"refs/heads/pmdata","pushedAt":"2023-09-26T13:52:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Beilong-Tang","name":null,"path":"/Beilong-Tang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99667725?s=80&v=4"},"commit":{"message":"only use Dense;no effect","shortMessageHtmlLink":"only use Dense;no effect"}},{"before":"afd7f4958583b565d51ff56a1fdabe193d710131","after":"f9d2a5a07aa722545cc83d7f97fbdcaff9f8e91a","ref":"refs/heads/android-mnist-binary","pushedAt":"2023-09-26T07:41:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"only use Dense;no effect","shortMessageHtmlLink":"only use Dense;no effect"}},{"before":"cf28ea2ac5e3ad73b109020dd121c7ad0e82ca28","after":"afd7f4958583b565d51ff56a1fdabe193d710131","ref":"refs/heads/android-mnist-binary","pushedAt":"2023-09-25T14:14:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"sync android mnist binary loading;fix ios data type","shortMessageHtmlLink":"sync android mnist binary loading;fix ios data type"}},{"before":null,"after":"cf28ea2ac5e3ad73b109020dd121c7ad0e82ca28","ref":"refs/heads/android-mnist-binary","pushedAt":"2023-09-25T13:19:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"binary MNIST model;iOS binary data loader","shortMessageHtmlLink":"binary MNIST model;iOS binary data loader"}},{"before":"46d29fc33a98fce97fbd52377bee95b1bbc993cf","after":"f5ae4c42dcea1b61a4b7428ff524f5ec13b079d2","ref":"refs/heads/main","pushedAt":"2023-09-24T02:02:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"fix backend not picking up coreml param","shortMessageHtmlLink":"fix backend not picking up coreml param"}},{"before":"655850b009c3f32401b15af139b893d51a6e7a2e","after":"46d29fc33a98fce97fbd52377bee95b1bbc993cf","ref":"refs/heads/main","pushedAt":"2023-09-22T14:18:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"fix bogus timestamps in telemetry","shortMessageHtmlLink":"fix bogus timestamps in telemetry"}},{"before":"509c22f2be2a4f73443848dd1fc5707f978bd207","after":"655850b009c3f32401b15af139b893d51a6e7a2e","ref":"refs/heads/main","pushedAt":"2023-09-22T13:38:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"Working Core ML model (#24)\n\n* fix optimizer not recon’ed;bug: must provide training input\r\n\r\n* add optimizer;need to patch coremltools\r\n\r\n* use mean squared loss;no need patch;bug: transpose_6 layer\r\n\r\n* obtain innerProduct by random fitting\r\n\r\n* usable model: 2 updatable layers;lossLayer before softmax\r\n\r\n* gen_tflite -> convert_model\r\n\r\n* move in convert_model.coreml\r\n\r\n* move all from gen_mlmodel\r\n\r\n* clean up conver_model examples\r\n\r\n* tweak displaying in red\r\n\r\n* mnist_eg has both coreml&tflite;coreml print weights/bias byte sizes\r\n\r\n* coreml print all updatable layers to match tflite params;less printing\r\n\r\n* fix model upload: judge tflite/coreml;bug: backend gives list[str] for coreml_layers\r\n\r\n* work around requests restriction by uploading data as a file\r\n\r\n* fix coreml model only allowing epochs=10;bug: segfault when run coreml model\r\n\r\n* attempt to use matching input/output key;still segfault\r\n\r\n* back to cross entropy loss;monkey patch coremltools;still segfault\r\n\r\n* make pyright happy\r\n\r\n* read loss layer target name from protobuf\r\n\r\n* get model input/output layer names for protobuf\r\n\r\n* group ModelProto;use model input&target for dataLoader\r\n\r\n* change model input shape;show epoch 1 loss then crash\r\n\r\n* fix dataLoader memoization\r\n\r\n* load parameter from protobuf\r\n\r\n* check UpdateContext.model for nil\r\n\r\n* remove softmax&use MS loss -> trains;bug: 0 loss\r\n\r\n* comply w/ shape 28x28x1;unify mnist to use mse\r\n\r\n* Layer.updatable;skip non-updatable in UpdataContext\r\n\r\n* properly allow Layer.updatable as bool\r\n\r\n* fix seed_coreml inconsistency","shortMessageHtmlLink":"Working Core ML model (#24)"}},{"before":"c657a2b3df0ea20b0f486dd1e82315ddd49d6904","after":"509c22f2be2a4f73443848dd1fc5707f978bd207","ref":"refs/heads/main","pushedAt":"2023-09-21T05:38:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"fix tflite parameter saves;client app convenient reload","shortMessageHtmlLink":"fix tflite parameter saves;client app convenient reload"}},{"before":"ed8fb4c23df8c4d713210ade57b99ca229466205","after":"c657a2b3df0ea20b0f486dd1e82315ddd49d6904","ref":"refs/heads/main","pushedAt":"2023-09-07T14:05:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"Core ML training support (#19)\n\n* fix getPlatformVersion\r\n\r\n* fake ios training in fed_kit_client\r\n\r\n* include MNIST dataset from FlowerIOS;swiftformat\r\n\r\n* compiling;CoreML functionality from FlowerIOS\r\n\r\nbased on https://github.com/danielnugraha/flower-ios\r\n\r\n* use logger\r\n\r\n* Data<->Array;debugging cannot find model file\r\n\r\n* swiftformat\r\n\r\n* swiftformat\r\n\r\n* make logs actually show\r\n\r\n* models.TFLiteModel.mlmodel_path\r\n\r\n* dart tflite_models.TFLiteModel.mlmodel_path\r\n\r\n* option to require mlmodel from /train/advertised\r\n\r\n* PostAdvertisedDataSerializer\r\n\r\n* filter mlmodel for iOS requests\r\n\r\n* download different model files based on OS\r\n\r\n* initML uses modelDir;bug: The file couldn’t be opened\r\n\r\n* use predefined layerNames instead of MLParameter;store MLMultiArray\r\n\r\n* verified that url.startAccessingSecurityScopedResource is false\r\n\r\n* successfully read model file following https://stackoverflow.com/questions/59501445/flutter-how-to-save-a-file-on-ios#answer-71523355\r\n\r\n* return actual testSize&trainingSize\r\n\r\n* ensure config.parameters!=nil;better error code;bug: cannot read .mlmodel file again\r\n\r\n* refix reading url;bug: Optimizer is not recognized\r\n\r\n* dump mlmodel generation scripts\r\n\r\n* mnist.mlmodel generation\r\n\r\n* roll back the addition of mlmodel_path\r\n\r\n* CoreMLModel that mimics TFLiteModel\r\n\r\n* serializer&view for CoreMLModel in backend\r\n\r\n* extract `deserialize` for train/view\r\n\r\n* route for coreml model inquiry;fix `deserialize`\r\n\r\n* use mappable over freezed\r\n\r\n* tflite_model -> ml_model\r\n\r\n* tflite_model extends MlModel\r\n\r\n* CoremlModel with layers_names\r\n\r\n* generalize flutter train to use MlModel over TFLiteModel\r\n\r\n* Cifar10MLClient adapt to having iOS\r\n\r\n* iOS side use `layersName`\r\n\r\n* fix uploading coreml files\r\n\r\n* coreml MNIST model request in database&fed_kit_client\r\n\r\n* fix AppDelegate.initML key name;bug:optimizer not recognized\r\n\r\n* mark the failure point of coreml\r\n\r\n* failing attempt to duplicate TFLiteModel to CoreMLModel\r\n\r\n* work around TrainingSession only taking TFLiteModel;bug:Invalid URL for .mlmodel\r\n\r\n* fix invalid URL\r\n\r\n* fix type '_UnmodifiableFloat32ArrayView' is not a subtype of type 'Uint8List' in type cast\r\n\r\n* roll back CoreMLModel migrations\r\n\r\n* nuke coreml classes&functions\r\n\r\n* TFLiteModel handle coreml\r\n\r\n* correct is_coreml usage\r\n\r\n* correct Flower server tracking;hopefully fix CI\r\n\r\n* adopt {name: str, shape: [int]} for CoreML layers_sizes info\r\n\r\n* more conservative layer kind judgement;seed_coreml layers\r\n\r\n* correctly discriminate models for /train/advertised\r\n\r\n* discriminate CoreML model on Flutter client\r\n\r\n* adapt fed_kit_client to dynamic layers_sizes\r\n\r\n* use TFLiteModel to simplify ML models\r\n\r\n* Layer in Swift w/ name&shape\r\n\r\n* only support iOS 15.0+;use layers in MlClient\r\n\r\n* extract MLClient.parameters();use previous parameters shape;still fail\r\n\r\n* getting exact same MLMultiArray as FlowerIOS;still fail\r\n\r\n* properly catch FlowerService exception;example allow reprepare on training failure\r\n\r\n* make MLModelInspect.mlModel non-nil\r\n\r\n* deserialize&reserialize model before training\r\n\r\n* reorganize MLClient.init;fix problem from auto-format\r\n\r\n* assign weights to protobuf;bug: loss dont go down\r\n\r\n* actual fit;bug: loss dont go down\r\n\r\n* lazy var dataLoader\r\n\r\n* check if ready\r\n\r\n* linear search for layers to update\r\n\r\n* fix not updating layer parameters w/ hint from Naniel Nata\r\n\r\n* parallelize data loading\r\n\r\n* load all data;correct progress handler\r\n\r\n* load data async w/ swift api\r\n\r\n* rid DataLoader and just have functions\r\n\r\n* review DataLoader.extractFile\r\n\r\n* simplify file extraction\r\n\r\n* use partitionId\r\n\r\n* move helper to correct file\r\n\r\n* set up mypy for django\r\n\r\n* set up mypy for DRF\r\n\r\n* fix all python errors\r\n\r\n* fix python script errors\r\n\r\n* rename TFLiteModel to MLModel;model change to accommodate CoreML\r\n\r\n* fix allowing null;clean up models because null=False is default\r\n\r\n* update backend to align w/ new MLModel model\r\n\r\n* align Android fed_kit side w/ backend\r\n\r\n* update Flutter fed_kit to aligh w/ backend\r\n\r\n* fix fed_kit_client to align w/ fed_kit\r\n\r\n* align flutter PostAdvertisedData w/ backend\r\n\r\n* align Swift Layer w/ backend;Layer can mutate bias\r\n\r\n* coin coreml_layers children\r\n\r\n* properly save coreml params\r\n\r\n* iOS EventChannel\r\n\r\n* update gen_mlmodel to align w/ backend coreml_layers\r\n\r\n* instruction on downloading needed iOS files\r\n\r\n* untrack lzfse files\r\n\r\n* fix ios ci\r\n\r\n* rm unused AppError\r\n\r\n* rm unused MLTask&MLClientErr.NoParamUpdate\r\n\r\n* rm unused MLFlwrClientModel&MLModelInspect\r\n\r\n* mark generated files for github linguist\r\n\r\n* sync doc to current ios implementation","shortMessageHtmlLink":"Core ML training support (#19)"}},{"before":"eb1b1afb3298c7d7d11e6c8557ac082af505a1c9","after":"ed8fb4c23df8c4d713210ade57b99ca229466205","ref":"refs/heads/main","pushedAt":"2023-08-24T02:38:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"ignore mlmodel","shortMessageHtmlLink":"ignore mlmodel"}},{"before":"f1ba4d438d19b5d984fe8d0fc6defd3710cc5892","after":"eb1b1afb3298c7d7d11e6c8557ac082af505a1c9","ref":"refs/heads/main","pushedAt":"2023-08-23T12:44:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"roll back fedmcrnn model","shortMessageHtmlLink":"roll back fedmcrnn model"}},{"before":"34ef3c7a080a67e3b80e2bd5fe0a0a8beb327236","after":"f1ba4d438d19b5d984fe8d0fc6defd3710cc5892","ref":"refs/heads/main","pushedAt":"2023-08-21T01:32:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"down the training timeout to 10min","shortMessageHtmlLink":"down the training timeout to 10min"}},{"before":"fc6d465f0f19005935d183d8b7d34bbf8f0a9cbd","after":"34ef3c7a080a67e3b80e2bd5fe0a0a8beb327236","ref":"refs/heads/main","pushedAt":"2023-08-21T01:26:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"fix #14: add flatten layer to FedMCRNN model","shortMessageHtmlLink":"fix #14: add flatten layer to FedMCRNN model"}},{"before":"5ddf212208148a2124609713af2d73fc54063b44","after":"fc6d465f0f19005935d183d8b7d34bbf8f0a9cbd","ref":"refs/heads/main","pushedAt":"2023-08-20T12:32:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"change FedMCRNN to Aicha's model","shortMessageHtmlLink":"change FedMCRNN to Aicha's model"}},{"before":"6bec09b8c516071d90be261f1d6a4998cf6eb8e5","after":"5ddf212208148a2124609713af2d73fc54063b44","ref":"refs/heads/main","pushedAt":"2023-08-18T02:37:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"unbrand FA","shortMessageHtmlLink":"unbrand FA"}},{"before":"1c0a063b576377df20668a4e2c7c3a6c84f716e1","after":"6bec09b8c516071d90be261f1d6a4998cf6eb8e5","ref":"refs/heads/main","pushedAt":"2023-08-15T02:23:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"fix train.prepare errors not caught in example","shortMessageHtmlLink":"fix train.prepare errors not caught in example"}},{"before":"f5ace39b25a01cf4f10b326aa61e5439cad1d3ee","after":"1c0a063b576377df20668a4e2c7c3a6c84f716e1","ref":"refs/heads/main","pushedAt":"2023-08-14T14:09:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SichangHe","name":"Steven Hé (Sīchàng)","path":"/SichangHe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84777573?s=80&v=4"},"commit":{"message":"List.toFloatArray","shortMessageHtmlLink":"List<Double>.toFloatArray"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD8ONRmwA","startCursor":null,"endCursor":null}},"title":"Activity · FedCampus/FedKit"}