在window环境下编译和安装DeepSpeed

DeepSpeed 是一个由 Microsoft 开发的深度学习优化库,旨在提高大规模深度学习模型的训练速度和效率。本文将介绍如何下载、安装和使用 DeepSpeed。

环境准备

需要安装 Git 以便从 GitHub 下载 DeepSpeed 源代码。可以从 Git 官方网站 下载并安装最新版本的 Git。

DeepSpeed 依赖于 PyTorch,因此需要先安装最新稳定版的 PyTorch。可以从 PyTorch 官方网站 选择合适的版本进行安装。以下是一个安装示例:

pip install torch torchvision torchaudio

安装 CUDA 编译器,DeepSpeed 需要 CUDA 编译器来编译 CUDA 代码。可以从 NVIDIA CUDA 官方文档 选择并安装合适版本的 CUDA 编译器。安装完成后,需要设置相应的环境变量,使得 CUDA 编译器可以被系统识别。

克隆 DeepSpeed 仓库

使用 Git 克隆 DeepSpeed 源代码:

git clone https://github.com/microsoft/DeepSpeed.git

在这里插入图片描述

进入 DeepSpeed 目录克隆完成后,进入 DeepSpeed 源代码目录:

cd DeepSpeed

在 Windows 系统下,可以使用以下命令来编译 DeepSpeed:

build_win.bat

编译完成后,会生成一个名为 deepspeed-0.8.3+6eca037c-cp310-cp310-win_amd64.whl 的文件。此文件是 DeepSpeed 的安装包。

如果这里编译不成功需要提前安装VS,并且按照下图安装对应的模块内容。

在这里插入图片描述
都选好之后完成安装,接下来在deepspeed目录下执行。build_win.bat

在这里插入图片描述
会生成 deepspeed-0.8.3+6eca037c-cp310-cp310-win_amd64.whl 文件。这里我编译了2个版本3.9和3.10供使用。或者进入 DeepSpeed/releases 自行查找对应版本。

在这里插入图片描述
完事之后可以在win系统直接进行安装。
在这里插入图片描述

使用 pip 安装生成的 .whl 文件。以下是安装命令:

pip install deepspeed-0.8.3+6eca037c-cp310-cp310-win_amd64.whl

安装不同版本

如果需要安装其他版本的 DeepSpeed,可以从 DeepSpeed 发布页面 下载对应版本的 .whl 文件,并使用相同的 pip 命令进行安装。

使用 DeepSpeed

安装完成后,可以在 Python 脚本中导入并使用 DeepSpeed:

import deepspeed

DeepSpeed 需要一个配置文件来定义训练过程中的各种参数。以下是一个示例配置文件 ds_config.json

{"train_batch_size": 32,"gradient_accumulation_steps": 4,"fp16": {"enabled": true}
}

在训练脚本中,使用 DeepSpeed 初始化模型:

model_engine, optimizer, _, _ = deepspeed.initialize(model=model,config_params="ds_config.json",optimizer=optimizer
)

使用 DeepSpeed 进行模型训练:

for step, batch in enumerate(data_loader):outputs = model_engine(batch)loss = outputs.lossmodel_engine.backward(loss)model_engine.step()

总结

本文介绍了如何下载、安装和使用 DeepSpeed 进行深度学习模型的优化和训练。通过安装最新版本的 PyTorch 和 CUDA 编译器,并编译和安装 DeepSpeed,可以显著提高大规模深度学习模型的训练速度和效率。更多详细信息可以参考 DeepSpeed 官方文档。

参考链接

  • DeepSpeed 官方文档
  • Git 官方网站
  • PyTorch 官方网站
  • NVIDIA CUDA 官方文档
  • DeepSpeed 发布页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/415793.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

毕业设计选题系统

一、项目概述 Hi,大家好,今天分享的项目是《毕业设计选题系统》。 毕业论文选题是大学教学管理中的重要环节,关系到高校的教学质量。传统的手工管理方式工作效率低下、管理繁琐,浪费教师和学生的时间与精力的问题。本系统以提高…

c++内存管理和模板

C语言malloc calloc和realloc的弊端 C语言的这三个函数对于内置类型的处理是还可以的,但是对自定义类型就无法处理了,因为c自定义类型在初始化的时候是自动调用构造函数的,而C语言的这三个函数是无法初始化内置类型的,于是我们下…

JetBrains`s IntelliJ IDEA springboot项目 gradle-bin安装 国内加速

gradle wapper加速 可以看到,一般我们直接init的springboot项目会默认使用wapper来安装不同版本的gradle,但services.gradle.org网速过慢,我们选择切换为国内源 发现一篇同样的文档,并在此补充多个源 源名urlgradle(原本)https\://service…

网站如何针对不同的DDOS进行防御?

建设网站租用服务器是多数企业及个人的选择,一个安全稳定的服务器对网站的重要性无需再赘述。要保证服务器租用的安全和稳定,除了需要服务器自身有强大的硬、软件基础之外,还需要防范外部的一些因素,常见的就是各种网络攻击&#…

接口测试 —— 如何设计高效的测试用例!

摘要: 随着互联网应用的日益复杂化,接口测试已成为保证软件质量不可或缺的一部分。本文将探讨如何有效地设计接口测试用例,并提供实用的建议和示例。 一、引言 接口测试(API测试)是确保系统各部分之间交互正确性的关键…

信息安全--(四)网络安全体系与安全模型(二)

其他安全模型 ■纵深防御模型:①安全保护②安全监测③实时响应④恢复 ■分层防护模型:参考OSI模型,对保护对象进行层次化保护。 ■等级保护模型:将信息系统划分成不同安全保护等级,采取相 应的保护措施。 ■网络生…

【MySQL-24】万字全面解析<索引>——【介绍&语法&性能分析&使用规则】

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

视频智能分析打手机检测算法安防监控打手机检测算法应用场景、算法源码、算法模型介绍

随着智能手机的普及,手机已成为人们生活中不可或缺的一部分。然而,在某些场合,如驾驶、会议、学校课堂等,不当使用手机可能会导致安全隐患或干扰他人。因此,开发出一种能够准确识别并阻止不当使用手机的行为检测算法显…

网吧业务安全对抗(有源码)

网吧业务竞争激烈,网吧都会有以下系统软件。 无盘: 无盘是指没有硬盘。好处是统一维护管理和节约成本。本人研究无盘好几年,后面会专门发帖介绍。 计费: 是指收费系统。 营销软件: 包括销售饮品、‌零食和向客户发送电子邮件营销和短信营销等。产品如…

springboot,maven多模块开发,子模块获取不到父模块添加的依赖,有多个root模块问题解决

错误示范 我以为放进去然后重载一下就是子模块了 导致后续在外层加的依赖,其article都接收不到 解决方案 需要在父模块的modules注册子模块 修改前后对比 此时子模块也能获取父模块的依赖

在Ubuntu/Linux下重温FC游戏——超级玛丽奥

文章目录 在Ubuntu/Linux下重温FC游戏——超级玛丽奥1 概述2 安装 FCEUX 模拟器3 下载 FC ROMS4 重温时光 在Ubuntu/Linux下重温FC游戏——超级玛丽奥 1 概述 FC 游戏机,是任天堂生产、发行和销售的 8 位第三世代家用游戏机,日本版官方名称为家庭电脑&…

Java源码学习之高并发编程基础——AQS源码剖析之线程间通信之条件等待队列

1.前言&目录 前言: 在Java中,使用synchronized关键字构建的锁,线程间通信可以使用某对象实例的wait/notify机制完成。AQS同样也提供了一套线程间通信的解决方案——条件等待队列。 在AQS源码分析的两篇文章AQS源码分析(上&am…

逻辑器件输出高阻态时,输出端口的电平是什么状态呢?

高阻态是逻辑器件输出端口的一种状态,当端口处于高阻态时,输入端口的电平变化不会引起输出端口变化,不会对与之相连的后级输入端口或总线产生影响,对于总线架构的电路极为重要。   输出端口处于高阻态时,输出端口处于…

优秀软件工程师的工作思维

引言 在快速迭代的软件开发领域,软件工程师不仅需要精通编程技术,还需要具备产品思维、技术思维和工程思维,这三种思维相辅相成,共同推动产品的成功。本文将借鉴陈春花等管理学者的思考方式,深入剖析软件工程师如何在…

数据恢复工具,电脑+手机双端,十分好用!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 今天给大家安利两款数据恢复工具,分别为电脑手机双端,无论是因为格式化误操作、设备损坏还是其他意外情况,都能轻松找回重要的文件、照片、视频等数…

什么是串口服务器?

1.什么是串口服务器? 了解串口服务器之前,我们需要先了解什么串口。 串口:又叫串行数据接口,主要是用来表示传递各种的数据的通信接口,通常指COM口。一般分为RS232、RS422、与RS485三种。RS232接口:采用全…

Datawhale X 李宏毅苹果书 AI夏令营 Task_1深度学习详解入门

目录 一、机器学习的基本概念 二、机器学习的主要任务类型 三、案例学习(以视频的点击次数预测为例) 四、梯度下降问题 一、机器学习的基本概念 机器学习,顾名思义,是让机器具备学习的能力。具体来说,机器学习就是…

ASP.NET MVC+LayUI视频上传完整教程

前言 前段时间在使用APS.NET MVCLayUI做视频上传功能的时,发现当上传一些内存比较大的视频就会提示上传失败,后来通过查阅相关资料发现.NET MVC框架为考虑安全问题,在运行时对请求的文件的长度(大小)做了限制默认为4M…

维信小程序禁止截屏/录屏

一、维信小程序禁止截屏/录屏 //录屏截屏,禁用wx.setVisualEffectOnCapture({visualEffect:hidden});wx.setVisualEffectOnCapture(Object object) 测试安卓手机: 用户截屏,被禁用 用户录屏,录制的是空白内容/黑色内容的视频。 二、微信小…

一种常用嵌入式开发代码库

链接:https://gitee.com/zhangxinyuanqi/varch 使用开源协议:GPL-2.0 varch简介 varch(we-architecture,意为我们的框架库)是嵌入式C语言常用代码模块库,包含了嵌入式中常用的算法库, 数据结构&#xff…