Chisel(Constructing Hardware In a Scala Embedded Language)是UC Berkeley开发的一种开源硬件构造语言。
站长xddcore有话说:在我大二的时候,因为项目需要,接触了Chisel。在体验过后,我被它深深的吸引了。我幻想着它十年后的样子,充满希望。于是创建了这个博客,让更多人的了解Chisel,学习Chisel。

numpy矩阵tranpose效率分析

内容纲要
Reading Time: < 1 minute

hi,大家好,这里是小董。好久没写博客了QAQ

就在昨天,Maixhub目标检测(自动标注)上线啦。使用指南:https://www.bilibili.com/video/BV14D4y1D7S3?zw

目前发现训练耗时还是比较长,经过对各个模块的run time print。发现主要是在numpy,transpose,reshape的地方耗时比较长,长达8s,如果按照100 epoch来算的话,时间开销差不多到15分钟了QAQ。不过,好在,有前辈也遇到过这个问题。我目前也是有了一定的思路去优化这个部分的代码。

等弄好再来分享经验吧。

今天早上抽时间优化了下这部分代码,最后速度快了一倍左右,还是比较舒服的。

原来我采用的是 list to array的方法,进行矩阵拼接,经过测试,这种方法效率很低。

前段时间,偶然看到了一篇博客,文中说如上方法效率很低。于是我便换了一种更加符合简单逻辑的思路:numpy to numpy
代码如下:

            box_array_0 = np.array(box_list3).reshape(1,5)
            box_array_0 = box_array_0[np.newaxis,:,:]
            img_data_one_0 = img_pad[np.newaxis,:,:,:]
            #矩阵拼接
            if(load_tfrecord_num == 0):
                img_data_array = img_data_one_0
                box_array = box_array_0
            else:
                img_data_array = np.concatenate((img_data_one_0,img_data_array),axis=0)
                box_array = np.concatenate((box_array_0,box_array),axis=0)
Share

xddcore

xddcore www.github.com/xddcore

You may also like...

发表回复

您的电子邮箱地址不会被公开。