生活随笔
收集整理的這篇文章主要介紹了
NLP-Beginner:自然语言处理入门练习-任务一
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
NLP-Beginner:自然語言處理入門練習(xí)
任務(wù)一:基于機(jī)器學(xué)習(xí)的文本分類
深度學(xué)習(xí)項(xiàng)目,在訓(xùn)練之前,一般均會(huì)對(duì)數(shù)據(jù)集做shuffle,打亂數(shù)據(jù)之間的順序,讓數(shù)據(jù)隨機(jī)化,這樣可以避免過擬合。Batch:批處理,顧名思義就是對(duì)某對(duì)象進(jìn)行批量的處理。訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),在數(shù)據(jù)集很大的情況下,不能一次性載入全部的數(shù)據(jù)進(jìn)行訓(xùn)練,電腦會(huì)支撐不住,其次全樣本訓(xùn)練對(duì)于非凸損失函數(shù)會(huì)出現(xiàn)局部最優(yōu),所以要將大的數(shù)據(jù)集分割進(jìn)行分批處理。batch_size就是每批處理的樣本的個(gè)數(shù)。過大的batch_size會(huì)降低梯度下降的隨機(jī)性,以至于更穩(wěn)定,訓(xùn)練更容易收斂,但因此更容易陷入局部最優(yōu)點(diǎn)。較小的批次內(nèi)存利用率極低,還會(huì)帶來幅度和隨機(jī)性較大的權(quán)重更新,比較容易震蕩導(dǎo)致不穩(wěn)定,但也因此能夠跳出局部最小。梯度下降法是最常見的優(yōu)化算法,在最小化損失函數(shù)時(shí),通過梯度下降法一步步的迭代求解,得到最小化的損失函數(shù)和模型參數(shù)值。CountVectorizer: 只考慮詞匯在文本中出現(xiàn)的頻率。DataLoader本質(zhì)上就是一個(gè)iterable(跟python的內(nèi)置類型list等一樣),并利用多進(jìn)程來加速batch data的處理,使用yield來使用有限的內(nèi)存。DataLoader是一個(gè)高效,簡(jiǎn)潔,直觀的網(wǎng)絡(luò)輸入數(shù)據(jù)結(jié)構(gòu),便于使用和擴(kuò)展。optimizer.step()通常用在每個(gè)mini-batch之中,只有用了optimizer.step(),模型才會(huì)更新。optimizer.zero_grad()把梯度置零,也就是把loss關(guān)于weight的導(dǎo)數(shù)變成0,如果不清零,那么使用的這個(gè)grad就得同上一個(gè)mini-batch有關(guān)。torch.max():返回一個(gè)tensor中的最大值,Tensor.view():把tensor 進(jìn)行reshape的操作.第一個(gè)參數(shù)1將第一個(gè)維度的大小設(shè)定成1,后一個(gè)-1就是說第二個(gè)維度的大小=元素總數(shù)目/第一個(gè)維度的大小。
總結(jié)
以上是生活随笔為你收集整理的NLP-Beginner:自然语言处理入门练习-任务一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。