Files

1 line
11 KiB
JavaScript

"use strict";(globalThis.webpackChunkblog=globalThis.webpackChunkblog||[]).push([[5723],{28453:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>i});var a=t(96540);const r={},s=a.createContext(r);function l(e){const n=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),a.createElement(s.Provider,{value:n},e.children)}},66404:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"id":"\u4e2a\u4eba\u77e5\u8bc6\u5e93/AI/PyTorch/\u7b2c\u4e09\u7ae0/3.3 \u6570\u636e\u8bfb\u5165","title":"3.3 \u6570\u636e\u8bfb\u5165.md","description":"|\u4f5c\u8005|\u4fee\u8ba2\u65f6\u95f4|","source":"@site/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/10.AI/01.PyTorch/03.\u7b2c\u4e09\u7ae0/3.3 \u6570\u636e\u8bfb\u5165.md","sourceDirName":"\u4e2a\u4eba\u77e5\u8bc6\u5e93/10.AI/01.PyTorch/03.\u7b2c\u4e09\u7ae0","slug":"/\u4e2a\u4eba\u77e5\u8bc6\u5e93/AI/PyTorch/\u7b2c\u4e09\u7ae0/3.3 \u6570\u636e\u8bfb\u5165","permalink":"/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/AI/PyTorch/\u7b2c\u4e09\u7ae0/3.3 \u6570\u636e\u8bfb\u5165","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/10.AI/01.PyTorch/03.\u7b2c\u4e09\u7ae0/3.3 \u6570\u636e\u8bfb\u5165.md","tags":[],"version":"current","frontMatter":{},"sidebar":"tutorialSidebar","previous":{"title":"3.2 \u57fa\u672c\u914d\u7f6e.md","permalink":"/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/AI/PyTorch/\u7b2c\u4e09\u7ae0/3.2 \u57fa\u672c\u914d\u7f6e"},"next":{"title":"3.4 \u6a21\u578b\u6784\u5efa.md","permalink":"/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/AI/PyTorch/\u7b2c\u4e09\u7ae0/3.4 \u6a21\u578b\u6784\u5efa"}}');var r=t(74848),s=t(28453);const l={},i="3.3 \u6570\u636e\u8bfb\u5165.md",o={},d=[];function c(e){const n={a:"a",code:"code",h1:"h1",header:"header",img:"img",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"33-\u6570\u636e\u8bfb\u5165md",children:"3.3 \u6570\u636e\u8bfb\u5165.md"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{style:{textAlign:"left"},children:"\u4f5c\u8005"}),(0,r.jsx)(n.th,{style:{textAlign:"left"},children:"\u4fee\u8ba2\u65f6\u95f4"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{style:{textAlign:"left"},children:(0,r.jsx)(n.img,{src:"https://img.shields.io/badge/wjlin0-%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93-green",alt:"wjlin0"})}),(0,r.jsx)(n.td,{style:{textAlign:"left"},children:"2026-06-07 20:53:15"})]})})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{style:{textAlign:"left"},children:"\u4f5c\u8005"}),(0,r.jsx)(n.th,{style:{textAlign:"left"},children:"\u4fee\u8ba2\u65f6\u95f4"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{style:{textAlign:"left"},children:(0,r.jsx)(n.img,{src:"https://img.shields.io/badge/wjlin0-%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93-green",alt:"wjlin0"})}),(0,r.jsx)(n.td,{style:{textAlign:"left"},children:"2025-10-31 15:44:29"})]})})]}),"\n",(0,r.jsx)(n.h1,{id:"33-\u6570\u636e\u8bfb\u5165",children:"3.3 \u6570\u636e\u8bfb\u5165"}),"\n",(0,r.jsx)(n.p,{children:"PyTorch\u6570\u636e\u8bfb\u5165\u662f\u901a\u8fc7Dataset+DataLoader\u7684\u65b9\u5f0f\u5b8c\u6210\u7684\uff0cDataset\u5b9a\u4e49\u597d\u6570\u636e\u7684\u683c\u5f0f\u548c\u6570\u636e\u53d8\u6362\u5f62\u5f0f\uff0cDataLoader\u7528iterative\u7684\u65b9\u5f0f\u4e0d\u65ad\u8bfb\u5165\u6279\u6b21\u6570\u636e\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u7ecf\u8fc7\u672c\u8282\u7684\u5b66\u4e60\uff0c\u4f60\u5c06\u6536\u83b7\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"PyTorch\u5e38\u89c1\u7684\u6570\u636e\u8bfb\u53d6\u65b9\u5f0f"}),"\n",(0,r.jsx)(n.li,{children:"\u6784\u5efa\u81ea\u5df1\u7684\u6570\u636e\u8bfb\u53d6\u6d41\u7a0b"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u6211\u4eec\u53ef\u4ee5\u5b9a\u4e49\u81ea\u5df1\u7684Dataset\u7c7b\u6765\u5b9e\u73b0\u7075\u6d3b\u7684\u6570\u636e\u8bfb\u53d6\uff0c\u5b9a\u4e49\u7684\u7c7b\u9700\u8981\u7ee7\u627fPyTorch\u81ea\u8eab\u7684Dataset\u7c7b\u3002\u4e3b\u8981\u5305\u542b\u4e09\u4e2a\u51fd\u6570\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"__init__"}),": \u7528\u4e8e\u5411\u7c7b\u4e2d\u4f20\u5165\u5916\u90e8\u53c2\u6570\uff0c\u540c\u65f6\u5b9a\u4e49\u6837\u672c\u96c6"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"__getitem__"}),": \u7528\u4e8e\u9010\u4e2a\u8bfb\u53d6\u6837\u672c\u96c6\u5408\u4e2d\u7684\u5143\u7d20\uff0c\u53ef\u4ee5\u8fdb\u884c\u4e00\u5b9a\u7684\u53d8\u6362\uff0c\u5e76\u5c06\u8fd4\u56de\u8bad\u7ec3/\u9a8c\u8bc1\u6240\u9700\u7684\u6570\u636e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"__len__"}),": \u7528\u4e8e\u8fd4\u56de\u6570\u636e\u96c6\u7684\u6837\u672c\u6570"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u4e0b\u9762\u4ee5cifar10\u6570\u636e\u96c6\u4e3a\u4f8b\u7ed9\u51fa\u6784\u5efaDataset\u7c7b\u7684\u65b9\u5f0f\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"import torch\nfrom torchvision import datasets\ntrain_data = datasets.ImageFolder(train_path, transform=data_transform)\nval_data = datasets.ImageFolder(val_path, transform=data_transform)\n"})}),"\n",(0,r.jsx)(n.p,{children:"\u8fd9\u91cc\u4f7f\u7528\u4e86PyTorch\u81ea\u5e26\u7684ImageFolder\u7c7b\u7684\u7528\u4e8e\u8bfb\u53d6\u6309\u4e00\u5b9a\u7ed3\u6784\u5b58\u50a8\u7684\u56fe\u7247\u6570\u636e\uff08path\u5bf9\u5e94\u56fe\u7247\u5b58\u653e\u7684\u76ee\u5f55\uff0c\u76ee\u5f55\u4e0b\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\uff0c\u6bcf\u4e2a\u5b50\u76ee\u5f55\u5bf9\u5e94\u5c5e\u4e8e\u540c\u4e00\u4e2a\u7c7b\u7684\u56fe\u7247\uff09\u3002"}),"\n",(0,r.jsxs)(n.p,{children:["\u5176\u4e2d",(0,r.jsx)(n.code,{children:"data_transform"}),"\u53ef\u4ee5\u5bf9\u56fe\u50cf\u8fdb\u884c\u4e00\u5b9a\u7684\u53d8\u6362\uff0c\u5982\u7ffb\u8f6c\u3001\u88c1\u526a\u7b49\u64cd\u4f5c\uff0c\u53ef\u81ea\u5df1\u5b9a\u4e49\u3002\u8fd9\u91cc\u6211\u4eec\u4f1a\u5728\u4e0b\u4e00\u7ae0\u901a\u8fc7\u5b9e\u6218\u52a0\u4ee5\u4ecb\u7ecd\u5e76\u5728",(0,r.jsx)(n.a,{href:"https://github.com/datawhalechina/thorough-pytorch/tree/main/notebook/%E7%AC%AC%E5%85%AB%E7%AB%A0%20PyTorch%E7%94%9F%E6%80%81%E7%AE%80%E4%BB%8B",children:"notebook"}),"\u4e2d\u505a\u4e86\u793a\u4f8b\u4ee3\u7801\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8fd9\u91cc\u6211\u4eec\u7ed9\u51fa\u4e00\u4e2a\u81ea\u5df1\u5b9a\u5236Dataset\u7684\u4f8b\u5b50"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'\nimport os\nimport pandas as pd\nfrom torchvision.io import read_image\n\nclass MyDataset(Dataset):\n def __init__(self, annotations_file, img_dir, transform=None, target_transform=None):\n """\n Args:\n annotations_file (string): Path to the csv file with annotations.\n img_dir (string): Directory with all the images.\n transform (callable, optional): Optional transform to be applied\n on a sample.\n target_transform (callable, optional): Optional transform to be applied\n on the target.\n """\n self.img_labels = pd.read_csv(annotations_file)\n self.img_dir = img_dir\n self.transform = transform\n self.target_transform = target_transform\n\n def __len__(self):\n return len(self.img_labels)\n\n def __getitem__(self, idx):\n """\n Args:\n idx (int): Index\n """\n img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0])\n image = read_image(img_path)\n label = self.img_labels.iloc[idx, 1]\n if self.transform:\n image = self.transform(image)\n if self.target_transform:\n label = self.target_transform(label)\n return image, label\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u5176\u4e2d\uff0c\u6211\u4eec\u7684\u6807\u7b7e\u7c7b\u4f3c\u4e8e\u4ee5\u4e0b\u7684\u5f62\u5f0f\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-csv",children:"image1.jpg, 0\nimage2.jpg, 1\n......\nimage9.jpg, 9\n"})}),"\n",(0,r.jsx)(n.p,{children:"\u6784\u5efa\u597dDataset\u540e\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528DataLoader\u6765\u6309\u6279\u6b21\u8bfb\u5165\u6570\u636e\u4e86\uff0c\u5b9e\u73b0\u4ee3\u7801\u5982\u4e0b\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"from torch.utils.data import DataLoader\n\ntrain_loader = torch.utils.data.DataLoader(train_data, batch_size=batch_size, num_workers=4, shuffle=True, drop_last=True)\nval_loader = torch.utils.data.DataLoader(val_data, batch_size=batch_size, num_workers=4, shuffle=False)\n"})}),"\n",(0,r.jsx)(n.p,{children:"\u5176\u4e2d:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"batch_size\uff1a\u6837\u672c\u662f\u6309\u201c\u6279\u201d\u8bfb\u5165\u7684\uff0cbatch_size\u5c31\u662f\u6bcf\u6b21\u8bfb\u5165\u7684\u6837\u672c\u6570"}),"\n",(0,r.jsx)(n.li,{children:"num_workers\uff1a\u6709\u591a\u5c11\u4e2a\u8fdb\u7a0b\u7528\u4e8e\u8bfb\u53d6\u6570\u636e\uff0cWindows\u4e0b\u8be5\u53c2\u6570\u8bbe\u7f6e\u4e3a0\uff0cLinux\u4e0b\u5e38\u89c1\u7684\u4e3a4\u6216\u80058\uff0c\u6839\u636e\u81ea\u5df1\u7684\u7535\u8111\u914d\u7f6e\u6765\u8bbe\u7f6e"}),"\n",(0,r.jsx)(n.li,{children:"shuffle\uff1a\u662f\u5426\u5c06\u8bfb\u5165\u7684\u6570\u636e\u6253\u4e71\uff0c\u4e00\u822c\u5728\u8bad\u7ec3\u96c6\u4e2d\u8bbe\u7f6e\u4e3aTrue\uff0c\u9a8c\u8bc1\u96c6\u4e2d\u8bbe\u7f6e\u4e3aFalse"}),"\n",(0,r.jsx)(n.li,{children:"drop_last\uff1a\u5bf9\u4e8e\u6837\u672c\u6700\u540e\u4e00\u90e8\u5206\u6ca1\u6709\u8fbe\u5230\u6279\u6b21\u6570\u7684\u6837\u672c\uff0c\u4f7f\u5176\u4e0d\u518d\u53c2\u4e0e\u8bad\u7ec3"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u8fd9\u91cc\u53ef\u4ee5\u770b\u4e00\u4e0b\u6211\u4eec\u7684\u52a0\u8f7d\u7684\u6570\u636e\u3002PyTorch\u4e2d\u7684DataLoader\u7684\u8bfb\u53d6\u53ef\u4ee5\u4f7f\u7528next\u548citer\u6765\u5b8c\u6210"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"import matplotlib.pyplot as plt\nimages, labels = next(iter(val_loader))\nprint(images.shape)\nplt.imshow(images[0].transpose(1,2,0))\nplt.show()\n"})})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}}}]);