PyTorch深度学习入门个人笔记(一)
课程笔记(B站):PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】
B站链接
文章目录
前言
随着人工智能的不断发展,深度学习这门技术日益重要。
本文用作深度学习个人笔记,帮助加深理解 。
一 PyTorch加载数据
①pycharm可以申请学生认证,免费使用专业版;
②jupyter可以暂时先不安装
1. read_data.py
代码如下(示例):
from torch.utils.data import Dataset
from PIL import Image
import os
class MyData(Dataset):
def __init__(self, root_dir, label_dir):
self.root_dir = root_dir
self.label_dir = label_dir
self.path = os.path.join(self.root_dir, self.label_dir)
self.img_path = os.listdir(self.path)
def __getitem__(self, index):
img_name = self.img_path[index]
img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)
img = Image.open(img_item_path)
label = self.label_dir
return img, label
def __len__(self):
return len(self.img_path)
root_dir = "dataset/train"
ants_label_dir = "ants"
bees_label_dir = "bees"
ants_dataset = MyData(root_dir, ants_label_dir)
bees_dataset = MyData(root_dir, bees_label_dir)
train_dataset = ants_dataset + bees_dataset
2. rename_dataset.py
代码如下(示例):
import os
root_dir = 'dataset/train'
target_dir = 'ants_image'
img_path = os.listdir(os.path.join(root_dir, target_dir))
label = target_dir.split('_')[0]
out_dir = 'ants_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(label)
二 Tensorboard的使用
1. test_Tensorboard.py
代码如下(示例):
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer = SummaryWriter("logs")
image_path = "dataset/train/ants_image/0013035.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)
writer.add_image("test", img_array, 1, dataformats='HWC') # Note:从PIL到numpy需要在add_image()中指定shape中每一个数字/维表示的含义
# y = x
for i in range(100):
writer.add_scalar("y=2x", 3*i, i)
writer.close()
三 Transforms的使用
1.test_transforms.py
代码如下(示例):
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
# python 的用法 -》tensor数据类型
# 通过 transforms.ToTensor去看两个问题
# 2.为什么我们需要Tensor数据类型
img_path = "dataset/train/ants_image/0013035.jpg"
img = Image.open(img_path)
writer = SummaryWriter("logs")
# print(img)
# 1.transforms该如何使用(python)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
# print(tensor_img)
writer.add_image("Tensor_img", tensor_img)
writer.close()
2. UsefulTransforms.py
代码如下(示例):
from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")
img = Image.open("images/DSC_2258.jpg")
print(img)
# ToTensor
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("ToTensor", img_tensor)
# Normalize
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([2, 5, 2], [5, 3, 2])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize", img_norm,1)
writer.close()
总结
学会基本操作