重写 Dataset ; python导入、导出安装包;numpy 与 tensor转换

重写 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]

你可能感兴趣的:(python)