分析PyTorch?Dataloader報錯ValueError:num_samples的另一種可能原因
先粘報錯信息
Traceback (most recent call last): File “train.py”, line 169, in
train_test() File “train.py”, line 29, in train_test
dataloader_train = DataLoader(dataset_train, batch_size=batch_size, shuffle=True, pin_memory=True, drop_last=False)
File “/data3/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py”,
line 270, in init
sampler = RandomSampler(dataset, generator=generator) # type: ignore[arg-type]
File “/data3/anaconda3/lib/python3.8/site-packages/torch/utils/data/sampler.py”,
line 102, in init
raise ValueError("num_samples should be a positive integer "
ValueError: num_samples should be a positive integer value, but got num_samples=0
在使用pytorch訓(xùn)練模型時,同樣的代碼在Windows下可以正常訓(xùn)練,但在Linux下卻會出現(xiàn)以上報錯。
網(wǎng)上查閱相關(guān)資料,解決辦法是完全相同的
出現(xiàn)的問題的地方可能是如下的地方
調(diào)用DataLoder時注意參數(shù)
self.train_dataloader = DataLoader(train_dataset, batch_size=TrainOption.train_batch_size, shuffle=TRUE, num_workers=TrainOption.data_load_worker_num)
shuffle的參數(shù)設(shè)置錯誤導(dǎo)致,
因為已經(jīng)有batch_sample了,就不需要shuffle來進行隨機的sample了,所以在這里的shuffle應(yīng)該設(shè)置為FALSE才對。
但我這里并未使用batch_sample,因此不是上述原因。
經(jīng)查發(fā)現(xiàn)
由于兩系統(tǒng)下目錄地址的格式不同,
因此直接從windows移植過來的代碼不能在指定目錄下正常讀取數(shù)據(jù),
且代碼未設(shè)置sample讀取個數(shù)為0時報錯,
導(dǎo)致dataset返回長度為0,小于batch_size,因此出現(xiàn)上述報錯。
出現(xiàn)上述問題時,如未使用batch_sample,可首先檢查dataset.len()是否正常。
總結(jié)
因多次出現(xiàn)上述問題,故記錄。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實現(xiàn)對服務(wù)器腳本敏感信息的加密解密功能
這篇文章主要介紹了python實現(xiàn)對服務(wù)器腳本敏感信息的加密解密功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
Python實現(xiàn)byte轉(zhuǎn)integer
這篇文章主要介紹了Python實現(xiàn)byte轉(zhuǎn)integer操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
numpy中生成隨機數(shù)的幾種常用函數(shù)(小結(jié))
這篇文章主要介紹了numpy中生成隨機數(shù)的幾種常用函數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Python實現(xiàn)從Markdown到PDF的轉(zhuǎn)換的方法
Markdown,以其簡潔的語法和易于閱讀的特性,成為了許多作家、開發(fā)者和學(xué)生記錄思想、編寫教程或撰寫報告的首選格式,然而,在分享或打印這些文檔時,Markdown的純文本形式可能無法滿足對版式和布局的專業(yè)需求,本文將介紹如何用Python代碼輕松實現(xiàn)從Markdown到PDF的轉(zhuǎn)換2024-07-07
pytorch 數(shù)據(jù)處理:定義自己的數(shù)據(jù)集合實例
今天小編就為大家分享一篇pytorch 數(shù)據(jù)處理:定義自己的數(shù)據(jù)集合實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

