項目 + 深度學習基礎知識 + C++基礎知識
項目
把背景、未來發展和motvation講明白,一定結合落地需求。
深度學習
- 超參數是什么?
- Batch Size 是什么概念?為什么要有這個?(Mini-batch SGD)
C++ 基礎知識
C++ 有哪些內存分配方式?
C/C++內存管理詳解
https://www.cnblogs.com/qiumingcheng/p/7818803.html
在C++中,內存分成5個區,他們分別是堆、棧、自由存儲區、全局/靜態存儲區和常量存儲區。
- 棧:在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。棧內存分配運算內置於處理器的指令集中,效率很高,但是分配的內存容量有限。
- 堆:就是那些由 new 分配的內存塊,他們的釋放編譯器不去管,由我們的應用程序去控制,一般一個 new 就要對應一個 delete。如果程序員沒有釋放掉,那么在程序結束后,操作系統會自動回收。
- 自由存儲區:就是那些由malloc等分配的內存塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。
- 全局/靜態存儲區:全局變量和靜態變量被分配到同一塊內存中,在以前的C語言中,全局變量又分為初始化的和未初始化的,在C++里面沒有這個區分了,他們共同占用同一塊內存區。
- 常量存儲區:這是一塊比較特殊的存儲區,他們里面存放的是常量,不允許修改。
介紹一下 static 關鍵字。static 修飾函數有什么用?
1)函數體內: static 修飾的局部變量作用范圍為該函數體,不同於auto變量,其內存只被分配一次,因此其值在下次調用的時候維持了上次的值
2)模塊內:static修飾全局變量或全局函數,可以被模塊內的所有函數訪問,但是不能被模塊外的其他函數訪問,使用范圍限制在聲明它的模塊內
3)類中:修飾成員變量,表示該變量屬於整個類所有,對類的所有對象只有一份拷貝
4)類中:修飾成員函數,表示該函數屬於整個類所有,不接受this指針,只能訪問類中的static成員變量
注意和const的區別!!!const強調值不能被修改,而static強調唯一的拷貝,對所有類的對象
更新進度:
8.15 收到意向書