• Wandb:模型训练最强辅助


    如果说到深度学习中训练数据的记录工具,最先想到应该是TensorBoard(或者TensorBoardX)。不过,相比较TensorBoard而言,Wandb更加的强大,主要体现在以下的几个方面:

    1. 复现模型:Wandb更有利于复现模型。
      这是因为Wandb不仅记录指标,还会记录超参数和代码版本。
    2. 自动上传云端:
      如果你把项目交给同事或者要去度假,Wandb可以让你便捷地查看你制作的所有模型,你就不必花费大量时间来重新运行旧实验。
    3. 快速、灵活的集成:
      只需5分钟即可把Wandb加到自己的项目。
      下载Wandb免费的开源Python包,然后在代码中插入几行,以后你每次运行模型都会得到记录完备的指标和记录。
    4. 集中式指示板:
      Wandb提供同样的集中式指示板。不管在哪里训练模型,不管是在本地机器、实验室集群还是在云端实例;
      这样就不必花时间从别的机器上复制TensorBoard文件。
    5. 强大的表格:
      对不同模型的结果进行搜索、筛选、分类和分组。
      可以轻而易举地查看成千上万个模型版本,并找到不同任务的最佳模型。
      而TensorBoard本身不适合大型项目。

    1 Wandb

    1.1 功能

    • 保存训练运行中使用的超参数
    • 搜索、比较和可视化训练的运行
    • 在运行的同时分析系统硬件的情况如:CPU和GPU使用率
    • 在团队中分享训练数据
    • 永远保存可用的实验记录

    1.2 提供的工具

    • Dashboard:记录实验过程、将结果可视化;

    • Reports:保存和分享可复制的成果/结论;

     

    • Sweeps:通过改变超参数来优化模型;

    • Artifacts:可以自己搭建pipline实现保存储存数据集和模型以及评估结果的流程。

    1.3 将会上传哪些内容?Wandb记录的全部数据都保存在本地机器上,位于一个wandb路径,然后同步到云端。(1)自动记录

    • 系统指标:处理器和GPU使用率、网络等。由命令nvidia-smi得出这些指标,这些指标位于运行页“系统”选项卡。
    • 命令行:记录标准输出和标准错误,并显示于运行页“日志”选项卡。
    • git提交:记录最近的git提交,并显示于运行页“概况”选项卡。
    • 文件:requirements.txt文件,以及用于运行项并保存在wandb路径的全部文件,将被上传并显示于运行页“文件”选项卡。

    (2)有明确调用才记录 当涉及数据和模型指标时,你可以明确决定要记录哪些东西。

    • 数据集:你必须明确记录图像或其它数据集样本,这样才能保存到权阈。
    • PyTorch梯度:加入wandb.watch(模型),即可在界面中看到权值的梯度直方图。
    • 配置(config):记录超参数、数据集链接以及所使用的架构名称,并作为config的参数,传值方式如下:wandb.init(config=your_config_dictionary)
    • 指标:用wandb.log()记录模型的参数。如果你记录的是训练循环内的指标,如准确率、损失,就可以在界面中看到实时更新的图表。

    2 Wandb的五行代码使用法

    Wandb 基本接口如下:

    wandb.init 在训练脚本开头初始化一个新的运行项;
    
    wandb.config 跟踪超参数;
    
    wandb.log 在训练循环中持续记录变化的指标;
    
    wandb.save 保存运行项相关文件,如模型权值;
    
    wandb.restore 运行指定运行项时,恢复代码状态。

    对于Any framework,使用wandb的代码如下:

    # Flexible integration for any Python script
    import wandb
    
    # 1. Start a W&B run
    wandb.init(project='gpt3')
    
    # 2. Save model inputs and hyperparameters
    config = wandb.config
    config.learning_rate = 0.01
    
    # Model training here
    # 3. Log metrics over time to visualize performance
    wandb.log({"loss": loss})

    原文链接:https://zhuanlan.zhihu.com/p/342300434

  • 相关阅读:
    epoll 使用详解
    STL 较详尽总结
    可视化对比排序算法
    统治世界的十大算法
    Vector Demo
    Git远程操作(附重要原理图)
    Wireshark(五):TCP窗口与拥塞处理
    Wireshark(四):网络性能排查之TCP重传与重复ACK
    Wireshark(三):应用Wireshark IO图形工具分析数据流
    Wireshark(二):应用Wireshark观察基本网络协议
  • 原文地址:https://www.cnblogs.com/sddai/p/16112863.html
Copyright © 2020-2023  润新知