KarhouTam / FL-bench

Benchmark of federated learning. Dedicated to the community. 🤗
GNU General Public License v3.0
505 stars 82 forks source link

数据集transform操作 #22

Closed Merak2 closed 1 year ago

Merak2 commented 1 year ago

https://github.com/KarhouTam/FL-bench/blob/master/src/client/fedavg.py#L36,我注意到这个transform是作用在整个数据集上,数据增强一般都作用在trainSet吧?testSet不应该进行操作。

KarhouTam commented 1 year ago

你说的对,是我疏忽了。等我有空时我就修复代码。

KarhouTam commented 1 year ago

Hi, @Merak2. 关于你提出的问题,我又思考了一下。我在数据集的全局 transform 中仅默认设置了 Normalize(),而其实如果有对训练数据采取 Normalize(),那么同样需要对 testset 使用 Normalize()。因为拟合模型的数据的 scale 和测试数据的 scale 不同的话,模型的表现会变得很差。ref: https://datascience.stackexchange.com/questions/27615/should-we-apply-normalization-to-test-data-as-well

当然你的问题是有价值的,我会将 transform 细分成 general_transform 和 train_transform。前者用在全部数据上,而后者仅用在训练数据上。我会尽快实现这个功能。

Merak2 commented 1 year ago

谢谢你给出的参考以及细分transform的计划。

KarhouTam commented 1 year ago

已更新 https://github.com/KarhouTam/FL-bench/commit/3c823b2b4813adadb7a6c4956a2aa33a609c0ee9 请尝试拉去最新的代码