小土堆学习笔记1:Dataset类代码实践

本人只会C语言编程,C++了解一点皮毛,而且几乎都只是在本科课程、实验还有毕设中使用过,现在才开始学Python和深度学习。

刚好手边有以前买的教材,还有ChatGPT能够请教,顺便把学习过程中遇到的问题记录下来,也许能帮到其他初学者。

模块导入语句

from torch.utils.data import Dataset

from PIL import Image

import os

在解释这三行代码之前,首先解释一下连接这些单词之间的“.”以及后来出现的“_”代表什么意思。

先抽象地理解一下概念:什么是模块?这个B站和小红书的很多视频里都有讲过,模块就像是一个个工具箱,有的工具箱里还有小工具箱,那么这些工具箱(模块)之间就用"."来连接,例如“torch.utils”。以上这三行,就是为了获得我们需要的那些工具箱。

专业一点讲,“. ”在 Python 中表示访问某个对象或模块的属性或方法(即“打开工具箱中的小工具箱”)。例如 os.path 是从 os 模块中访问 path 子模块。

但是,最后一个工具箱被打开后,里面不再有更小的工具箱,而是某一件有具体使用功能的工具,例如锤子、扳手、螺丝刀等等,这时就会在这个工具与它所在的工具箱之间用"_"来连接,例如“root_dir”。

但我的这个理解有一点问题,按ChatGPT的说法:"_"只是变量或方法名的一部分,用于提高变量的可读性,不具有具体的操作含义(相比于“.”用来访问模块)。它通常用于将变量名中的单词分开,例如 root_dir 表示根目录,label_dir 表示标签目录。你可以把它看作是命名规范的一部分,类似于C语言中的命名约定。

然后就可以一行一行来理解这三行“模块导入语句”:

第一行:from torch.utils.data import Dataset

from ... import ...:这是 选择性导入,用于从某个模块中导入特定的类、函数或变量。

from: 用于从某个模块(工具箱)中导入指定的类或函数。就像打开一个工具箱并选择其中的某个工具来使用。

torch.utils.data: 这是一个PyTorch库中用于处理数据的子模块,torch 是一个流行的深度学习框架,utils 是工具模块,data 是其中负责数据处理的部分。

import Dataset: 从 torch.utils.data 中导入 Dataset 类。Dataset 是 PyTorch 中用于自定义数据集的类。

哪里用到了第一行导入的东西?其实就紧随其后:

class MyData(Dataset) 

它表示 MyData 类继承了 Dataset,因此它可以使用 Dataset 的功能。

第二行:from PIL import Image

PIL: 表示 Python Imaging Library(Python图像库),可以处理各种图像操作。虽然现在它通常叫做 Pillow,但 PIL 是它的老名字。

Image: 从 PIL 库中导入 Image 类,用来处理和加载图像。

哪里用到了这一行导入的工具?在这里:

img = Image.open(img_item_path)

这里 Image.open() 是用来打开并加载图像文件的函数,来自 PIL.Image 类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值