【Scala深度学习】PyTorch On Scala3 系列课程 第一章 01 :入门与环境搭建 【Ai Infra 3.0】[PyTorch Scala3 硕士研一课程]
章节 1: PyTorch ON Scala3入门与环境搭建本章将为PyTorch的使用做好准备。我们首先会配置必要的软件和环境。接着主要内容将转向PyTorch的核心数据结构张量。您将学习如何使用常用包管理器安装PyTorch。配置适合PyTorch项目的开发环境。理解张量是什么以及它们在PyTorch中的作用。根据现有数据或指定维度创建张量。对张量执行基本的数学运算和操作。认识PyTorch张量与NumPy数组之间的联系包括转换方法。学完本章您将拥有一个可用的PyTorch安装并牢固掌握基本的张量操作为后续的学习做好准备。PyTorch 是什么收藏PyTorch 是一个主要由 Meta AI 开发的开源机器学习库。它在研究和工业界都受到了广泛欢迎用于构建和训练深度学习模型。它是一个强大的工具集专门为满足现代机器学习应用的需求而设计。其核心功能在于PyTorch 提供了两个使其非常有效的基本功能张量计算与 NumPy 数组类似PyTorch 提供了称为张量的多维数组。然而PyTorch 张量带有一个主要优势它们可以方便地在图形处理器GPU或其他专用硬件加速器上处理。这种能力显著加快了训练大型神经网络所需的数值计算与仅使用 CPU 执行相比通常能将速度提高几个数量级。如果你使用过 NumPy你会发现操作这些张量的 API 会让你感到熟悉从而简化了转换过程。自动微分训练神经网络涉及根据损失函数的梯度调整模型参数。手动计算这些梯度既复杂又容易出错特别是对于深层架构。PyTorch 包含一个复杂的自动微分引擎称为Autograd。当对张量执行操作时Autograd会动态构建一个计算图。这个图会记录操作序列允许 PyTorch 在需要时通常通过调用.backward()使用链式法则自动计算梯度。与需要预先定义静态图的框架相比这种动态特性在模型设计上提供了相当大的灵活性。为何选用 PyTorch ON Scala3有几个因素促成了 PyTorch 的广泛使用Python 风格的接口PyTorch 与 Python 数据科学环境紧密结合。其 API 设计直观自然对于 Python 开发者来说相对容易学习和使用。调试通常感觉就像调试标准的 Python 代码。灵活性动态计算图由运行定义意味着网络的结构可以在执行期间改变。这对某些类型的模型特别有用如循环神经网络 (RNN)其中序列长度可能不同或者在模型内部实现复杂的控制流。丰富的生态体系PyTorch 得益于一套丰富的支持库和工具。像torchvision、torchaudio和torchtext这样的库针对特定应用领域分别是计算机视觉、音频和自然语言处理提供预构建的数据集、模型架构和数据转换。与 TensorBoard 等可视化工具的集成进一步提升了开发流程。研究与生产虽然最初因其灵活性而在研究社区中广受欢迎PyTorch 已大幅成熟现在包含了 TorchServe 和 TorchScript 等工具使其成为将模型部署到生产环境的可行选择。本章将带你开始了解 PyTorch ON Scala3通过关注第一个基本功能张量。你将学习如何创建它们、操作它们、执行基本运算并理解它们与 NumPy 数组的关系。掌握这些基础元素是第一步以使用 PyTorch 的强大功能构建和训练复杂的深度学习模型。安装与环境配置收藏在开始构建深度学习模型之前您需要配置好 PyTorch 开发环境。这包括安装核心库和设置您的工作区。由于本课程假定您熟悉 Python我们将侧重于将 PyTorch 集成到标准的 Python 环境中。选择安装方式首先建议 先安装 python 版本的Pytorch Conda 对比 Pip然后再安装Scala3.6.3 Sbt 1.1 Jupyter Amond.sh Scala kernel 有条件建议安装 cuda 和Nvidia GPU驱动PyTorch 可以使用两种主要的包管理工具安装CondaAnaconda 或 Miniconda 发行版的一部分和 PipPython 默认的包安装器。Conda在数据科学和机器学习场景中常用。Conda 同时管理包和环境简化了复杂依赖项的处理包括 GPU 加速所需的非 Python 库如 CUDA 工具包。如果您已经在使用 Anaconda这通常是最顺畅的路径。Pip标准的 Python 包安装器。它运行良好特别是当您倾向于使用venv等工具管理 Python 环境时。如果您需要 GPU 支持可能需要单独处理 NVIDIA 驱动和 CUDA 工具包的安装。为了保证可重现性并避免与其他项目冲突强烈建议将 PyTorch 安装在专门的虚拟环境中无论您选择 Conda 还是 Pip。安装步骤确切的安装命令取决于您的操作系统Linux、macOS、Windows、包管理工具Conda、Pip以及您需要仅支持 CPU 还是支持 GPU (CUDA)。最佳做法是始终查阅 PyTorch 官方网站 (pytorch.org)获取最新的安装命令生成器。选择您的偏好它将提供确切的运行命令。1. 使用 Conda首先创建并激活一个新的 Conda 环境将pytorch_env替换为您喜欢的名称并选择合适的 Python 版本# 创建环境conda create-npytorch_envpython3.12# Or 3.13, 3.14, etc.# 激活环境conda activate pytorch_env现在访问 PyTorch 网站选择您的操作系统、Conda、Python 版本和所需的 CUDA 版本或 CPU。复制生成的命令。它看起来会像这样仅为示例请从官网获取最新命令# CUDA 11.8 的 Conda 命令示例condainstallpytorch torchvision torchaudio pytorch-cuda12.9-cpytorch-cnvidia# 仅限 CPU 的 Conda 命令示例condainstallpytorch torchvision torchaudio cpuonly-cpytorch在您已激活的 Conda 环境中运行网站提供的命令。2. 使用 Pip首先使用venv创建并激活一个新的虚拟环境# 创建环境在您的项目目录中python-mvenv pytorch_env# 激活环境# Linux/macOS:sourcepytorch_env/bin/activate# Windows (命令提示符):.\pytorch_env\Scripts\activate# Windows (PowerShell):.\pytorch_env\Scripts\Activate.ps1接下来访问 PyTorch 网站选择您的操作系统、Pip、Python 版本和所需的 CUDA 版本或 CPU。复制生成的命令。它通常会涉及指定一个索引 URL 和可能的 CUDA 版本仅为示例请从官网获取最新命令# CUDA 12.9 的 Pip 命令示例pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu129# 仅限 CPU 的 Pip 命令示例pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu3**. 安装 Scala3**4**. 安装SBT**5. 安装jupyter及Almond.sh Scala3 kerenl在您已激活的虚拟环境中运行网站提供的命令。确保您的pip已更新到最新版本pip install --upgrade pip。GPU 支持 (CUDA)深度学习计算特别是矩阵乘法在使用 CUDA 并行计算平台的 NVIDIA GPU 上运行速度明显加快。要求您需要一块支持 CUDA 的 NVIDIA GPU。驱动和工具包您必须在安装支持 CUDA 的 PyTorch 版本之前在系统上安装相应的 NVIDIA 显示驱动程序和 CUDA 工具包。所需的 CUDA 工具包版本必须与 PyTorch 构建时所用的版本匹配例如12.9。Conda 可能会为您处理工具包的安装而使用 Pip 时您通常需要先在系统范围内安装它。请参阅 NVIDIA 的文档和 PyTorch 安装指南以获取具体信息。安装命令当使用 PyTorch 网站的命令生成器时选择 CUDA 版本将定制命令以安装 GPU 兼容的二进制文件。如果您没有兼容的 GPU 或初期不需要 GPU 加速只需在安装时选择“CPU”选项。您可以在 CPU 上执行所有操作尽管对于大型模型来说可能会慢一些。验证安装安装完成后您可以通过打开 Python 解释器在您已激活的虚拟环境中并运行以下代码来验证安装importtorch.*// 检查 PyTorch 版本println(sPyTorch Version: {torch.__version__})// 检查 CUDAGPU 支持是否可用valcuda_availabletorch.cuda.is_available()println(sCUDA Available:${cuda_available})ifcuda_available then// 获取可用 GPU 的数量print(fNumber of GPUs: {torch.cuda.device_count()})//获取当前 GPU 的名称print(fCurrent GPU Name: {torch.cuda.get_device_name(torch.cuda.current_device())})elseprint(PyTorch is using CPU.)// 创建一个简单的张量valxtorch.rand(2,3)println(成功创建了一个张量:)println(x)如果这些命令运行无误并报告了正确的版本和 CUDA 状态如果您安装了 GPU 版本并且硬件/驱动程序已设置好则为 True否则为 False您的安装就成功了。环境配置注意事项一致性在开始 PyTorch 项目或运行脚本之前请务必激活您的专用pytorch_env或您命名的其他环境。常用库您通常会搭配 PyTorch 使用其他库。使用conda install package或pip install package将它们安装到相同的环境中numpy用于数值操作和与其他库的接口。matplotlib或seaborn用于绘图和可视化。scikit-learn用于传统机器学习任务和实用工具。jupyterlab或notebook用于交互式开发。IDE将您的集成开发环境 (IDE)如 VS Code 或 PyCharm配置为使用位于虚拟环境中的 Python 解释器。这可确保代码自动补全和调试功能与 PyTorch 正常协作。PyTorch 安装完毕且环境配置好后您现在就可以开始学习其核心部分张量。