[PyTorch] 使用 view() 和 permute() 轉換維度
PyTorch 是一個基於 Python 的深度學習框架,我們可以藉由 PyTorch 所包裝好的模組、函式,輕易地實作我們想要實現的模型架構。而說到深度學習,就不得不提到使用 GPU 的平行化運算,提到 GPU 的平行化運算,就一定得說到我們得將輸入神經元的『維度』固定,好實現平行化運算。
Read More »[PyTorch] 使用 view() 和 permute() 轉換維度PyTorch 是一個基於 Python 的深度學習框架,我們可以藉由 PyTorch 所包裝好的模組、函式,輕易地實作我們想要實現的模型架構。而說到深度學習,就不得不提到使用 GPU 的平行化運算,提到 GPU 的平行化運算,就一定得說到我們得將輸入神經元的『維度』固定,好實現平行化運算。
Read More »[PyTorch] 使用 view() 和 permute() 轉換維度最近有個比較大一點的個人專案準備收尾,並準備交接給朋友接手,看他後續想要新增什麼樣的功能。有鑑於此,我開始考慮是否將程式碼做個徹底的整理。
Read More »[Python] 值得參考的 Coding Style 整理筆記Cross-validation (交叉驗證) 是機器學習中『切割資料』的一個重要的觀念。簡單來說,當我們訓練一個模型時,我們通常會將資料分成『訓練資料』(Training data) 和『測試資料』(Test data),然後我們使用訓練資料訓練模型、並使用模型從來沒見過的測試資料評估模型的好壞。
Read More »[Python] 使用 ShuffleSplit() 進行 cross-validation在我們使用 PyTorch 搭建 RNN 與其各種變體 (比如 LSTM、GRU) 的模型時,若搭配 PyTorch 所提供的 Embedding 層當作模型第一層的嵌入層,那麼,我們經常會碰到不同長度序列的文章。
Read More »[PyTorch] 如何使用 pad_packed_sequence 和 pack_padded_sequence 調整可變長度序列批次之前我曾經紀錄過,如何使用 Python 的 Gensim 套件訓練一個 Word2Vec 模型,讓我們將『詞彙』轉成『向量』,而這些轉成的『向量』也並不是毫無道理,直觀理解上,是每一維度中包含著文本中的一個隱含主題 —— 至少人們是這樣希望模型學習到東西的。
Read More »[NLP][Python] 表示文件向量: Doc2Vec今天,當我在嘗試著自己使用 nn.Embedding() 拼接並計算句向量的時候,我在自己預先準備的 DataLoader 上得到了這樣的一個報錯:
Read More »[已解決][PyTorch] TypeError: expected Tensor as element 0 in argument 0, but got list今天我在查看 Hugging Face 的 Transformers 套件官方 Document 時,赫然發現一個恐怖的事情 —— 使用 Transformers 時所調用的 from_pretrained(),在讀取預訓練進來的時候,整個模型的狀態是屬於 eval() 、也就是評估模式的。
Read More »[PyTorch] 確認模型的狀態屬於 train() 或是 eval()使用 PyTorch 搭建關於自然語言處理相關任務的人,想必都對 PyTorch 當中的 nn.Embedding() 不陌生。nn.Embedding() 是 PyTorch 當中的一個嵌入層,可以讓我們將不同的詞編號之後放入,並產生一組我們可以任意指定的向量回傳。
Read More »[PyTorch] nn.Embedding() 讀取 Gensim 預訓練模型權重方法筆記JPEG 2000、也就是本文標題的 JP2,是一種圖片檔案的格式,副檔名即為 .jp2。基本上,JP2 的『壓縮比』比一般熟悉的 JPEG 來得更好。
Read More »[Python] 使用 OpenCV 轉換 JP2 格式的圖片成 PNG、JPEG在我們使用 PyTorch 搭建模型來處理我們深度學習的任務的時候,有時候我們會面臨需要『重複定義不同模型層』的情況,有時候這是很讓人煩躁的,尤其是必須毫無必要地寫一大堆都是複製貼上的程式碼。
Read More »[PyTorch] 使用 ModuleList 減少重複定義模型的程式碼數量