femnist数据集是个手写数字字母识别的数据集,官方来源是Leaf框架,这个框架里面有很多专门给联邦学习用的noniid数据集
官方链接和GitHub链接如下:
https://github.com/TalwalkarLab/leaf/tree/master
注:leaf上的环境会用到tensorflow,个人不太习惯这个框架,pytorch版本的可以搜索FedLab,或者只想划分数据集,不需要跑leaf的示例实验可以不用安装tensorflow
把上述GitHub链接的东西git下来,可以看到data里面的femnist数据集,环境我用的3.11,只需要划分数据集的话版本应该没有特殊需求,尽量不要执行requirements,tensorflow很多包会冲突
这里面preprocess.sh是最终执行的脚本,readme里面有附带的参数说明
preprocess目录下是一些处理脚本
其中比较重要的是get_data.sh,这里主要是下载数据集的命令
wget的两个zip文件就是原始数据集,我运行的时候没法裸连下载,所以我这里手动下载,并且放到femnist/data/raw_data路径下再解压,这样就不用执行这个脚本了
byclass是完整的数据集,有80多万张图片,bywrite会少一些
解压之后就可以去femnist路径下运行preprocess.sh脚本了,可以根据自己需求配置参数
划分完后是一些json文件,会在femnist/data路径下的train和test目录里面,每个json文件里面都会有很多user,每个user下有x和y列表,x列表是图片,y列表是图片对应的标签,至此就算是划分好了