国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you

這篇具有很好參考價值的文章主要介紹了Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、問題

使用了自己創(chuàng)建的dataset和collate_fn,使用了默認(rèn)的dataloader,當(dāng)設(shè)置num_worker的時候,超過0則報如下錯誤:

RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method

二、原因

查看了平時其他人的代碼,發(fā)現(xiàn)自己在collate_fn對tensor使用了.to(device),而別人則是在從dataloader取出數(shù)據(jù)后,放入模型前,將其移到device中,例如:

    for epoch in range(max_epoch):
        for batch_idx, (en_id, att_mask_en, zh_id, att_mask_zh) in enumerate(data_loader): 
                en_id = en_id.to(device)

而我則是錯誤地在collate_fn中將數(shù)據(jù)移至device中:

def collate_fn(batch):
    en, zh = list(zip(*batch))
    en_output = tokenizer.encode_batch(en,is_pretokenized=True)
    zh_id,att_mask_zh = zh_mapper.encode_batch(zh)
    en_id =[]
    att_mask_en = []
    for item in en_output:
        en_id.append(item.ids)
        att_mask_en.append(item.attention_mask)
    en_id = torch.tensor(en_id, dtype=torch.long).to(device)
    att_mask_en = torch.tensor(att_mask_en, dtype=torch.bool).to(device)
    zh_id = torch.tensor(zh_id, dtype=torch.long).to(device)
    att_mask_zh = torch.tensor(att_mask_zh, dtype=torch.bool).to(device)

    return en_id, att_mask_en, zh_id, att_mask_zh

當(dāng)然,在定義dataset,方法__getitem__?里把張量放到device里也會產(chǎn)生同樣的錯誤。

此外,我還使用了官方建議的spawn:

if __name__ == '__main__':
    torch.multiprocessing.set_start_method('spawn')
    train()

但是gpu會卡住不運(yùn)行數(shù)據(jù)加載。?文章來源地址http://www.zghlxwxcb.cn/news/detail-859300.html

到了這里,關(guān)于Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【控制臺】報錯:Cannot access ‘xxx‘ before initialization

    【控制臺】報錯:Cannot access ‘xxx‘ before initialization

    示例: 示例代碼: ES6:當(dāng)程序的控制流程在新的作用域(module function 或 block作用域)進(jìn)行實例化時,在此作用域中用let/const聲明的變量會先在作用域中被創(chuàng)建出來,但因此時還未進(jìn)行詞法綁定,所以是不能被訪問的,如果訪問就會拋出錯誤。因此,在這運(yùn)行流程進(jìn)入作用域

    2024年02月11日
    瀏覽(29)
  • UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount()【已解決】

    nvcc -V正常 nvidia-smi正常 打開NVIDIA設(shè)置,升級顯卡驅(qū)動后解決。

    2024年02月15日
    瀏覽(43)
  • 【CUDA driver initialization failed, you might not have a CUDA gpu】pytorch 解決方案

    在coding的時候我們經(jīng)常在指定device的時候用這么一句代碼: 但是有時候我們會發(fā)現(xiàn)device確實是放在了cpu上面,所以為了明確出錯的原因,我們在shell里先import了torch,再執(zhí)行 torch.cuda.is_available() ,發(fā)現(xiàn)在返回 False 結(jié)果之前給出了錯誤原因,其中部分內(nèi)容就是我們在標(biāo)題中寫的

    2024年02月12日
    瀏覽(16)
  • CUDA小白 - NPP(4) 圖像處理 Data Exchange and Initialization(2)

    CUDA小白 - NPP(4) 圖像處理 Data Exchange and Initialization(2)

    cuda小白 原始API鏈接 NPP GPU架構(gòu)近些年也有不少的變化,具體的可以參考別的博主的介紹,都比較詳細(xì)。還有一些cuda中的專有名詞的含義,可以參考《詳解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常見的NppStatus,可以看這里。 如有問題,請指出,謝謝 Convert Bit Dep

    2024年02月09日
    瀏覽(36)
  • RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublas‘

    調(diào)用nn.linear時出現(xiàn)RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublas’錯誤 ,搜索網(wǎng)上資料,主要指出以下原因: batch size太大(本人將batchsize設(shè)置成4,夠小吧!還是不行。。。) CUDA版本和torch不匹配(本人cuda版本是10.1,pytorch版本安裝的是cuda10.1+python3.8的pytorch1.

    2023年04月08日
    瀏覽(18)
  • 安裝oneforall遇到的問題ImportError: cannot import name ‘sre_parse‘ from ‘re‘(C:\Python311\Lib\re\_init_.py)

    安裝oneforall遇到的問題ImportError: cannot import name ‘sre_parse‘ from ‘re‘(C:\Python311\Lib\re\_init_.py)

    昨天試著安裝一下信息收集特別好用的工具oneforall,沒想到卻遇到了一個特別大的問題 上網(wǎng)查找,卻沒想到竟然你沒有一個答案,要么沒有正確答案,要么眾說紛紜,索性自己排查錯誤 根據(jù)報錯提示,說的是不能從re中導(dǎo)入sre_parse,而且還和re文件夾下的_init_.py有關(guān) 下面是我

    2023年04月17日
    瀏覽(31)
  • RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublasCreate(handle)`

    DialoGPT/data_loader.py at 457835e7d8acd08acf7f6f0e980f36fd327ea37c · microsoft/DialoGPT · GitHub 報錯:RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublasCreate(handle)` 我把輸入用同樣形狀的隨機(jī)張量進(jìn)行了測試,發(fā)現(xiàn)用隨機(jī)的整數(shù)張量可以,但是用我的輸入就不行,于是想看看兩者的區(qū)別

    2024年02月11日
    瀏覽(20)
  • ORA-01033: ORACLE initialization or shutdown in progress---惜分飛

    ORA-01033: ORACLE initialization or shutdown in progress---惜分飛

    客戶反饋數(shù)據(jù)庫使用plsql dev登錄報ORA-01033: ORACLE initialization or shutdown in progress的錯誤 ? 出現(xiàn)該錯誤一般是由于數(shù)據(jù)庫沒有正常open成功,查看oracle 告警日志發(fā)現(xiàn) Mon Jan 22 16:55:50 2024 Database mounted in Exclusive Mode Lost write protection disabled Completed: alter database mount exclusive alter database open

    2024年01月23日
    瀏覽(16)
  • vue3 + vite Cannot access ‘xxx‘ before initialization 組件熱更新失敗,es模塊循環(huán)引用問題

    vue3 + vite Cannot access ‘xxx‘ before initialization 組件熱更新失敗,es模塊循環(huán)引用問題

    問題原因 本人 在 pinia stores 文件中使用了 router ,而main.ts 已經(jīng)引入過router main.ts pinia 下 modelCache.ts 文件 pinia 下 modelCache.ts 文件使用了router 并Model組件中 引入了modelCache.ts 該文件 這樣導(dǎo)致es模塊循環(huán) vite熱更新失敗 解決 pinia 下 modelCache.ts 文件 router 引入方式改為 函數(shù)引入 在

    2024年02月12日
    瀏覽(35)
  • 安裝pytorch.cuda時出現(xiàn)Solving environment: failed with initial frozen solve. Retrying with flexible solve

    安裝pytorch.cuda時出現(xiàn)Solving environment: failed with initial frozen solve. Retrying with flexible solve

    使用了網(wǎng)上大家說的更新conda,以及更換鏡像均無法解決。便嘗試使用pip安裝指令。 ?1、將清華鏡像源添加到PIP的搜索目錄中,打開ANACONDA PROMPT,鍵入 ?2、進(jìn)入PYTORCH官網(wǎng),選擇適合自己電腦系統(tǒng)的版本,在這里查看不同顯卡驅(qū)動所對應(yīng)的CUDA版本。 ?復(fù)制安裝指令 3、在anacon

    2024年02月15日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包