2023.4.6 pytorch学习记录(创建数据集、生成数据集标签txt文档、tensorboard使用、transforms使用)

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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值