当前位置:首页 > 技术 > 正文内容

PyTorch基础教程

访客 技术 2026年5月30日 2

一、环境搭建与核心概念

1.1 环境配置流程

通过Anaconda创建虚拟环境:

conda create -n torch_env python=3.6

确认安装选项后输入y继续。访问官方文档获取适配CPU的安装指令,进入目标环境执行:

conda install pytorch torchvision torchaudio cpuonly -c pytorch

验证安装状态可通过以下方式: image (或执行print(torch.cuda.is_available())返回False表示CPU版本)

1.2 开发工具选择

配置PyCharm时需确保解释器指向正确环境。对于Jupyter Notebook,安装依赖包后可能需要调整版本兼容性:

conda install nb_conda
conda install tornado=4.5

启动后选择对应内核创建文件,输入import torch验证环境有效性。

1.3 核心调试方法

模块管理类比为工具集合: (1)dir()函数用于查看模块成员列表 (2)help()函数提供具体方法说明

示例```

dir(torch) ['AVG', 'AggregationType', ... 'cuda', ...] dir(torch.cuda) ['Any', 'BFloat16Storage', ... 'is_available', ...] help(torch.cuda.is_available) is_available() -> bool Returns a bool indicating if CUDA is currently available.


1.4 执行模式对比
--------------

|  | 脚本执行 | 控制台交互 | Notebook模式 |
|---|---|---|---|
| 执行粒度 | 整体运行 | 单行执行 | 单元格执行 |
| 优势 | 便于版本管理 | 实时变量检查 | 交互式开发 |
| 劣势 | 调试不便 | 代码组织困难 | 环境依赖 |

二、数据处理实践
===========

PyTorch数据处理核心组件:

| 数据集类 | 数据加载器 |
|---|---|
| 管理样本与标签 | 提供迭代接口 |

数据目录结构示例
![](https://img2024.cnblogs.com/blog/3352113/202401/3352113-20240111220817971-828074861.png)

操作步骤
① 将数据文件夹移至项目根目录
② 图像读取示例:

方式一

from PIL import Image img = Image.open("path\to\image.jpg")

方式二

import cv2 img_data = cv2.imread("path\to\image.jpg")


③ 自定义数据集实现:

代码示例```
from torch.utils.data import Dataset
from PIL import Image
import os

class CustomDataset(Dataset):
    def __init__(self, root, label):
        self.root = root
        self.label = label
        self.file_list = os.listdir(os.path.join(root, label))

    def __getitem__(self, index):
        file_name = self.file_list[index]
        file_path = os.path.join(self.root, self.label, file_name)
        image = Image.open(file_path)
        return image, self.label

    def __len__(self):
        return len(self.file_list)

# 使用示例
train_data = CustomDataset("data/train", "cats") + CustomDataset("data/train", "dogs")

标签: PyTorch

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。