[PyTorch] 使用 random_split() 函式切割資料集
在使用 PyTorch 搭建深度學習環境的時候,若是我們有著切割資料集的需求(比方說將訓練資料切出驗證資料),在將資料封裝成 PyTorch 的 dataset 物件時,我們便可以透過 PyTorch 內建的切割函式 —— random_split()
來做到切割資料集。
在使用 PyTorch 搭建深度學習環境的時候,若是我們有著切割資料集的需求(比方說將訓練資料切出驗證資料),在將資料封裝成 PyTorch 的 dataset 物件時,我們便可以透過 PyTorch 內建的切割函式 —— random_split()
來做到切割資料集。
PyTorch 是一個經常用於架構深度學習的框架,從名字就可以看出,是使用 Python 語法來調用的。PyTorch 封裝了各式各樣常用於深度學習的函式、神經網路、模型架構,使用上非常方便。
Read More »[PyTorch] 設置種子參數重現模型訓練結果Tensorflow 可說是眾多深度學習框架當中最具知名度的(應該?),但是在我使用 Keras/Tensorflow 時,我經常會碰到以下這種關於 Numpy 版本的 FutureWarning:
Read More »[已解決] FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’. _np_qint8 = np.dtype([(“qint8”, np.int8, 1)])在剛開始接觸 PyTorch 這個框架時,為了逐漸掌握 PyTorch 搭建模型的方法,我閱讀、執行過許多官方教學文件上的範例程式。那個時候,經常能在範例程式當中見到 squeeze()
、unsqueeze()
等函式,卻不太明白這兩個函式究竟有什麼樣的用途。
TF-IDF (Term Frequency – Inverse Document Frequency) 是在文字探勘、自然語言處理當中相當著名的一種文字加權方法,能夠反映出『詞彙』對於『文件』的重要性。跟著名的 Word2Vec 同樣能夠將文字轉換成向量,以供電腦進行計算。
Read More »[NLP] 文字探勘中的 TF-IDF 技術PyTorch 是一個基於 Python 的深度學習框架,我們可以藉由 PyTorch 所包裝好的模組、函式,輕易地實作我們想要實現的模型架構。而說到深度學習,就不得不提到使用 GPU 的平行化運算,提到 GPU 的平行化運算,就一定得說到我們得將輸入神經元的『維度』固定,好實現平行化運算。
Read More »[PyTorch] 使用 view() 和 permute() 轉換維度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 調整可變長度序列批次今天,當我在嘗試著自己使用 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()