在 Ubuntu 上使用 PyTorch 导入数据,通常有以下几种常见方式,从最基础到最规范:
import numpy as np
import torch
data = np.loadtxt('data.csv', delimiter=',')
x = torch.from_numpy(data)
print(x.shape)
import pandas as pd
import torch
df = pd.read_csv('data.csv')
x = torch.tensor(df.values, dtype=torch.float32)
torch.utils.data.Datasetfrom torch.utils.data import Dataset
class MyDataset(Dataset):
def __init__(self, data_path):
self.data = ... # 读取数据
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
x = self.data[idx]
y = ...
return x, y
使用:
from torch.utils.data import DataLoader
dataset = MyDataset('data.csv')
loader = DataLoader(dataset, batch_size=32, shuffle=True)
for x, y in loader:
print(x.shape, y.shape)
ImageFolder(最常用)适用于如下目录结构:
data/
train/
cat/
img1.jpg
dog/
img2.jpg
from torchvision import datasets, transforms
transform = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor()
])
dataset = datasets.ImageFolder('data/train', transform=transform)
loader = torch.utils.data.DataLoader(dataset, batch_size=32, shuffle=True)
from torchvision import datasets
train = datasets.CIFAR10(root='./data', train=True, download=True)
from torchtext.datasets import IMDB
train_iter = IMDB(split='train')
python -c "import torch; print(torch.__version__)"
python -m venv venv
source venv/bin/activate
pip install torch torchvision
device = 'cuda' if torch.cuda.is_available() else 'cpu'
x = x.to(device)
| 数据类型 | 推荐方式 |
|---|---|
| CSV / NumPy | torch.tensor |
| 自定义数据 | Dataset + DataLoader |
| 图片 | ImageFolder |
| 标准数据集 | torchvision / torchtext |
如果你能告诉我:
我可以直接给你一段 可运行的完整代码示例。