一、問題描述
- 使用pytorch進行訓(xùn)練時,訓(xùn)練了僅幾個batch后出現(xiàn)報錯信息:
RuntimeError: DataLoader worker (pid xxxxx) is killed by signal: Killed.
- 這個報錯和DataLoader有關(guān),定位到訓(xùn)練腳本中的代碼:
train_data_loader = DataLoader(train_dataset,
batch_size=None,
pin_memory=args.pin_memory,
num_workers=args.num_workers,
prefetch_factor=args.prefetch)
二、問題分析
- 通過設(shè)置num_workers,DataLoader實例可以使用多少個子進程進行數(shù)據(jù)加載,從而加快網(wǎng)絡(luò)的訓(xùn)練過程。
- 默認(rèn)情況下,num_workers值被設(shè)置為0,0值代表告訴加載器在主進程內(nèi)部加載數(shù)據(jù)。
- 但是num_workers并不能無限制設(shè)置的很大,因為這和你的機器硬件性能也有關(guān)。
三、問題解決
- 最簡單的辦法,就是將num_workers設(shè)置的小一點;
- 如果還是有問題,可以直接將num_workers設(shè)置成默認(rèn)值0;
- 當(dāng)然,也可以通過增加機器內(nèi)存來嘗試解決。
參考資料:https://blog.csdn.net/peacefairy/article/details/108015095文章來源地址http://www.zghlxwxcb.cn/news/detail-525491.html
文章來源:http://www.zghlxwxcb.cn/news/detail-525491.html
到了這里,關(guān)于RuntimeError: DataLoader worker is killed by signal: Killed.報錯解決的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!