动手学深度学习d2l包M4芯片 gpu加速

部署运行你感兴趣的模型镜像

conda创建环境

CONDA_SUBDIR=osx-arm64 conda create -n ml python=3.9 -c conda-forge
conda env config vars set CONDA_SUBDIR=osx-arm64
conda activate ml

pip安装包

pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
pip install transformers datasets
pip install matplotlib

下载del源文件

del链接
放到本地项目内
在这里插入图片描述
修改del下的torch.py的两个函数内容

# 修改try gpu函数
def try_gpu(i=0):
    """Return gpu(i) if exists, otherwise return cpu().

    Defined in :numref:`sec_use_gpu`"""
    if torch.cuda.device_count() >= i + 1:
        return torch.device(f'cuda:{i}')
    try:
        return torch.device('mps')
    except:
        return torch.device('cpu')

# 修改try gpu函数
def try_all_gpus():
    """Return all available GPUs, or [cpu(),] if no GPU exists.

    Defined in :numref:`sec_use_gpu`"""
    devices = [torch.device(f'cuda:{i}')
               for i in range(torch.cuda.device_count())]
    try:
        device_macos = torch.device('mps')
    except:
        device_macos = torch.device('cpu')
    return devices if devices else [device_macos]

测试

运行lenet.ipynb测试效果
在这里插入图片描述
速度还可以。

还不懂的可以看M1版本的教程

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 关于动手学深度学习中的 `d2l` #### 使用 `d2l` 的基础环境配置 对于希望复现《动手学深度学习》书中实验的同学来说,安装并正确设置开发环境至关重要。推荐使用Anaconda来管理Python版本以及依赖库,这有助于减少不同操作系统之间的兼容性问题[^1]。 #### 安装 `d2l` 库 为了方便读者快速上手,《动手学深度学习》提供了配套的GitHub仓库,其中含了所有章节所需的辅助函数定义和其他资源文件。可以通过克隆该仓库获取最新版的 `d2l` 模块源码,并按照官方说明完成本地部署: ```bash git clone https://github.com/d2l-ai/d2l-zh.git cd d2l-zh pip install -r requirements.txt ``` 上述命令会下载项目至当前目录下,并自动安装运行本书所需的一切第三方库。 #### 运行示例代码片段 考虑到部分初学者可能遇到绘图功能无法正常工作的情况,在调用如下所示的数据可视化语句前,请确认已成功导入matplotlib.pyplot模块并且设置了合适的显示参数: ```python import matplotlib.pyplot as plt from d2l import torch as d2l # 设置图像大小 d2l.set_figsize() plt.scatter(features[:, 1].detach().numpy(), labels.detach().numpy(), 1); plt.show() # 显示图形窗口 ``` 这段脚本用于绘制散点图展示特征与标签间的关系,注意最后一行加入了 `plt.show()` 方法确保图表能够在Jupyter Notebook之外的环境中被渲染出来[^3]。 #### 循环神经网络输入数据准备 当处理涉及时间序列的任务时,通常需要调整张量结构使其满足特定框架的要求。例如,在构建编码器解码器架构下的Seq2Seq模型过程中,可能会涉及到对批量样本执行维度交换的操作,即通过 `.permute(dims)` 函数改变原有排列顺序以匹配PyTorch内部API期望的形式——`(seq_len, batch_size, feature_dim)` : ```python import torch batch_data = ... # 假设这是原始批次化后的三维张量 transposed_batch = batch_data.permute(1, 0, 2) # 调整为(seq_len, batch_size, embedding_size) print(f'Permuted tensor shape: {transposed_batch.shape}') ``` 此变换使得每一步的时间戳成为最外层迭代对象,便于后续传递给RNN单元进行逐帧计算[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值