分析PyTorch?Dataloader報(bào)錯(cuò)ValueError:num_samples的另一種可能原因
先粘報(bào)錯(cuò)信息
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)練模型時(shí),同樣的代碼在Windows下可以正常訓(xùn)練,但在Linux下卻會(huì)出現(xiàn)以上報(bào)錯(cuò)。
網(wǎng)上查閱相關(guān)資料,解決辦法是完全相同的
出現(xiàn)的問(wèn)題的地方可能是如下的地方
調(diào)用DataLoder時(shí)注意參數(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è)置錯(cuò)誤導(dǎo)致,
因?yàn)橐呀?jīng)有batch_sample了,就不需要shuffle來(lái)進(jìn)行隨機(jī)的sample了,所以在這里的shuffle應(yīng)該設(shè)置為FALSE才對(duì)。
但我這里并未使用batch_sample,因此不是上述原因。
經(jīng)查發(fā)現(xiàn)
由于兩系統(tǒng)下目錄地址的格式不同,
因此直接從windows移植過(guò)來(lái)的代碼不能在指定目錄下正常讀取數(shù)據(jù),
且代碼未設(shè)置sample讀取個(gè)數(shù)為0時(shí)報(bào)錯(cuò),
導(dǎo)致dataset返回長(zhǎng)度為0,小于batch_size,因此出現(xiàn)上述報(bào)錯(cuò)。
出現(xiàn)上述問(wèn)題時(shí),如未使用batch_sample,可首先檢查dataset.len()是否正常。
總結(jié)
因多次出現(xiàn)上述問(wèn)題,故記錄。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Pytorch?Conda環(huán)境pack打包遷移報(bào)錯(cuò)的處理方案
- PyTorch使用tensorboard的SummaryWriter報(bào)錯(cuò)問(wèn)題解決方案
- Pytorch backward報(bào)錯(cuò)2次訪問(wèn)計(jì)算圖需要retain_graph=True的情況詳解
- pytorch報(bào)錯(cuò)問(wèn)題:ValueError: num_samples should be a positive integer value, but got num_samples=0
- 解決遇到:PytorchStreamReader failed reading zip archive:failed finding central錯(cuò)誤問(wèn)題
相關(guān)文章
python中Class(類(lèi))的超詳細(xì)說(shuō)明
這篇文章主要介紹了python中Class(類(lèi))的相關(guān)資料,Class類(lèi)定義了具有相同屬性和方法的對(duì)象集合,對(duì)象是類(lèi)的實(shí)例,類(lèi)變量在整個(gè)實(shí)例化的對(duì)象中是公用的,而實(shí)例變量是每個(gè)對(duì)象獨(dú)有的,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-11-11python實(shí)現(xiàn)對(duì)服務(wù)器腳本敏感信息的加密解密功能
這篇文章主要介紹了python實(shí)現(xiàn)對(duì)服務(wù)器腳本敏感信息的加密解密功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08Python實(shí)現(xiàn)byte轉(zhuǎn)integer
這篇文章主要介紹了Python實(shí)現(xiàn)byte轉(zhuǎn)integer操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06numpy中生成隨機(jī)數(shù)的幾種常用函數(shù)(小結(jié))
這篇文章主要介紹了numpy中生成隨機(jī)數(shù)的幾種常用函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Python實(shí)現(xiàn)從Markdown到PDF的轉(zhuǎn)換的方法
Markdown,以其簡(jiǎn)潔的語(yǔ)法和易于閱讀的特性,成為了許多作家、開(kāi)發(fā)者和學(xué)生記錄思想、編寫(xiě)教程或撰寫(xiě)報(bào)告的首選格式,然而,在分享或打印這些文檔時(shí),Markdown的純文本形式可能無(wú)法滿(mǎn)足對(duì)版式和布局的專(zhuān)業(yè)需求,本文將介紹如何用Python代碼輕松實(shí)現(xiàn)從Markdown到PDF的轉(zhuǎn)換2024-07-07pytorch 數(shù)據(jù)處理:定義自己的數(shù)據(jù)集合實(shí)例
今天小編就為大家分享一篇pytorch 數(shù)據(jù)處理:定義自己的數(shù)據(jù)集合實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12Python實(shí)現(xiàn)爬取并分析電商評(píng)論
這篇文章主要介紹了Python實(shí)現(xiàn)爬取并分析電商評(píng)論,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06