<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Dataset 類提供一種方式去獲取資料及其標籤
主要有兩個目的:
Hymenoptera (膜翅目昆蟲)資料集下載地址:
連結: https://pan.baidu.com/s/1XKwXsAtE2yzZW2IsvBDpnw?pwd=8a5t
提取碼: 8a5t
這是一個螞蟻蜜蜂二分類的資料集,通常資料集有以下三種組織形式(上面的資料集屬於第一種):
label
資訊在另一個資料夾下label
直接寫在圖片名稱裡在Pycharm 中,點選下方的PythonConsole進入控制檯進行操作(通過控制檯可以看到變數的詳細資訊)
首先載入圖片,逐行輸入下方程式碼:
from PIL import Image img_path = "./dataset/hymenoptera_data/train/ants/0013035.jpg" img = Image.open(img_path)
此時我們就可以在右側看到相關變數的資訊:
點選img
變數,可以檢檢視片的詳細資訊。通過控制檯執行程式能夠直觀地獲取後續操作所需的資料:
最後可以通過img.show()
開啟圖片檢視:
同樣還是在控制檯逐行輸入以下程式碼:
dir_path = "dataset/hymenoptera_data/train/ants" import os img_path_list = os.listdir(dir_path) img_path_list[0]
我們就可以獲取到資料夾下的檔名稱,由於是使用控制檯,我們還可以在右側檢視列表的詳細資訊:
因此在控制檯操作是有很大的優點的,我們可以在控制檯逐行執行已經編寫好的檔案中的語句,通過檢視右側變數的值來判斷程式寫的是否有問題
下面的程式碼也可以在控制檯執行(可以多行復制貼上)來檢驗程式是否有誤
匯入所需標頭檔案:
from torch.utils.data import Dataset from PIL import Image import os
定義MyData
類:
__init__
:初始化函數__getitem__
:返回指定下標的圖片和標籤__len__
:返回資料集的大小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(self.root_dir, self.label_dir) self.img_path = os.listdir(self.path) def __getitem__(self, idx): img_name = self.img_path[idx] img_item_path = os.path.join(self.root_dir, self.label_dir, img_name) img = Image.open(img_item_path) label = self.label_dir return img, label def __len__(self): return len(self.img_path)
其中os.path.join()
可以實現多個路徑的合併且不出錯
建立 MyData
類的範例:
if __name__ == "__main__": root_dir = "../dataset/hymenoptera_data/train" ants_label_dir = "ants" bees_label_dir = "bees" ants_dataset = MyData(root_dir, ants_label_dir) bees_dataset = MyData(root_dir, bees_label_dir)
呼叫類中寫好的函數:
img, label = ants_dataset.__getitem__(3) print(ants_dataset.__len__(), label) img.show()
同時我們也可以通過下面這種方式用已有的資料集來創造資料集:
train_dataset = ants_dataset + bees_dataset
batch_size
的值對資料進行打包import torchvision from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter
載入資料:
test_data = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor()) test_loader = DataLoader(dataset=test_data, batch_size=64, shuffle=True, num_workers=0, drop_last=True)
測試:
img, target = test_data[0] print(img.shape) print(target)
進行紀錄檔記錄,開始訓練:
writer = SummaryWriter("dataloader") for epoch in range(2): step = 0 for data in test_loader: imgs, targets = data print(imgs.shape) print(targets) writer.add_images("Epoch: {}".format(epoch), imgs, step) step = step + 1 writer.close()
到此這篇關於PyTorch Dataset與DataLoader使用超詳細講解的文章就介紹到這了,更多相關PyTorch Dataset與DataLoader內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45