1...................................................................................... #dir()函数能让我们知道工具箱以及工具箱中的分隔符有什么东西 #help()函数能让我们知道每个工具是如何使用的,工具的使用方法 from torch.utils.data import Dataset from torch.utils.tensorboard import SummaryWriter from PIL import Image import os import numpy as np from torchvision import transforms '''创建数据集 class MyData(Dataset): def __init__(self,root_dir,lable_dir): self.root_dir = root_dir self.lable_dir = lable_dir self.path = os.path.join(self.root_dir,self.lable_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.lable_dir,img_name) img = Image.open(img_item_path) label = self.lable_dir return img,label def __len__(self): return len(self.img_path) root_dir = 'dataset/train' ants_lable_dir = 'ants_image' bees_lable_dir = 'bees_image' ants_dataset = MyData(root_dir,ants_lable_dir) bees_dataset = MyData(root_dir,bees_lable_dir) ''' '''蚂蚁与蜜蜂数据集进行拼接,并显示图片 train_dataset = ants_dataset + bees_dataset img1,lable1 = train_dataset[124] img1.show() ''' '''生成数据集标签txt文档 root_dir = 'dataset/train' target_dir = 'bees' img_path = os.listdir(os.path.join(root_dir, target_dir)) label = target_dir.split('_')[0] out_dir = 'bees_label' for i in img_path: file_name = i.split('.jpg')[0] with open(os.path.join(root_dir, out_dir,"{}.txt".format(file_name)),'w') as f: f.write('bees') ''' ''' #tensorboard的使用 #SummaryWriter的使用方法 writer = SummaryWriter('logs') #writer.add_image() #y=2x 运行结束后终端通过tensorboard --logdir=logs --port=6007显示绘制的图像 #for i in range(100): # writer.add_scalar('y=2x',3*i,i) #writer.close() image_path = 'dataset/train/bees_image/16838648_415acd9e3f.jpg' image_PIL = Image.open(image_path) image_array = np.array(image_PIL) writer.add_image('test',image_array,2,dataformats='HWC') #第二步 writer.close() ''' ''' #transforms的使用 img_path = 'dataset/train/ants_image/5650366_e22b7e1065.jpg' img = Image.open(img_path) #读取以后是PIL格式 writer = SummaryWriter('image') tensor_trans = transforms.ToTensor() tensor_img = tensor_trans(img) writer.add_image('tensor_img',tensor_img) #writer.add_image('test',image_array,2,dataformats='HWC') writer.close() #print(tensor_img) ''' 2................................................................................ #常见的transforms #输入 PIL Image.open() #输出 tensor ToTensor() #作用 narrays cv.imread() from torch.utils.tensorboard import SummaryWriter from PIL import Image from torchvision import transforms writer = SummaryWriter('logs') img = Image.open('images/love.jpg') print(img) #ToTensor的使用 trans_totensor = transforms.ToTensor() img_tensor=trans_totensor(img) writer.add_image('totensor',img_tensor) #Normalize归一化的使用 trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5]) img_norm = trans_norm(img_tensor) writer.add_image('Normalize',img_norm) #Resize trans_resize = transforms.Resize((512,512)) img_resize = trans_resize(img) img_resize = trans_totensor(img_resize) #img_resize PIL -> img_resize tensor writer.add_image('Resize',img_resize,0) #Compose_Resize的使用 trans_resize_2 = transforms.Resize(512) trans_compose = transforms.Compose([trans_resize_2,trans_totensor]) #PIL -> PIL -> trans [trans_resize_2,trans_totensor]后面为输入,前面为输出 img_resize_2 = trans_compose(img) writer.add_image('Compose_Resize',img_resize_2,1) #RandomCrop裁剪的使用 trans_random = transforms.RandomCrop((500,1000)) trans_compose_2 = transforms.Compose([trans_random,trans_totensor]) for i in range(10): img_crop = trans_compose_2(img) writer.add_image('RandomCrop',img_crop,i) writer.close()
2023.4.6 pytorch学习记录(创建数据集、生成数据集标签txt文档、tensorboard使用、transforms使用)
于 2023-04-06 22:29:10 首次发布