重写 Dataset
from torch.utils.data.dataset import Dataset
from torchvision import transforms
class MyDataset(Dataset):
def __init__(self,img, label):
super(MyDataset, self).__init__()
self.img = img
self.label = label
self.transform = transforms
def __getitem__(self, index):
image = self.img[index]
label = self.label[index]
trans = self.transform.Compose([
transforms.ToTensor(), # 数据转化为tensor 并归一化
])
image = trans(image)
label = trans(label)
return image, label
def __len__(self):
return len(self.img)
**python导出安装包,python导入安装包
pip freeze
requirements.txt
pip install -r requirements.txt**
numpy 与 tensor转换
import torch
import numpy as np
x = torch.rand(1, 3, 512, 512) # ternsor
x = x.numpy() # numpy
# 结果 : torch.Size([1, 3, 512, 512]) --->(1, 3, 512, 512)
img = cv2.imread('./people.png',1) #(512, 512, 3)
img = img.reshape(1,3,img.shape[0],img.shape[1])# (1, 3, 512, 512)
print(img.shape)# (1, 3, 512, 512)
x = torch.tensor(img, dtype=torch.float) # 转化tensor 和 类型转换
print(x.shape) # torch.Size([1, 3, 512, 512])
# 或者:
x = np.float32(img) # 转化为float类型
x = torch.from_numpy(img) # 转化tensor
print(x.shape) # torch.Size([1, 3, 512, 512])
print(x.dtype)
pytorch中Tensor的数据类型
推荐总结 [ https://blog.csdn.net/moshiyaofei/article/details/89703161]