用于机器学习应用的时间和内存跟踪任务管理器

Syllabus的Python项目详细描述


教学大纲

用于机器学习应用程序的时间和内存跟踪任务管理器

Print It!

依赖关系

  • Python3
  • 打印
  • 回答

要求

  • 66列的最小终端宽度
  • ANSI颜色支持

用法

任务类

Task类是Syllabus的核心。任何程序中都只能从头开始创建一个任务;所有其他任务都应该使用subtask从该任务派生出来。

参数

  • name:str;任务名称
  • desc:str;任务描述
  • mp:bool;如果应该启用多处理,则为true。这将创建一个多处理托管队列,允许该队列与其他进程共享;但是,此操作需要创建一个专用进程,并且内存开销很大。因此,除非要使用多处理,否则不应启用mp标志。

核心方法

  • start(name=None, desc=None):启动任务(设置开始时间)。如果名称或说明不是“无”,则更新任务的名称和说明。
  • done(*objects, name=None, desc=None, nowait=False):将任务标记为已完成(设置结束时间)。
    • namedesc:名称和描述;如果没有,则更新名称和描述。
    • *objects:对象列表。添加对象的内存足迹,并将其存储以跟踪内存使用情况。
    • nowait:仅当任务是根任务时才考虑。如果nowait设置为true,程序将立即继续;如果nowait设置为false,则方法将阻塞,直到任务的会计处理完所有消息。
  • subtask(name='Child Task', desc=None) -> Task:创建子任务。创建新任务时应始终使用此方法,因为它将父任务的报告队列传递给子任务。
    • name:子任务名称
    • desc:子任务描述

状态,报告

  • info(msg):发送消息;msg可以是任意类型,只要msg可以转换成带str())的字符串就可以了
  • print(msg):别名info
  • error(e):发送错误。e不一定是例外。
  • warn(e):发送警告。e不一定是警告。
  • runtime() -> float:获取当前运行时。
  • status() -> (int, int):进度为(完成任务,总任务)
  • progress() -> float:进度为(完成任务/总任务)
  • add_task(n):将n任务添加到任务计数器
  • add_progress(n):将附加的n任务标记为已完成

多线程

  • pool(target, args, shared_args=[], shared_kwargs={}, reducer=None, recursive=True, split=2, name='Child Task Thread', threads=None, process=False):创建线程池。
    • target:目标函数
    • args:要传入的参数列表
    • shared_argsshared_kwargs:要传递给所有线程的共享参数
    • reducer(retval[]):如果传递了函数,则用于合并结果。应接受结果列表(由target返回)并返回组合结果。
    • recursive:递归减少?
    • split:如果recursive,每减少多少个条目?
    • name:子任务默认名称
    • threads:线程数;如果None,则使用cpu_count()代替

多处理

  • pool(target, args, shared_args=None, shared_init=None, reducer=None, recursive=True, split=2, name='Child Task Process', cores=None):创建进程池。
    • target:目标函数
    • args:要传入的参数列表
    • shared_args:要传递给所有线程的共享参数
    • shared_init:共享参数的初始值设定项
    • reducer(retval[]):如果传递了函数,则用于合并结果。应接受结果列表(由target返回)并返回组合结果。
    • recursive:递归减少?
    • split:如果recursive,每减少多少个条目?
    • name:子任务默认名称
    • cores:核心数;如果None,则使用cpu_count()代替

应用程序

参数

    <里>

    BasicTaskApp(*args, refresh_rate=20, **kwargs):带有更新输出的基本应用程序

    • refresh_rate:输出刷新率,单位为赫兹
    • 扩展Task;传递配置选项*args**kwargs
  • InteractiveTaskApp(*args, refresh_rate=20, **kwargs):更复杂的带有键盘控件的终端应用程序

    • refresh_rate:输出刷新率,单位为赫兹
    • 扩展Task;传递配置选项*args**kwargs
  • TaskViewer(file):保存任务树的查看器。

    • file:输入要打开和分析的文件名
    • 方法:
      • print():打印树(与BasicTaskApp格式相同)
      • save(file, color=False):将呈现的输出保存到文件
        • file:输出文件名
        • color:如果为false,则在保存之前删除ANSI转义序列

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当使用RequestDispatcher时,servlets Java最终没有被调用   java生成对具有可变参数数的方法的调用   java如何使用select子句中的参数化列映射iBATIS的查询?   java无法创建类型为org的插件。阿帕奇。登录中。log4j。果心阿佩德。元素RollingFile的RollingFileAppender   java当子实体和父实体之间存在OneTONE JPA关系时,是否可以将其与父实体一起持久化?   Android上的java Facebook集成fbconnect断开链接   获取方法调用方的java机制   从列表创建Oracle阵列时出现java问题   添加和检索元素的ArrayList的java ArrayList   在java中从字符串中删除无效的XML字符   java如何构建完整生成的maven模块   java如何准确地改变播放所有分辨率midi文件的速度?   shell javac:无效标志:/src/中位_度。ubuntu中的java   java使用从其他类的方法检索到的信息