1. 法宝函数、编译器的初级使用和使用Dataset

  本篇博客,主要记录学习pytorch 中常用的"法宝函数"、Pycharm、cmd、jupyter notebook 的使用比较,以及 pytorch 中 Dataset的基本使用。
下面我主要从这三点进行介绍

学习 python 的"法宝函数"

  python常常被戏称为胶水语言,以数量庞大、功能齐全的第三方库而出名;这也说明了python难以完全掌握,需要灵活使用帮助文档,这也是我介绍这一节的原因!
  这里,我主要介绍两个python自带的函数,dir() 函数,和 help()函数。
下面,我们打开jupyter noteboook 运行一下子,查看效果:

          dir() 函数

  倘若你经常使用 windows 的cmd,那么你一定了解 dir 命令。说白了 dir就是用来显示当前目录下的文件信息(包括文件、函数、类等信息),python中的dir()函数也是如此,用于显示模块中的文件,或者是类内的函数。


          help() 函数

  help()函数主要是查看帮助文档,可以使函数的帮助文档,也可以是 类的帮助文档,甚至是模块的;当然了,使用help()往往是用于帮助我们理解类的继承,函数的功能以及调用方法。
如下所示:




同时 jupyter notebook 还支持使用 Dataset ?? 的形式来查看帮助文档



Pycharm、cmd、jupyter notebook的使用比较

          pycharm

使用pycharm书写文件往往是使用大的项目

          jupyter notebook

使用块来进行运行,更加简洁明了,但是配置起来较为麻烦

          pycharm 上的 python console

常常用于代码的调试,因为可以看到变量的类型和方法。因为之前的 pycharm 和 jupyter notebook 都比较常用,这里主要介绍一下 pycharm 下的 python console



Dataset 读取数据集


数据集的组织形式:

  1. 文件名就是label
  2. 直接 xml、json或者是xml

  没用过Dataset不用怕,首先查看他的帮助文档:


根据帮助文档,知道继承这个抽象类需要做着几件事情


from torch.utils.data import Dataset
import os
from PIL import Image


class MyData(Dataset):
    def __init__(self, root_dir, label_dir):
        self.root_dir = root_dir
        self.label_dir = label_dir
        self.path = os.path.join(root_dir, label_dir)
        self.img_path = os.listdir(self.path)

    def __getitem__(self, idx):
        img_name = self.img_path[idx]
        img_path = os.path.join(self.path, img_name)
        img = Image.open(img_path)
        label = self.label_dir
        return img, label

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


train_path = r"F:\projects\pycharm\pytorch_dl\test\hymenoptera_data\train"
label_ants = 'ants'
label_bees = 'bees'
data_ants = MyData(train_path, label_ants)
data_bees = MyData(train_path, label_bees)
print(len(data_bees))
print(len(data_ants))
data_all = data_ants + data_bees
print(len(data_all))

img_ant, label_ant = data_all[0]
img_bee, label_bee = data_all[121]

主要是使用了 os 库

import os
os.path.join() #用于路径连接,主要是解决 Linux 和windows下路径符号的问题
os.listdir() #显示路径下的文件,结果是一个列表

PIL中的Image类别

Image.open()进行打开图片


posted @ 2021-11-08 21:51  lucky_light  阅读(247)  评论(0编辑  收藏  举报