神經網路與PyTorch實戰學習(附錄)

2021-09-25 23:33:55 字數 2888 閱讀 2907

1. 命令列執行

2. jupyter notebook裡執行

執行anaconda prompt,進入合適的目錄 eg:

(base) c:\users\極點》d:

(base) d:\>cd d:\programdata\anaconda3

輸入jupyter notebook       eg:

(base) d:\programdata\anaconda3>jupyter notebook

然後瀏覽器上就會出現網頁jupyter notebook

3. ipython魔法函式

ipython魔法函式不是python語句,但是在jupyter notebook裡,可以像python語句一樣使用,分為行魔法和單元魔法兩大類。

行魔法是以1個英文百分號%開頭的魔法函式。常用的「%matplotlib inline」就是行魔法

行魔法%matplotlib 是用來選擇matplotlib庫的後台實現,一般選擇inline

行魔法%pwd用來檢視當前的工作目錄,使用該行魔法不需要引數,直接使用魔法名即可。

%pwd

行魔法%time和%timeit都是用來計算程式的執行時間。它們的區別在於,%time只執行程式1次,%timeit多次執行相同的程式來得到更加精確的統計結果。例如:

%time sum(x * x for x in range(100000))

行魔法%who和%whos用來列出當前python環境下的所有物件,%who只列出物件的名字,%whos不僅列出物件的名字,還列出物件的型別和一些資料描述,使用時可以加型別引數,例如,下面的語句列出所有的函式:

%whos function

行魔法%pinfo和%pinfo2用來檢視物件的資訊,%pinfo顯示的比較簡略,%pinfo2顯示的比較詳細,另外還可以通過英文問號「?」開頭的語句實現%pinfo的功能,用以兩個英文問好「??」開頭的語句實現%pinfo2的功能。例如

import torch

?torch.tenser

和import torch

??torch.tenser

4. 使用matplotlib進行資料視覺化

4.1 折線圖的繪製

python的擴充套件庫matplotlib主要用於繪製各種各樣的圖表,在jupyter中使用它,在匯入和使用之前需要使用魔法命令%matplotlib inline。

使用matplotlib的方法:

%matplotlib inline

import matplotlib.pyplot as plt

之後就可以直接使用plt.plot()函式,給plt.plot()傳入乙個列表,就可以繪製折線圖,列表值作為縱值,橫值1,2,3……

傳入兩個相同長度的列表,可以指定折線圖的橫軸和列軸。

一張圖上還可以繪製多條折線:

plt.plot([1,3,4,5],[2,3,4,5])

plt.plot([2,3,4,5],[2,6,7,8])

plt.show();

4.2 為圖表標註文字

x軸標籤:在繪圖區的下邊,用plt.xlable()設定

y軸標籤:在繪圖區的左邊,用plt.ylable()設定

圖例:在繪圖區的內部,plt.legend()設定

文字:可以出現在繪圖區人藝文志,plt.text()設定文字  eg:plt.text(5,5,'abd')在繪圖區座標值為(5,5)的地方出現文字abd

5. 用matplotlib庫除了繪製折線圖以外,還能繪製很多態別的圖表,包括超過二維的高維圖表。

散點圖:使用plt.scatter()繪製。eg:

plt.scatter([1,2,3],[4,5,6])

直方圖:直方圖可以顯示資料出現的頻次。使用hist()函式繪製. eg:

plt.hist([0,1,1,1,2,2,2,3,4],bins=4]

條形圖:使用bar()函式繪製,eg:

plt.bar([0,1,2,3],[5,4,3,2])

餅圖:用來表示資料佔總量的比例,使用pie()函式繪製

例如:plt.pie([3,2,4,5])

一張圖表中可以包括多個子圖,關鍵在於使用plt.subplot()函式

plt.subplot()函式有三個引數,第乙個引數表示一共有幾行子圖,第二個引數表示一共有幾列子圖。這兩個引數相乘表示一共有幾個子圖。子圖的索引是從1開始的。subplot還有乙個引數projection,當projection為字串'polar'時,這個子圖就成為了極座標下的圖。為了使用極座標,即使不需要多個子圖,也需要使用此函式

%matplotlib inline

import math

import matplotlib.pyplot as plt

theta = [math.radians(d) for d in range(360)]

rho = [1.-math.sin(t) for t in theta]

plt.subplot(1,1,1,projection = 'polar')

plt.plot(theta,rho)

plt.gca().get_yaxis().set_ticks([0.5,1,1.5,2]) #用途是讓長度座標軸顯示0.5,1,1.5,2這幾個數,此行**僅用於美化。

#gca()函式用於獲得當前的子圖,get_yaxis()函式進一步獲得當前子圖的y軸,最後set_ticks()函式用來指定這個長度軸需要在哪些位置標註數字

plt.text(math.pi/2, 1, r'$\rho =1-\sin\theta $',horizontalalignment='center')#用於在圖上標註數學公式,tex語句作為字串傳遞給text()函式

#反斜槓'\'作為tex的轉義字元

plt.show();

動手學pytorch 卷積神經網路基礎

1.二維卷積層 2.填充和步幅 3.多輸入通道和多輸出通道 4.卷積層與全連線層的對比 5.池化 二維互相關 cross correlation 運算的輸入是乙個二維輸入陣列和乙個二維核 kernel 陣列,輸出也是乙個二維陣列,其中核陣列通常稱為卷積核或過濾器 filter 卷積核的尺寸通常小於輸...

pytorch實現神經網路

import torch import torch.nn as nn import torch.nn.functional as f import inspect import torch.optim as optim 自動求導機制 對乙個標量用backward 會反向計算在計算圖中用到的葉節點的梯...

PyTorch分類神經網路

這次我們也是用最簡單的途徑來看看神經網路是怎麼進行事物的分類.我們建立一些假資料來模擬真實的情況.比如兩個二次分布的資料,不過他們的均值都不一樣.import torch import matplotlib.pyplot as plt 假資料 n data torch.ones 100,2 資料的基...