Skip to content
desperadoccy edited this page May 28, 2024 · 2 revisions

utils模块介绍

该模块下主要包含了一些常用的工具函数,方便用户进行一些常用的操作。

现有工具介绍

Algorithm

该文件存储一些常见通用算法。

Time

该文件下有一个适用于多线程的计时器类。

Queue

该文件帮助mac用户解决了在多线程中使用queue.Queue()时出现的问题。

DasetUtils

  • CustomDataset:自定义封装数据集类
  • FLDataset: FL数据集类,使用index对原始数据集进行划分
  • download_dataset: 下载并解压数据集的函数
  • other: 其余一些用于处理data的函数

GlobalVarGetter

一个用于全局获取变量的类,可以在多线程中使用。

现方法将其存储在os.argv中,可在多进程中使用。

运行main函数之后,可以通过GlobalVarGetter.get()获取全局变量dict,该dict中存储了如下变量:

  • config: 读取的配置文件
  • global_config: 读取的全局配置文件
  • server_config: 读取的服务器配置文件
  • client_config: 读取的客户端配置文件
  • client_manager_config: 读取的客户端管理器配置文件
  • queue_manager_config: 读取的队列管理器配置文件
  • client_staleness_list: 客户端延迟列表
  • client_index_list: 客户端数据集分布列表
  • server: 服务器对象
  • server_network: 服务器模型
  • current_t: 当前聚合迭代轮数
  • schedule_t: 当前调度次数
  • T: 全局迭代总次数
  • queue_manager: 队列管理器对象
  • scheduler: 调度器对象
  • updater: 聚合器对象

IID

数据集划分函数,用于划分数据集。

ModuleFindTool

根据配置文件中的path字段,查找对应的类。

Plot

画图函数,提供了绘画实验对比图和数据分布图的函数。

Random

提供了一个随机函数。

Structures

提供了一些数据结构。

Tools

提供了一些常用的工具函数,如Json文件读取,list转dict,dict转list等。

Clone this wiki locally