原创 pytorch Dataset與DataLoader

在模型訓練或預測時,需要加載數據集,對數據集進行預處理,提取特徵,並分批讀取,在minibatch內對數據進行Padding。 訓練時用到的數據處理和預測時用到的數據的處理可以在同一個Dataset中,這樣可以複用一些數據處理的函

原创 pytorch LSTM的dropout參數

pytorch的LSTM及RNN的dropout不會對每個time step進行dropout,只對一層的輸出設置了dropout。 在新版本的pytorch中,對於1層的lstm,dropout參數無效了,就說明對每個時間步是不

原创 pytorch的Embedding層

class torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2, scale_grad_b

原创 模型訓練過程中loss不減少

https://blog.csdn.net/zongza/article/details/89185852

原创 leetcode——動態規劃——70

最經典的爬臺階問題 遞歸樹的思路: 紅色的有重複計算,所以用空間換時間的思想來優化遞歸。 # -*- encoding: utf-8 -*- class Solution: """對於遞歸樹來說,使用純遞歸的方法,O

原创 深入理解交叉熵

在分類問題上,包括二分類和多分類,我們使用交叉熵作爲損失函數,那什麼是交叉熵?爲什麼選用交叉熵作爲分類問題的損失函數?交叉熵又有什麼優點和缺點?在pytorch中如何使用交叉熵損失函數的? 參考: https://zhuanlan

原创 多分類metric的macro-averge與micro-average

macro-average是每個類有相同的權重,precision、recall或f1_score,先求和再除以類別的個數。跟樣本的個數沒有關係。 micro-average: 每個樣本有相同的權重。 macro與micro的

原创 Albert_zh轉化爲pytorch版本

背景 由於google提供bert_base_zh的參數太多,模型大太,大約400M,無論是使用bert進行fine-tuning或者是對bert進行再訓練的訓練成本會變大。所以就對bert進行了一些優化。 主要從以下幾個點對be

原创 pytorch——unsqueeze與expand

torch中的unsqueeze()函數來增加一個維度,expand()函數以行或列來廣播。 # -*- encoding: utf-8 -*- import torch # 需求是對一個batch_size=2, seq_le

原创 pytorch——隨機數生成

在使用PyTorch做實驗時經常會用到生成隨機數Tensor的方法,比如: torch.rand() torch.randn() torch.normal() torch.linespace() 在很長一段時間裏我都沒有區分這些方

原创 pytorch使用Bert

主要分爲以下幾個步驟: 下載模型放到目錄中 使用transformers中的BertModel,BertTokenizer來加載模型與分詞器 使用tokenizer的encode和decode 函數分別編碼與解碼,注意參數add

原创 pytorch擴展一個tensor到多維

在使用神經網絡的過程中,經常會用到把一個tensor擴展一個或多個維度的情況,然後把擴展後的維度用來廣播。 擴展一個維度的情況,使用unsqueeze()函數,縮小一個維度使用squeeze()函數。參數是dim,是一個int。

原创 pytorch——使用tensorobard不刷新的問題

在tensorflow中可以使用tensorboard來查看訓練過程中loss的變化,來判斷模型是否已經收斂 ,或者需要查看train dataset與dev dataset上效果來判斷是否有過擬合的現象。 pytorch中已經集

原创 docker使用GPU

參考: https://blog.csdn.net/lq1ns259ej3okyvk4jf/article/details/78764102 https://blog.csdn.net/crazybean_lwb/article/

原创 mac無法讀寫NTSF U盤

MS的 FAT32在拷貝文件時,有大小限制,不能拷貝大於4GB的文件,MS的NTFS在拷貝文件時沒有大小限制,但是在Mac OS上是無法使用寫的,read-only。 所以使用Mac的 Disk Utility工具把U盤重新for