这段时间学习了联邦学习的一些知识,完成了基于 TensorFlow Federated 实现的 X 射线图像分类用于 COVID-19 识别的一个例子,与大家分享。
项目完整代码的 github 链接:GitHub - zzl2022/TFF_Image_Classification: X-ray image classification based on TensorFlow Federated for COVID-19 identification
数据集:
COVID-19胸部X射线图像数据库包含有1200个COVID-19阳性图像,1341正常图像和1345病毒性肺炎图像。减压下载好的zip压缩包,将 "COVID-19 Radiography Database" 文件夹放在项目文件夹下,如下图。数据集链接:工作台 - Heywhale.com
执行步骤:
首先,运行 DatasetPreprocess.py 文件,是将原始数据集分割为多个子数据集以模拟不同的客户端拥有不同的本地数据。此文件运行结束后产生新的数据集文件夹,以供接下来的联邦学习使用。
然后,运行 FederatedLlearning.py 文件,开始对图像分类任务进行联邦学习。此过程调用了 CreateTFFData.py 和 Model.py 文件。
项目涉及到的主要参数可在 args.py 文件中查看和修改。
训练曲线:
环境:
Python 3.8、tensorflow-federated 0.17.0、tensorflow 2.3.4、keras 2.4.3
数据集替换:
可轻松将数据集替换为其它本地图像分类数据集,但需参照本项目中数据集在项目文件夹下的位置和数据集形式。然后将 args.py 文件中的 'allset_name' 和 'NumClass' 两个参数进行修改即可运行代码。
参考资料:
Federated Learning for Image Classification | TensorFlow Federated https://github.com/lpf111222/Federated-Learning-of-Image-classification-and-Its-simulation-in-TensorFlow-Federated https://github.com/ki-ljl/FedAvg-numpy-pytorch-tff
此项目的介绍就到这里,任何问题可以留言讨论~
欢迎关注我的个人微信公众号,定期分享科研中阅读的优质医工融合文献~