《Pytorch 模型推理及多任务通用范式》第四节作业

1 课程学习

本节课主要对于大白AI课程:https://mp.weixin.qq.com/s/STbdSoI7xLeHrNyLlw9GOg
《Pytorch 模型推理及多任务通用范式》课程中的第四节课进行学习。

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

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

  • 分割类别:cat

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 分割类别:dog
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

if __name__=='__main__':
    #实例化
    model_segment=ModelPipline()
    import time
    #第一张图
    image=cv2.imread('./images/car.jpg')
    torch.cuda.synchronize()
    t1 = time.time()
    result=model_segment.predict(image)
    torch.cuda.synchronize()
    t2 = time.time()
    print("第1次推理时间:",t2-t1)
    t_all = 0
    for i in range(100):
        torch.cuda.synchronize()
        t1 = time.time()
        result = model_segment.predict(image)
        torch.cuda.synchronize()
        t2 = time.time()
        print(f"第{i+2}次推理时间:", t2-t1)
        t_all += (t2-t1)

    print("100次推理时间:",t_all)
  • cpu推理

第1次推理时间: 2.5305964946746826
第2次推理时间: 1.9392828941345215
第3次推理时间: 2.008378267288208
第4次推理时间: 1.9039158821105957
第5次推理时间: 1.8717780113220215
第6次推理时间: 1.862950325012207
第7次推理时间: 1.8967926502227783
第8次推理时间: 1.9501924514770508
第9次推理时间: 1.9236574172973633
第10次推理时间: 1.9867947101593018
第11次推理时间: 1.895087480545044
第12次推理时间: 1.8579139709472656
第13次推理时间: 1.8451805114746094
第14次推理时间: 1.938258171081543
第15次推理时间: 1.8748235702514648
第16次推理时间: 1.892158031463623
第17次推理时间: 1.9320805072784424
第18次推理时间: 2.021815538406372
第19次推理时间: 1.8896195888519287
第20次推理时间: 1.9826862812042236
第21次推理时间: 1.9053456783294678
第22次推理时间: 1.8764264583587646
第23次推理时间: 1.910261631011963
第24次推理时间: 1.8899786472320557
第25次推理时间: 1.8871018886566162
第26次推理时间: 1.9839320182800293
第27次推理时间: 1.8595764636993408
第28次推理时间: 1.8694956302642822
第29次推理时间: 1.9304943084716797
第30次推理时间: 1.9495692253112793
第31次推理时间: 1.9057857990264893
第32次推理时间: 1.8690834045410156
第33次推理时间: 1.883258581161499
第34次推理时间: 1.902949571609497
第35次推理时间: 1.8951284885406494
第36次推理时间: 1.879404067993164
第37次推理时间: 1.9011201858520508
第38次推理时间: 1.9017977714538574
第39次推理时间: 2.485524892807007
第40次推理时间: 1.9486181735992432
第41次推理时间: 1.9165432453155518
第42次推理时间: 1.9119877815246582
第43次推理时间: 1.8853166103363037
第44次推理时间: 1.888206958770752
第45次推理时间: 1.9065184593200684
第46次推理时间: 1.905571460723877
第47次推理时间: 1.9076471328735352
第48次推理时间: 1.9032588005065918
第49次推理时间: 1.887810230255127
第50次推理时间: 1.8894853591918945
第51次推理时间: 1.9044382572174072
第52次推理时间: 1.8914687633514404
第53次推理时间: 1.8845648765563965
第54次推理时间: 1.900909423828125
第55次推理时间: 1.884531021118164
第56次推理时间: 1.89155912399292
第57次推理时间: 1.909834384918213
第58次推理时间: 1.8878233432769775
第59次推理时间: 1.9098560810089111
第60次推理时间: 1.908003330230713
第61次推理时间: 1.903869390487671
第62次推理时间: 1.9096248149871826
第63次推理时间: 1.8874473571777344
第64次推理时间: 1.8949973583221436
第65次推理时间: 1.8824412822723389
第66次推理时间: 1.8904199600219727
第67次推理时间: 1.9042308330535889
第68次推理时间: 1.8864123821258545
第69次推理时间: 1.8996915817260742
第70次推理时间: 1.9289073944091797
第71次推理时间: 1.90571928024292
第72次推理时间: 1.903594732284546
第73次推理时间: 1.9173574447631836
第74次推理时间: 1.879049301147461
第75次推理时间: 1.9363527297973633
第76次推理时间: 1.8910362720489502
第77次推理时间: 1.8974967002868652
第78次推理时间: 1.8972737789154053
第79次推理时间: 1.8901479244232178
第80次推理时间: 1.8965985774993896
第81次推理时间: 1.8952200412750244
第82次推理时间: 1.8908319473266602
第83次推理时间: 1.9104900360107422
第84次推理时间: 2.034168004989624
第85次推理时间: 2.101321220397949
第86次推理时间: 1.867145299911499
第87次推理时间: 1.9377942085266113
第88次推理时间: 2.1150143146514893
第89次推理时间: 1.8911778926849365
第90次推理时间: 1.9951410293579102
第91次推理时间: 2.2141523361206055
第92次推理时间: 2.0159554481506348
第93次推理时间: 1.9283583164215088
第94次推理时间: 1.8951740264892578
第95次推理时间: 1.8864073753356934
第96次推理时间: 1.9127748012542725
第97次推理时间: 1.9238038063049316
第98次推理时间: 1.913196325302124
第99次推理时间: 1.9513134956359863
第100次推理时间: 1.881160020828247
第101次推理时间: 1.9080355167388916
100次推理时间: 192.15485835075378

  • cuda推理

第1次推理时间: 0.1556236743927002
第2次推理时间: 0.12274026870727539
第3次推理时间: 0.0847015380859375
第4次推理时间: 0.08567237854003906
第5次推理时间: 0.08562541007995605
第6次推理时间: 0.08562302589416504
第7次推理时间: 0.0853111743927002
第8次推理时间: 0.08547282218933105
第9次推理时间: 0.08596062660217285
第10次推理时间: 0.0856165885925293
第11次推理时间: 0.08548974990844727
第12次推理时间: 0.08386659622192383
第13次推理时间: 0.08626770973205566
第14次推理时间: 0.08637523651123047
第15次推理时间: 0.08575654029846191
第16次推理时间: 0.08563685417175293
第17次推理时间: 0.08597445487976074
第18次推理时间: 0.08579182624816895
第19次推理时间: 0.08543586730957031
第20次推理时间: 0.08604979515075684
第21次推理时间: 0.0853877067565918
第22次推理时间: 0.08654165267944336
第23次推理时间: 0.08667922019958496
第24次推理时间: 0.08572983741760254
第25次推理时间: 0.0856943130493164
第26次推理时间: 0.0852811336517334
第27次推理时间: 0.08603787422180176
第28次推理时间: 0.08592033386230469
第29次推理时间: 0.08564591407775879
第30次推理时间: 0.08561038970947266
第31次推理时间: 0.08613109588623047
第32次推理时间: 0.08597517013549805
第33次推理时间: 0.08562374114990234
第34次推理时间: 0.0855860710144043
第35次推理时间: 0.08553266525268555
第36次推理时间: 0.08582043647766113
第37次推理时间: 0.08593249320983887
第38次推理时间: 0.08560061454772949
第39次推理时间: 0.08557391166687012
第40次推理时间: 0.08582949638366699
第41次推理时间: 0.08631086349487305
第42次推理时间: 0.08555293083190918
第43次推理时间: 0.08555054664611816
第44次推理时间: 0.08590102195739746
第45次推理时间: 0.08593869209289551
第46次推理时间: 0.08569455146789551
第47次推理时间: 0.08568549156188965
第48次推理时间: 0.08587002754211426
第49次推理时间: 0.08631634712219238
第50次推理时间: 0.08593082427978516
第51次推理时间: 0.08575272560119629
第52次推理时间: 0.08566737174987793
第53次推理时间: 0.08576107025146484
第54次推理时间: 0.08596420288085938
第55次推理时间: 0.08581328392028809
第56次推理时间: 0.0856478214263916
第57次推理时间: 0.08598709106445312
第58次推理时间: 0.08594012260437012
第59次推理时间: 0.08551597595214844
第60次推理时间: 0.08619427680969238
第61次推理时间: 0.08644318580627441
第62次推理时间: 0.08590102195739746
第63次推理时间: 0.08576393127441406
第64次推理时间: 0.08570027351379395
第65次推理时间: 0.08603930473327637
第66次推理时间: 0.08586382865905762
第67次推理时间: 0.08597254753112793
第68次推理时间: 0.0858602523803711
第69次推理时间: 0.08606171607971191
第70次推理时间: 0.08592462539672852
第71次推理时间: 0.08631324768066406
第72次推理时间: 0.08616971969604492
第73次推理时间: 0.08595991134643555
第74次推理时间: 0.08612895011901855
第75次推理时间: 0.08591818809509277
第76次推理时间: 0.08568549156188965
第77次推理时间: 0.0860130786895752
第78次推理时间: 0.08597302436828613
第79次推理时间: 0.08575749397277832
第80次推理时间: 0.08553838729858398
第81次推理时间: 0.08584165573120117
第82次推理时间: 0.08613157272338867
第83次推理时间: 0.0862114429473877
第84次推理时间: 0.08584332466125488
第85次推理时间: 0.08581233024597168
第86次推理时间: 0.08616399765014648
第87次推理时间: 0.08632874488830566
第88次推理时间: 0.08581137657165527
第89次推理时间: 0.08590006828308105
第90次推理时间: 0.08617877960205078
第91次推理时间: 0.08611583709716797
第92次推理时间: 0.0857231616973877
第93次推理时间: 0.0861659049987793
第94次推理时间: 0.08576774597167969
第95次推理时间: 0.08582925796508789
第96次推理时间: 0.08597731590270996
第97次推理时间: 0.08587455749511719
第98次推理时间: 0.08625078201293945
第99次推理时间: 0.08610343933105469
第100次推理时间: 0.08574962615966797
第101次推理时间: 0.08620357513427734
100次推理时间: 8.62147045135498

结论:

100次cuda推理时间是cpu推理时间的22倍。cuda和cpu的第一次推理时间都要长些。

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

if __name__=='__main__':
    #实例化
    model_segment=ModelPipline()
    image=cv2.imread('./images/car.jpg')
    result=model_segment.predict(image)
    result = (result*255).astype(np.uint8)
    mask=result.copy()
    mask[mask>=0.5]=1
    mask[mask<0.5]=0
    car_num = np.sum(mask)

    print(car_num)

车辆的面积:135158

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值