最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用pytorch時所遇到的一些問題總結(jié)

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

使用pytorch時所遇到的問題總結(jié)

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

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

具體方法如下:

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

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

例如:

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

2、使用DataLoader時報錯:

raise RuntimeError('already started')

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

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

3、pytorch中使用TensorBoard

問題(1):

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

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

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

當在程序中調(diào)用SummaryWriter之后,在控制臺中會給出如下信息:

其中需要注意的是“--port 41889”。然后我們在控制臺中輸入命令“tensorboard --logdir='log' --port=41889”,--logdir用來指向之前所指定的日志目錄,--port就是之前控制臺中給出的端口號。輸入指令后,控制臺中會給出一個網(wǎng)址,打開該網(wǎng)址就可以在瀏覽器中打開tensorboard界面了。

4、pytorch使用dataloader時,

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

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

5、報錯

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)存中就可以解決問該問題了。

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

一般來說,如果函數(shù)后帶了一個下劃線,就意味著在改變當前張量的值的同時返回一個修改后的副本;如果不帶下劃線,那么就只返回修改后的副本,而不改變原來張量的值。

例如:

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é)果為如下圖,可見張量a在調(diào)用clamp_函數(shù)后其本身的值也會發(fā)生改變,但是調(diào)用clamp的時候則只會返回一個修改后的副本。

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

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

8、tqdm進度條

tqdm.update()所傳入的參數(shù)指的是進度條前進的步長,而不是當前進度。

補充:Pytorch中常見的報錯解決方案

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

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

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

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

2、在Conv2d中padding或stride的參數(shù)個數(shù)錯誤的問題

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]

原因一:

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

原因二:

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

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

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

3、inplace operation問題

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操作可能會使得backward無法進行(因為當前Tensor可能會在另一個地方被用到),比如forward出現(xiàn)了如下代碼:

x += y

你可能需要該成:

x = x + y

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

相關(guān)文章

  • python3.6使用urllib完成下載的實例

    python3.6使用urllib完成下載的實例

    今天小編就為大家分享一篇python3.6使用urllib完成下載的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python實現(xiàn)圖像最近鄰插值

    python實現(xiàn)圖像最近鄰插值

    這篇文章主要介紹了python實現(xiàn)圖像最近鄰插值,圖像插值技術(shù)即Nearest?Neighbour?Interpolate是圖像超分辨率領(lǐng)域的重要研究方法之一,其目的是根據(jù)已有的低分辨率圖像,獲得高分辨率圖像,下面來看看文章具體的敘述,需要的朋友可以參考一下
    2022-03-03
  • pycharm 實現(xiàn)顯示project 選項卡的方法

    pycharm 實現(xiàn)顯示project 選項卡的方法

    今天小編就為大家分享一篇pycharm 實現(xiàn)顯示project 選項卡的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python里將list中元素依次向前移動一位

    python里將list中元素依次向前移動一位

    這篇文章主要介紹了python里將list中元素依次向前移動一位,以及使用racket 5.2.1實現(xiàn)此功能的代碼,希望對大家有所幫助
    2014-09-09
  • python決策樹之CART分類回歸樹詳解

    python決策樹之CART分類回歸樹詳解

    這篇文章主要為大家詳細介紹了python決策樹之CART分類回歸樹,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python日期與時間戳的各種轉(zhuǎn)換示例

    python日期與時間戳的各種轉(zhuǎn)換示例

    這篇文章主要介紹了python日期與時間戳的各種轉(zhuǎn)換示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-02-02
  • python實現(xiàn)壁紙批量下載代碼實例

    python實現(xiàn)壁紙批量下載代碼實例

    本篇文章通過代碼實例給大家分享了用python實現(xiàn)壁紙批量下載這個功能,有興趣的朋友參考下吧。
    2018-01-01
  • Python實現(xiàn)將數(shù)據(jù)庫一鍵導(dǎo)出為Excel表格的實例

    Python實現(xiàn)將數(shù)據(jù)庫一鍵導(dǎo)出為Excel表格的實例

    下面小編就為大家?guī)硪黄狿ython實現(xiàn)將數(shù)據(jù)庫一鍵導(dǎo)出為Excel表格的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Python 結(jié)巴分詞實現(xiàn)關(guān)鍵詞抽取分析

    Python 結(jié)巴分詞實現(xiàn)關(guān)鍵詞抽取分析

    這篇文章主要介紹了Python 結(jié)巴分詞實現(xiàn)關(guān)鍵詞抽取分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • python計算列表內(nèi)各元素的個數(shù)實例

    python計算列表內(nèi)各元素的個數(shù)實例

    今天小編就為大家分享一篇python計算列表內(nèi)各元素的個數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論

什邡市| 海口市| 库车县| 永胜县| 祁连县| 澄城县| 泰兴市| 廊坊市| 普洱| 景泰县| 永春县| 长乐市| 巴林右旗| 农安县| 灵寿县| 普兰县| 台山市| 大庆市| 都安| 海淀区| 安宁市| 新郑市| 万安县| 黄大仙区| 丹寨县| 溧水县| 宜川县| 嘉荫县| 理塘县| 东城区| 利津县| 阿合奇县| 赤峰市| 东源县| 潜山县| 施甸县| 沁源县| 平邑县| 河东区| 沭阳县| 青阳县|