小土堆学习视频

1、python学习中的两大法宝函数

  • dir():打开,看见
  • help():说明书
dir(torch)
dir(torch.cuda)
dir(torch.cuda.is_available)
help(torch.cuda.is_available)

2、pycharm使用

项目及文件创建、python console控制台的使用

3、pytorch加载数据初认识

  • Dataset提供一种方式去获取数据及其label,如何获取每一个数据及其label,告诉我们总共有多少数据
  • Dataloader未后面的网络提供不同的数据形式

4、DataSet类代码实战

将蚂蚁数据集和蜜蜂数据集合并成我们需要的训练集:

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,idx):
        img_name = self.img_path[idx]
        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 = "ants"
ants_dataset = MyData(root_dir,ants_label_dir)
bees_dataset = MyData(root_dir,bees_label_dir)

train_dataset = ants_dataset + bees_dataset

5、Tensorboard的使用

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs")

#writer.add_image()

for i in range(100):
    writer.add_scalar("y=x",i,i)

writer.close()

在这里插入图片描述
小土堆学习视频_第1张图片
指定端口,避免端口冲突
在这里插入图片描述

  • add_image()函数的相关参数要求

小土堆学习视频_第2张图片

  • 利用Opencv读取图片,获得numpy型图片数据
cv_img = cv2.imread(image_path)
  • 利用numpy.array(),对PIL图片进行转换

小土堆学习视频_第3张图片

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image

writer = SummaryWriter("logs")
image_path = "dataset/train/ants/0013035.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)

writer.add_image("test",img_array,1,dataformats='HWC')

for i in range(100):
    writer.add_scalar("y=2*x",2*i,i)

writer.close()

6、Transforms的使用

小土堆学习视频_第4张图片

from torchvision import transforms
from PIL import Image
from torch.utils.tensorboard import SummaryWriter

#python的用法 =》tensor数据类型
#通过transforms.ToTensor去看两个问题

img_path = "dataset/train/ants/0013035.jpg"
img = Image.open(img_path)

writer = SummaryWriter("logs")

#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、为什么我们需要Tensor数据类型

小土堆学习视频_第5张图片

  • python中__call__的作用

小土堆学习视频_第6张图片
小土堆学习视频_第7张图片
小土堆学习视频_第8张图片
小土堆学习视频_第9张图片

  • ToTensor的使用

小土堆学习视频_第10张图片

  • Normalize的使用

小土堆学习视频_第11张图片
小土堆学习视频_第12张图片
小土堆学习视频_第13张图片
小土堆学习视频_第14张图片
小土堆学习视频_第15张图片
小土堆学习视频_第16张图片

小土堆学习视频_第17张图片
小土堆学习视频_第18张图片
小土堆学习视频_第19张图片

7、torchvision中数据集的使用

小土堆学习视频_第20张图片

  • 将数据集中的每张图片转换为tensor数据类型,transform使用在dataset当中

小土堆学习视频_第21张图片
小土堆学习视频_第22张图片

8、Dataloader的使用

在这里插入图片描述
小土堆学习视频_第23张图片
小土堆学习视频_第24张图片
小土堆学习视频_第25张图片

9、神经网络的搭建-nn.Module的使用

小土堆学习视频_第26张图片
小土堆学习视频_第27张图片
小土堆学习视频_第28张图片
小土堆学习视频_第29张图片

10、卷积操作

小土堆学习视频_第30张图片

小土堆学习视频_第31张图片
小土堆学习视频_第32张图片
小土堆学习视频_第33张图片
小土堆学习视频_第34张图片

  • padding

小土堆学习视频_第35张图片
小土堆学习视频_第36张图片
小土堆学习视频_第37张图片
小土堆学习视频_第38张图片
小土堆学习视频_第39张图片小土堆学习视频_第40张图片
小土堆学习视频_第41张图片
小土堆学习视频_第42张图片

11、最大池化的作用

小土堆学习视频_第43张图片
小土堆学习视频_第44张图片
小土堆学习视频_第45张图片
小土堆学习视频_第46张图片
小土堆学习视频_第47张图片
在这里插入图片描述

保留一定的数据特征,同时大大减小数据量。

在这里插入图片描述
小土堆学习视频_第48张图片
小土堆学习视频_第49张图片

12、非线性激活ceng

小土堆学习视频_第50张图片
小土堆学习视频_第51张图片
小土堆学习视频_第52张图片
小土堆学习视频_第53张图片
小土堆学习视频_第54张图片
在这里插入图片描述
增加非线性特征,增强模型的泛化能力。

13、线性层及其他层介绍

正则化加快神经网络训练速度。

  • 特定网络结构:

小土堆学习视频_第55张图片

  • Transfomer层

小土堆学习视频_第56张图片

  • 线性层

小土堆学习视频_第57张图片

  • Dropout层

防止过拟合
小土堆学习视频_第58张图片
小土堆学习视频_第59张图片
小土堆学习视频_第60张图片
小土堆学习视频_第61张图片
小土堆学习视频_第62张图片
在这里插入图片描述
小土堆学习视频_第63张图片

14、搭建小实战和Squential的使用

小土堆学习视频_第64张图片
小土堆学习视频_第65张图片
小土堆学习视频_第66张图片
小土堆学习视频_第67张图片
小土堆学习视频_第68张图片

15、损失函数与反向传播

小土堆学习视频_第69张图片
小土堆学习视频_第70张图片
在这里插入图片描述
小土堆学习视频_第71张图片

  • 交叉熵损失函数
    小土堆学习视频_第72张图片
    小土堆学习视频_第73张图片
    小土堆学习视频_第74张图片
    小土堆学习视频_第75张图片

16、现有网络模型使用及修改

在这里插入图片描述

  • 在vgg16(1000分类)的基础上加上一个线性层用于CIFAR10数据集的十分类问题!
    小土堆学习视频_第76张图片
    在这里插入图片描述
    小土堆学习视频_第77张图片
  • 修改当前vgg16中的某一层:
    在这里插入图片描述

17、网络模型的保存与读取

  • 模型的保存

小土堆学习视频_第78张图片

  • 模型的读取

小土堆学习视频_第79张图片
小土堆学习视频_第80张图片
在这里插入图片描述

18、完整模型训练

小土堆学习视频_第81张图片
小土堆学习视频_第82张图片
在这里插入图片描述
小土堆学习视频_第83张图片
小土堆学习视频_第84张图片
小土堆学习视频_第85张图片

19、利用GPU训练

小土堆学习视频_第86张图片

tudui = tudui.cuda()
loss_fn = loss_fn.cuda()
imgs = imgs.cuda()
targets = targets.cuda()

谷歌上免费GPU
小土堆学习视频_第87张图片
小土堆学习视频_第88张图片
在这里插入图片描述

20、完整的模型验证

小土堆学习视频_第89张图片
小土堆学习视频_第90张图片

在这里插入图片描述

你可能感兴趣的:(vqa,学习)