江大白共学计划–Pytorch模型推理及多任务通用范式(第4次课)

江大白共学计划–Pytorch模型推理及多任务通用范式(第4次课)

课程内容: 模型推理的通用范式(中):以语义分割任务为例,强化对推理范式的理解

1. 代码Lesson4.py

代码同上节课,将分类网络的权重文件换为了deeplabv3的预训练权重。

2. 课堂作业

必做题
(1) 对 “./images/car.jpg” 做语义分割,提取出里面的车辆,模仿上课时,对“可视化推
理结果”和“BGRA 四通道图”进行保存。

可视化推理结果
江大白共学计划–Pytorch模型推理及多任务通用范式(第4次课)_第1张图片
BGRA 四通道图
江大白共学计划–Pytorch模型推理及多任务通用范式(第4次课)_第2张图片

(2) 自己找 2 张其他图,对图中某个类别进行分割,并保存“BGRA 四通道图”。

从网上找到了两张图(狗和马),放到了推理模型中,生成了BGRA 四通道图
江大白共学计划–Pytorch模型推理及多任务通用范式(第4次课)_第3张图片
江大白共学计划–Pytorch模型推理及多任务通用范式(第4次课)_第4张图片

江大白共学计划–Pytorch模型推理及多任务通用范式(第4次课)_第5张图片

思考题
(1) 用 time 模块和 for 循环,对”./images/car.jpg”连续推理 100 次,统计时间开销。
有 CUDA 的同学,改下代码:self.device=torch.device(‘cuda’),统计时间开销。

if __name__=='__main__':
    # 实例化整个推理类,主要开销在__init__中的载入模型部分
    model_segment = ModelPipline()

    # 读取第一张图
    image = cv2.imread('Lesson4/images/car.jpg')
    # 模型推理的结果
    # 第一次推理的时间
    t_first = 0
    t_start = time.time()
    result = model_segment.predict(image)
    t_end = time.time()
    t_first += t_end-t_start
    print("第一次推理的时间:{}".format(t_first))
    # 循环推理100次的时间
    t_all = 0
    for i in range(100):
        t_start = time.time()
        result = model_segment.predict(image)
        t_end = time.time()
        t_all += t_end-t_start
    print("循环推理一百次的时间:{}".format(t_all))

    # 可视化推理结果
    cv2.imwrite('Lesson4/demos/car02_mask.jpg', (result*255).astype(np.uint8))
    # 下面几行代码作用: 根据阈值(0.5), 将分割结果保存为BGRA四通道图片
    mask = result.copy()
    mask[mask>=0.5] = 255
    mask[mask<0.5] = 0
    image_mask = np.concatenate([image, mask[:,:,np.newaxis]], axis=2)
    cv2.imwrite('Lesson4/demos/car02_mask.png', image_mask)
    print("Counter类统计numpy数组中每个元素的个数:{}".format(Counter(mask.flatten())))
    print("numpy中的sum函数统计:{}".format(np.sum(mask==255)))
cpu推理的结果:
第一次推理的时间:0.5348126888275146
循环推理一百次的时间:48.46514558792114

cuda推理的结果:
第一次推理的时间:0.28791284561157227
循环推理一百次的时间:3.8512210845947266

(2) 以 0.5 为阈值,计算”./images/car.jpg”图中车辆的面积(单位:像素)。

使用Counter类统计numpy数组中每个图中车辆的面积(单位:像素):
Counter({0.0: 348055, 255.0: 101945})
使用numpy中的sum函数统计图中车辆像素个数:
101945

你可能感兴趣的:(深度学习,Pytorch,pytorch,深度学习,人工智能)