一、Tensorboard--可视化工具
1.使用逻辑:将代码运行过程中的某些数据保存在一个文件夹中,再读取这个文件夹中的数据,用浏览器显示出来
2.代码:
from torch.utiis.tensorboard import SummaryWriter writer = SummaryWriter("logs") #针对数值标量 #writer.add_scalar(tag, scalar_value, global_step = None, walltime = None) #global_step对应x轴,scalar_value对应y轴 #例如: for i in range(100): writer.add_scalar("y=2x", 2*i, i) writer.close() writer.add_scalar("train_loss", loss.item(), total_train_step) #针对图像 #writer.add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')通道数、高、宽 #writer.add_images(tag, img_tensor, global_step=None, walltime=None, dataformats='NCHW') #以上两个函数只接受tensor型或者numpy.array型的图片 #1) tensor型 使用torchvision.transforms.ToTensor() #2) numpy.array型 使用np.array(img_PIL)-->img_PIL=Image.open(image_path)或者用opencv读入 cv2.imread(image_path) #例如: test_data = torchvision.datasets.CIFAR10(root="./datasets", train=False, transform=torchvision.transforms.ToTensor(), download=True) test_loader = DataLoader(dataset=test_data, batchsize=64, shuffle=True, num_workers=0,drop_last=False) #img_tensor = torchvision.transforms.ToTensor(img)-->img = Image.open(image_path)以PIL格式打开 for i in range(10): img, target = test_data[i] writer.add_image("test_data", img, i) step = 0 for epoch in range(2): for data in test_loader: imgs, targets = data writer.add_images("Epoch:{}".format(epoch), imgs, step) step = step + 1 writer.close() #终端输入:tensorboard --logdir logs --port=6007
二、Transforms--常用的图像预处理方法
[可参考](https://blog.csdn.net/u011995719/article/details/85107009)
train_transform = transforms.Compose([ transforms.Resize((32, 32)), # 改变图片大小(H,W) transforms.RandomCrop(32, padding=4), # 随机裁剪 transforms.ToTensor(), # 图片转张量,同时归一化0-255 ---》 0-1 transforms.Normalize(norm_mean, norm_std), # 均值,标准差 ])