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)