mushding 的小小天地

歡迎來到 mushding 的雜七雜八生活筆記

在上一篇我們提到了 Go 的 Escape Analysis,接下來我們再來談什麼時候要用 pointer

一般而言,用 pointer 就是可以讓程式加速的代名詞,因為可以避免複製不必要的資料,但在上一篇我們也提到了,Go 在大部份 Sharing up 的場景中,會把 pointer 的變數丟到 heap 裡面去,也就是 Go compiler 會自動幫你 escape 到 heap 去,到 heap 反而又會因為 garbage collection 性能下降…

那倒底什麼場合會用到 pointer 呢?其中的理由又是什麼呢?

keywords: Golang、Pointer

閱讀全文 »

最近在工作時,在寫公司專案的 unit test 時,遇到了一個神奇的 error:unit test 有會機會跑不過,這種「有機會」的 Bug,絕大部份原因都是出來 thread 上,因為不同 thread 彼此搶記憶體所導致的 error,同事立即發現有可能是 pointer 的問題,在找到倒底是什麼原因產生這個 bug 前,讓我們來看看 Go 是怎麼分配記憶體的…?先來來底層的實作方法,再來看看是不是真的是由 pointer 所所發這個問題。

keywords: Golang、Stack、Heap

閱讀全文 »

overfitting、underfitting
這兩個詞相信有在碰深度學習人一定都不陌生,學校裡有都有教。但是在實作中,遇到什麼樣子的情況可以稱作 overfitting?網路會有怎樣的表現?下一步要怎麼來解決?

以下文章會把目光放在 overfitting 上來講解

keywords: Overfitting、Regularization、Weight Decay、Label Smoothing、Warmup

閱讀全文 »

問:為什麼剛剛前幾個介紹的優化器最近都不怎麼出現過,反而較近期的 BERT、最近流行的 Transformer 架構 ViT,都是使用 Adam 優化器,是…因為新潮所以使用它嗎?還是 Adam 真的有什麼可取之處?

keywords: Adam

閱讀全文 »