亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用pytorch時(shí)所遇到的一些問(wèn)題總結(jié)

 更新時(shí)間:2021年05月28日 09:50:36   作者:NewRookie  
這篇文章主要介紹了使用pytorch時(shí)所遇到的一些問(wèn)題總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用pytorch時(shí)所遇到的問(wèn)題總結(jié)

1、ubuntu vscode切換虛擬環(huán)境

在ubuntu系統(tǒng)上,配置工作區(qū)文件夾所使用的虛擬環(huán)境。之前筆者誤以為只需要在vscode內(nèi)置的終端上將虛擬環(huán)境切換過(guò)來(lái)即可,后來(lái)發(fā)現(xiàn)得通過(guò)配置vscode的解釋器(interpreter)

具體方法如下:

選中需要配置的文件夾,然后點(diǎn)擊vscode左下角的寫有“Python ***”的位置(或者使用快捷鍵“ctrl+shift+p”)--》選擇文件夾--》從解釋器列表中選擇要用的解釋器。

完成設(shè)置后,會(huì)在文件夾下面多出一個(gè)名為“.vscode”的文件夾,其中會(huì)多出一個(gè)名為“settings.json”的文件,經(jīng)過(guò)設(shè)置后該文件內(nèi)會(huì)多出一個(gè)條目來(lái)指向虛擬環(huán)境中的python的路徑,

例如:

python.pythonPath:"/home/lh/anaconda3/envs/pytorch/bin/python"

2、使用DataLoader時(shí)報(bào)錯(cuò):

raise RuntimeError('already started')

出錯(cuò)位置在使用DataLoader時(shí),將參數(shù)“num_workers”設(shè)置為大于0的值了,推測(cè)原因是沒(méi)有打開(kāi)多線程功能,解決方法為將num_workers設(shè)置為0。

如果需要要使用多個(gè)子線程來(lái)加載數(shù)據(jù),那么就需要讓主程序在“if __name__ = 'main'"中運(yùn)行。

3、pytorch中使用TensorBoard

問(wèn)題(1):

Import Error:TensorBoard logging requires TensorBoard with Python summary writer installed

這是由于當(dāng)前的環(huán)境中沒(méi)有安裝TensorBoard。如果電腦上安裝有anaconda,那么直接使用命令“conda install tensorboard”即可。

問(wèn)題(2):調(diào)出tensorboard界面

當(dāng)在程序中調(diào)用SummaryWriter之后,在控制臺(tái)中會(huì)給出如下信息:

其中需要注意的是“--port 41889”。然后我們?cè)诳刂婆_(tái)中輸入命令“tensorboard --logdir='log' --port=41889”,--logdir用來(lái)指向之前所指定的日志目錄,--port就是之前控制臺(tái)中給出的端口號(hào)。輸入指令后,控制臺(tái)中會(huì)給出一個(gè)網(wǎng)址,打開(kāi)該網(wǎng)址就可以在瀏覽器中打開(kāi)tensorboard界面了。

4、pytorch使用dataloader時(shí),

報(bào)出“TypeError:default_collect:batch must contain tensors, numpy arrays, numbers,dicts or lists; found <class 'PIL.Image.Image'>”

這是因?yàn)樵趧?chuàng)建torchvision.Dataset對(duì)象的時(shí)候沒(méi)有將數(shù)據(jù)庫(kù)內(nèi)的圖像轉(zhuǎn)為torch張量,在創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的時(shí)候?qū)?shù)transform進(jìn)行如下設(shè)置就可以了:transform=transform.ToTensor()。

5、報(bào)錯(cuò)

RuntimeError:Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same

這是由于傳入模型的數(shù)據(jù)是放在CPU內(nèi)存中的,而模型本身被放置在GPU內(nèi)存中了。因此只需要將輸入的數(shù)據(jù)放置到GPU內(nèi)存中就可以解決問(wèn)該問(wèn)題了。

6、pytorch,同名函數(shù)后面加一個(gè)'_',例如:'clamp()'與'clamp_()'

一般來(lái)說(shuō),如果函數(shù)后帶了一個(gè)下劃線,就意味著在改變當(dāng)前張量的值的同時(shí)返回一個(gè)修改后的副本;如果不帶下劃線,那么就只返回修改后的副本,而不改變?cè)瓉?lái)張量的值。

例如:

import torch
a=torch.rand(3)
print('a:{}'.format(a))
print("clamp效果:")
b=a.clamp(0, 0.5)
print('b:{}'.format(b))
print('a:{}'.format(a))
print("clamp_效果:")
b=a.clamp_(0, 0.5)
print('b:{}'.format(b))
print('a:{}'.format(a))

結(jié)果為如下圖,可見(jiàn)張量a在調(diào)用clamp_函數(shù)后其本身的值也會(huì)發(fā)生改變,但是調(diào)用clamp的時(shí)候則只會(huì)返回一個(gè)修改后的副本。

7、python中(1)與(1,)的區(qū)別

‘(1)'這種寫法得到的是一個(gè)int類型的數(shù)據(jù),而‘(1, )'得到的是一個(gè)turple類型的數(shù)據(jù)。驗(yàn)證如下:

8、tqdm進(jìn)度條

tqdm.update()所傳入的參數(shù)指的是進(jìn)度條前進(jìn)的步長(zhǎng),而不是當(dāng)前進(jìn)度。

補(bǔ)充:Pytorch中常見(jiàn)的報(bào)錯(cuò)解決方案

本文用于記錄所在pytorch所遇到過(guò)的運(yùn)行時(shí)錯(cuò)誤,持續(xù)更新。

1、變量所在設(shè)備(CPU,GPU)不一致問(wèn)題

RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

可能原因:現(xiàn)在假設(shè)代碼要在GPU上運(yùn)行,并且你已經(jīng)進(jìn)行my_model.to(device)操作了。注意只有my_model中的屬性(也就是self.開(kāi)頭的變量)才會(huì)進(jìn)行.to(device)。如果出現(xiàn)這個(gè)錯(cuò)誤,可能是有的中間變量需要手動(dòng)再顯式地.to(device)一下~

2、在Conv2d中padding或stride的參數(shù)個(gè)數(shù)錯(cuò)誤的問(wèn)題

RuntimeError: expected padding to be a single integer value or a list of 1 values to match the convolution dimensions, but got padding=[0, 0]

原因一:

對(duì)于一張二維圖片來(lái)說(shuō),它的padding也是二維的,即橫、縱方向上都需要設(shè)置padding(當(dāng)然這兩個(gè)數(shù)字一般是一樣的)?,F(xiàn)在為什么提示我們padding應(yīng)該是一維的呢?一定是輸入數(shù)據(jù)維度不對(duì)。

原因二:

上面說(shuō)的是最可能的情況,如果你發(fā)現(xiàn)圖片已經(jīng)是四維的卻還有這個(gè)報(bào)錯(cuò),請(qǐng)檢查你Conv2d()的輸入?yún)?shù)。

例如,如果你把stride設(shè)置為一維的[3]而不是二維3(注意3會(huì)被自動(dòng)處理成[3, 3]),同時(shí)padding為二維的0。

pytorch發(fā)現(xiàn)stride是一維的,而padding卻是二維的,就會(huì)報(bào)錯(cuò)。

3、inplace operation問(wèn)題

one of the variables needed for gradient computation has been modified by an inplace operationone of the variables needed for gradient computation has been modified by an inplace operation

inplace操作可能會(huì)使得backward無(wú)法進(jìn)行(因?yàn)楫?dāng)前Tensor可能會(huì)在另一個(gè)地方被用到),比如forward出現(xiàn)了如下代碼:

x += y

你可能需要該成:

x = x + y

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解python的argpare和click模塊小結(jié)

    詳解python的argpare和click模塊小結(jié)

    這篇文章主要介紹了詳解python的argpare和click模塊小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • 畫(huà)pytorch模型圖,以及參數(shù)計(jì)算的方法

    畫(huà)pytorch模型圖,以及參數(shù)計(jì)算的方法

    今天小編就為大家分享一篇畫(huà)pytorch模型圖,以及參數(shù)計(jì)算的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • OPENCV去除小連通區(qū)域,去除孔洞的實(shí)例講解

    OPENCV去除小連通區(qū)域,去除孔洞的實(shí)例講解

    今天小編就為大家分享一篇OPENCV去除小連通區(qū)域,去除孔洞的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • IDEA創(chuàng)建python項(xiàng)目詳細(xì)圖文教程

    IDEA創(chuàng)建python項(xiàng)目詳細(xì)圖文教程

    在開(kāi)始編寫Python代碼之前,需要在IDEA中配置Python環(huán)境,下面這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建python項(xiàng)目的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • python魔法方法-自定義序列詳解

    python魔法方法-自定義序列詳解

    下面小編就為大家?guī)?lái)一篇python魔法方法-自定義序列詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • pycharm修改文件的默認(rèn)打開(kāi)方式的步驟

    pycharm修改文件的默認(rèn)打開(kāi)方式的步驟

    在本篇文章里小編給大家整理了關(guān)于pycharm修改文件的默認(rèn)打開(kāi)方式的步驟以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-07-07
  • Python魔法方法詳解

    Python魔法方法詳解

    今天小編就為大家分享一篇關(guān)于Python魔法方法詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • 如何利用python web框架做文件流下載的實(shí)現(xiàn)示例

    如何利用python web框架做文件流下載的實(shí)現(xiàn)示例

    這篇文章主要介紹了如何利用python web框架做文件流下載的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • pytorch方法測(cè)試詳解——?dú)w一化(BatchNorm2d)

    pytorch方法測(cè)試詳解——?dú)w一化(BatchNorm2d)

    今天小編就為大家分享一篇pytorch方法測(cè)試詳解——?dú)w一化(BatchNorm2d),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python文件讀取失敗怎么處理

    python文件讀取失敗怎么處理

    在本篇文章里小編給大家分享的是關(guān)于python文件讀取失敗怎么處理的相關(guān)文章,需要的朋友們參考下。
    2020-06-06

最新評(píng)論