MXNet入坑(三)- MShadow和表達式模板的入門性介紹
02-04
生命可貴,能move則不copy。
TensorFlow的矩陣計算庫使用了eigen,而MXNet使用的是MShadow。這兩者都是使用的c++模板編程的語言特性。
所以有必要先學習一下模版元編程,這篇講的非常系統和簡明:
C++語言的表達式模板:表達式模板的入門性介紹 - CSDN博客
mshadow的結構如下:
mxnet代碼解析之mshadow - CSDN博客
Tensor的shape與numpy.shape不一樣,最低維度從shape_[0]開始,重載操作符「=」除了拷貝已有Tensor,還可賦值中間運算結果表達式Exp,以及賦值標量。這裡對operator =的重載將運算操作延遲到了賦值階段,實現了Lazy Evaluation,避免了臨時內存分配。
推薦閱讀: