日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pytorch函数详解 附带测试demo

發布時間:2023/12/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pytorch函数详解 附带测试demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

“”"
-------------------torch 函數詳解----------------------------
“”"

import numpy as np import torch from torch.autograd import Variable from torch import nn import matplotlib.pyplot as plt

“”“1.torch.is_tensor(x):如果obj 是一個pytorch張量,則返回True”""

x = torch.Tensor(2,3,4) #新建一個pytorch張量 torch.is_tensor(x) print('result:', torch.is_tensor(x))輸出結果:result: True

“”“2.torch.is_storage(x):如何x 是一個pytorch storage對象,則返回True”""

print(torch.is_storage(x)) 輸出結果:False

“”“3.torch.numel:返回x 張量中的元素個數”""

print(torch.numel(x)) 輸出結果:24

“”“4.torch.eye(n, m=None, out=None):返回一個2維張量,對角線位置全1,其它位置全0"”"

y = torch.eye(3) print(y) 輸出結果: tensor([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]])

“”“5.torch.from_numpy(ndarray):Numpy橋,將numpy.ndarray 轉換為pytorch的 Tensor。
返回的張量tensor和numpy的ndarray共享同一內存空間。修改一個會導致另外一個也被修改。返回的張量不能改變大小”""

a = np.array([1,2,3]) t = torch.from_numpy(a) print(t) 輸出結果:tensor([1, 2, 3], dtype=torch.int32)

“”“6.torch.linspace:返回一個1維張量,包含在區間start 和 end 上均勻間隔的steps個點。 輸出1維張量的長度為steps
start (float) – 序列的起始點
end (float) – 序列的最終值
steps (int) – 在start 和 end間生成的樣本數
out (Tensor, optional) – 結果張量
“””

print(torch.linspace(3, 10, steps=5)) 輸出:tensor([ 3.0000, 4.7500, 6.5000, 8.2500, 10.0000])

“”“7.torch.logspace(start, end, steps=100, out=None):返回一個1維張量,包含在區間 10^start和 10^end上以對數刻度均勻間隔的steps個點。
輸出1維張量的長度為steps
start (float) – 序列的起始點
end (float) – 序列的最終值
steps (int) – 在start 和 end間生成的樣本數
out (Tensor, optional) – 結果張量
“””

print(torch.logspace(start=-10, end=10, steps=5)) 輸出:tensor([1.0000e-10, 1.0000e-05, 1.0000e+00, 1.0000e+05, 1.0000e+10])

“”“8.torch.ones(*sizes, out=None):返回一個全為1 的張量,形狀由可變參數sizes定義。
sizes (int…) – 整數序列,定義了輸出形狀
out (Tensor, optional) – 結果張量 例子:
“””

print(torch.ones(2, 3)) 輸出結果:tensor([[1., 1., 1.],[1., 1., 1.]])

“”“9.torch.rand(*sizes, out=None):返回一個張量,包含了從區間[0,1)的均勻分布中抽取的一組隨機數,形狀由可變參數sizes 定義。
sizes (int…) – 整數序列,定義了輸出形狀
out (Tensor, optinal) - 結果張量 例子:
“””

print(torch.rand(3)) 輸出結果:tensor([0.1480, 0.2517, 0.1265])

“”“10.torch.randn:返回一個張量,包含了從標準正態分布(均值為0,方差為 1,即高斯白噪聲)中抽取一組隨機數,形狀由可變參數sizes定義”""

print("torch.randn: ", torch.randn(3)) 輸出結果:torch.randn: tensor([1.2205, 0.2615, 0.4777])

“”“11.torch.randperm:給定參數n,返回一個從0 到 n - 1 的隨機整數排列”""

print(torch.randperm(3)) 輸出結果: tensor([2, 0, 1])

“”“12.torch.arange:返回一個1維張量,長度為 floor((end?start)/step)。包含從start到end,以step為步長的一組序列值(默認步長為1)。
參數:
start (float) – 序列的起始點
end (float) – 序列的終止點
step (float) – 相鄰點的間隔大小
out (Tensor, optional) – 結果張量”""

print("torch.arange: ", torch.arange(1, 5, 1, out = x)) print("x: ", x) 輸出結果:torch.arange: tensor([1., 2., 3., 4.])x: tensor([1., 2., 3., 4.])

“”"13.torch.range:返回一個1維張量,有 floor((end?start)/step)+1 個元素。包含在半開區間[start, end)
從start開始,以step為步長的一組值。 step 是兩個值之間的間隔,即 xi+1=xi+stepxi+1=xi+step

警告:建議使用函數 torch.arange()

參數:
start (float) – 序列的起始點
end (float) – 序列的最終值
step (int) – 相鄰點的間隔大小
out (Tensor, optional) – 結果張量"""

print("torch.range: ", torch.range(1.3, 5.6)) 輸出結果:torch.range: tensor([1.3000, 2.3000, 3.3000, 4.3000, 5.3000])

“”"14.torch.zeros:返回一個全為標量 0 的張量,形狀由可變參數sizes 定義。

參數:
sizes (int…) – 整數序列,定義了輸出形狀
out (Tensor, optional) – 結果張量"""

print("torch.zeros: ", torch.zeros(5)) 輸出結果:torch.zeros: tensor([0., 0., 0., 0., 0.])

“”"15.torch.max:返回輸入張量所有元素的最大值。
a.參數:input (Tensor) – 輸入張量

b.參數:
input (Tensor) – 輸入張量
dim (int) – 指定的維度
max (Tensor, optional) – 結果張量,包含給定維度上的最大值
max_indices (LongTensor, optional) – 結果張量,包含給定維度上每個最大值的位置索引

c.參數:
input (Tensor) – 輸入張量
other (Tensor) – 輸出張量
out (Tensor, optional) – 結果張量
“”"

aa = torch.randn(5) print(aa) print("torch.max111: ", torch.max(aa)) 輸出結果:tensor([ 0.4969, -0.1609, -1.3744, -0.6532, 1.2244])torch.max111: tensor(1.2244)

“”“dim=1 :取矩陣的每一行最大的值 組成一個1維矩陣。dim的值必須小于aa1的維度,比如:如果aa1是2維矩陣那么dim得小于2, aaa1為3為矩陣 dim的值得小于3
dim > 1 :取矩陣的每一列最大的值 組成一個矩陣
“””

aa2 = torch.randn(3, 4) print(aa2) print("torch.max222: ", torch.max(aa2, dim=1)) 輸出結果:tensor([[ 1.4783, 1.5988, 0.6321, -0.8419],[-1.6461, 1.4878, 0.9888, -0.2271],[ 0.6326, 0.1875, 0.6437, -0.9330]])torch.max222: torch.return_types.max(values=tensor([1.5988, 1.4878, 0.6437]),indices=tensor([1, 1, 2]))aa1 = torch.randn(2, 5, 6) print(aa1) 輸出結果:tensor([[[ 0.4342, 2.1148, -0.5727, -0.1438, -1.2496, 0.5915],[-0.6340, -0.5718, 0.7919, -0.5353, 0.0998, -1.6941],[-0.4791, -0.3789, 1.8555, 1.3287, 0.5841, -0.4429],[-1.3211, 1.2741, -1.7600, 0.2985, -1.0295, 1.2520],[ 0.9671, -0.5196, -0.7857, -0.0560, 0.2304, 0.2697]],[[-1.0855, -0.6774, 0.5850, 0.2507, -0.4710, 1.1073],[-0.2189, -0.2839, -1.2439, 1.2105, -0.6102, -0.3298],[-0.4399, -0.3557, -0.7534, 0.4810, -1.2203, 0.7078],[-0.6699, 2.0302, -1.3209, 0.0196, 1.5503, 0.5045],[-0.7213, -0.0689, -0.4742, 2.1822, -1.0017, 1.5620]]])ddww,dede = torch.max(aa1, dim=2) print("torch.max333: ", ddww, "rfrfrf: ", dede) 輸出結果:torch.max333: tensor([[2.1148, 0.7919, 1.8555, 1.2741, 0.9671],[1.1073, 1.2105, 0.7078, 2.0302, 2.1822]]) rfrfrf: tensor([[1, 2, 2, 1, 0],[5, 3, 5, 1, 3]])

#aa2和bbb2個一維矩陣沒一個元素對比 輸出大的元素 一維矩陣

aa2 = torch.randn(5) bbb = torch.randn(5) print("aa2: ", aa2) print("bbb: ", bbb) print("torch.max2: ", torch.max(aa2, bbb)) 輸出結果:aa2: tensor([ 1.5293, 0.8364, -0.0355, 1.4288, 0.6854])bbb: tensor([-0.7501, 0.0315, 0.0835, -1.1763, 0.0222])torch.max2: tensor([1.5293, 0.8364, 0.0835, 1.4288, 0.6854])

“”"16. torch.squeeze:將輸入張量形狀中的1 去除并返回。 如果輸入是形如(A×1×B×1×C×1×D),那么輸出形狀就為: (A×B×C×D)
當給定dim時,那么擠壓操作只在給定維度上。例如,輸入形狀為: (A×1×B), squeeze(input, 0) 將會保持張量不變,
只有用 squeeze(input, 1),形狀會變成 (A×B)。

注意: 返回張量與輸入張量共享內存,所以改變其中一個的內容會改變另一個。

參數:
input (Tensor) – 輸入張量
dim (int, optional) – 如果給定,則input只會在給定維度擠壓
out (Tensor, optional) – 輸出張量"""

x1 = torch.zeros(2, 1, 2, 1, 3) print("squeeze: ", torch.squeeze(x1).size()) #去掉所有的1 print("squeeze1: ", torch.squeeze(x1, 1).size()) #去掉第一個1 輸出結果:squeeze: torch.Size([2, 2, 3])squeeze1: torch.Size([2, 2, 1, 3])

“”"17.MSELoss(size_average=None, reduce=None, reduction=‘mean’):很多的 loss 函數都有 size_average 和 reduce 兩個布爾類型的參數。因為一般損失函數都是直接計算 batch 的數據,因此返回的 loss 結果都是維度為 (batch_size, ) 的向量。

(1)如果 reduce = False,那么 size_average 參數失效,直接返回向量形式的 loss
(2)如果 reduce = True,那么 loss 返回的是標量:
a)如果 size_average = True,返回 loss.mean();
b)如果 size_average = False,返回 loss.sum();

注意:默認情況下, reduce = True,size_average = True
“”"

a=np.array([[1,2],[3,6]]) b=np.array([[2,3],[8,5]])#返回向量 loss_fn = nn.MSELoss(size_average=False, reduce=False)#一般要求用nn.MSELoss(reduction='none') input = Variable(torch.from_numpy(a)) target = Variable(torch.from_numpy(b)) loss = loss_fn(input.float(), target.float()) print("loss: ", loss) 輸出結果:loss: tensor([[ 1., 1.],[25., 1.]])結果怎么算的?(2-1)的平方,(3-2)的平方,(8-3)的平方,(5-6)的平方即對應位置的差的平方值。print("---------------------------------------") #返回平局值 loss_fn1 = nn.MSELoss(size_average=True, reduce=True)#一般要求nn.MSELoss(reduction='mean')這樣寫 input = Variable(torch.from_numpy(a)) target = Variable(torch.from_numpy(b)) loss = loss_fn1(input.float(), target.float()) print("loss: ", loss) 輸出結果為:loss: tensor(7.) 怎么來的?上面算的(1+1+25+1)/4得到的

“”“18. item(): 一個tensor如果想要轉換為標準的python對象數值,需要調用tensor.item(),這個方法只對包含一個元素的tensor適用.
實際就是講張量轉為數字,如下:
如果超過1個元素 必報錯。
“””

x_train = np.array([[3.3]]) z1 = torch.from_numpy(x_train) print("21212: ", z1.item()) 輸出結果:21212: 3.3

“”"19. plot() :畫圖
plot函數的一般的調用形式:
#單條線:
plot([x], y, [fmt], data=None, **kwargs)
#多條線一起畫
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)
可選參數[fmt] 是一個字符串來定義圖的基本屬性如:顏色(color),點型(marker),線型(linestyle),

具體形式 fmt = ‘[color][marker][line]’

fmt接收的是每個屬性的單個字母縮寫,例如: plot(x, y, ‘bo-’) # 藍色圓點實線
label :標記每條線或點的 一般是名字之類的
“”"
import matplotlib.pyplot as plt

x = np.array([[3.3], [4.4], [5.5], [6.71], [6.93], [4.168],[9.779], [6.182], [7.59], [2.167], [7.042],[10.791], [5.313], [7.997], [3.1]], dtype=np.float32)y = np.array([[1.7], [2.76], [2.09], [3.19], [1.694], [1.573],[3.366], [2.596], [2.53], [1.221], [2.827],[3.465], [1.65], [2.904], [1.3]], dtype=np.float32) plt.plot(x, y, 'ro', label='swswsw') plt.legend() plt.show()

“”“20.交叉熵損失函數: CrossEntropyLoss():公式 loss(x, class) = -x[class] + log(exp(x[0]) + …+ exp(x[j]))
“””
“”“單維度測試--------------------------------------------”""

import torch import torch.nn as nn import math loss = nn.CrossEntropyLoss() input = torch.randn(1, 5, requires_grad=True) target = torch.empty(1, dtype=torch.long).random_(4) output = loss(input, target)print("輸入為5類:") print(input) print("要計算loss的類別:") print(target) print("計算loss的結果:") print(output)first = 0 for i in range(1):first -= input[i][target[i]] #************** -x[class]second = 0 for i in range(1):for j in range(5):second += math.exp(input[i][j]) #************* exp(x[0]) + ...+ exp(x[j])res = 0 res += first + math.log(second) #********* -x[class] + log(exp(x[0]) + ...+ exp(x[j])) print("自己的計算結果:") print(res)輸出結果:輸入為5類:tensor([[-1.0431, -0.1981, 1.3219, -1.8172, -0.4636]], requires_grad=True)要計算loss的類別:tensor([0])計算loss的結果:tensor(2.7861, grad_fn=<NllLossBackward>)自己的計算結果:tensor(2.7861, grad_fn=<AddBackward0>)

“”"------------------------------------------------------"""
“”“多維度測試-------------------------------------------”""

import torch import torch.nn as nn import math loss = nn.CrossEntropyLoss() input = torch.randn(3, 5, requires_grad=True) target = torch.empty(3, dtype=torch.long).random_(5) output = loss(input, target)print("輸入為3個5類:") print(input) print("要計算loss的類別:") print(target) print("計算loss的結果:") print(output)first = [0,0,0] for i in range(3):first[i] -= input[i][target[i]] second = [0,0,0] for i in range(3):for j in range(5):second[i] += math.exp(input[i][j]) res = 0 for i in range(3):res += first[i] +math.log(second[i]) print("自己的計算結果:") print(res/3)輸出結果: 輸入為3個5類: tensor([[ 0.9773, -0.8612, -0.7163, 0.6097, 0.0114],[-0.2555, -1.4427, 1.9644, -0.7308, 2.1826],[ 0.3451, -1.3543, 0.0665, 0.5910, 0.2061]], requires_grad=True) 要計算loss的類別: tensor([1, 3, 2]) 計算loss的結果: tensor(2.6667, grad_fn=<NllLossBackward>) 自己的計算結果: tensor(2.6667, grad_fn=<DivBackward0>)

3維測試:

import torch import torch.nn as nn import math loss = nn.CrossEntropyLoss()#計算公式:loss(x, class) = -x[class] + log(exp(x[0]) + ...+ exp(x[j])) input = torch.randn(3, 5, 2, requires_grad=True) #input就是x target = torch.empty(3, 2, dtype=torch.long).random_(5) #target就是class output = loss(input, target)print("輸入為3個5類:") print(input) print("要計算loss的類別:") print(target) print("計算loss的結果:") print(output)first = [[0,0],[0,0],[0,0]] for i in range(3):for j in range(2):first[i][j] -= input[i][target[i][j]][j] #************** -x[class]second = [[0,0],[0,0],[0,0]] for i in range(3):for j in range(5):for k in range(2):second[i][k] += math.exp(input[i][j][k])#************* exp(x[0]) + ...+ exp(x[j])res = 0 for i in range(3):for j in range(2):res += first[i][j] +math.log(second[i][j]) #********* -x[class] + log(exp(x[0]) + ...+ exp(x[j])) print("自己的計算結果:") print(res/6)輸出結果:輸入為3個5類:tensor([[[-0.8542, -0.2139],[ 1.7634, 0.8149],[-0.4763, -0.5300],[-1.3903, -0.4187],[ 1.4105, -0.3344]],[[-0.8880, -0.4785],[-2.3293, -1.0082],[ 1.3367, 0.6445],[-0.6875, 0.9052],[-0.4579, -0.1773]],[[-0.8935, 1.4309],[ 0.9779, -0.4425],[-0.0809, -1.0523],[-0.3746, -0.2991],[ 0.4313, -1.3516]]], requires_grad=True)要計算loss的類別:tensor([[2, 4],[3, 4],[1, 2]])計算loss的結果:tensor(2.1585, grad_fn=<NllLoss2DBackward>)自己的計算結果:tensor(2.1585, grad_fn=<DivBackward0>)

“”“21.torch.random_(from=0, to=None, *, generator=None)
將tensor用從在[from, to-1]上的正態分布或離散正態分布取樣值進行填充。如果沒有明確說明,則填充值僅由本tensor的數據類型限定。
random_(x):從[0, x-1]區間取任意一個數填充。
random_(x, y):從[x, y-1]區間取任意一個數填充。
“””

ss = torch.empty(1).random_(6) print("212121: ", ss) ss1 = torch.empty(1).random_(6, 9) print("212121222: ", ss1)

“”"22. SGD:隨機梯度下降法
keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)
隨機梯度下降法,支持動量參數,支持學習衰減率,支持Nesterov動量
參數:
lr:大或等于0的浮點數,學習率
momentum:大或等于0的浮點數,動量參數
decay:大或等于0的浮點數,每次更新后的學習率衰減值
nesterov:布爾值,確定是否使用Nesterov動量

有3組數據:
x1 = [2, 3, 4, 5]
x2 = [5, 6, 7, 8]
y = [30, 40 ,50 ,60]

h(x) = ax1 + bx2
梯度算法就是要獲取a和b的值 讓h(x)的值更接近y的值,同時讓隨時函數l = loss(x, class)的值l 最小。這就是梯度算法的核心

最終公式是:Q := Q - ρ∑((Yi - H(xi))xi) Q從0到j每一個Q這么算

優點:
隨機梯度下降在計算下降最快的方向時時隨機選一個數據進行計算,而不是掃描全部訓練數據集,這樣就加快了迭代速度。

隨機梯度下降并不是沿著J(θ)下降最快的方向收斂,而是震蕩的方式趨向極小點。
“”"

# -*- coding: utf-8 -*- import random# 用y = Θ1*x1 + Θ2*x2來擬合下面的輸入和輸出 # input1 1 2 5 4 # input2 4 5 1 2 # output 19 26 19 20 input_x = [[1, 4], [2, 5], [5, 1], [4, 2]] # 輸入 y = [19, 26, 19, 20] # 輸出theta = [1, 1] # θ參數初始化 loss = 10 # loss先定義一個數,為了進入循環迭代 step_size = 0.01 # 步長 eps = 0.0001 # 精度要求 max_iters = 10000 # 最大迭代次數 error = 0 # 損失值 iter_count = 0 # 當前迭代次數while (loss > eps and iter_count < max_iters): # 迭代條件loss = 0i = random.randint(0, 3) # 每次迭代在input_x中隨機選取一組樣本進行權重的更新pred_y = theta[0] * input_x[i][0] + theta[1] * input_x[i][1] # 預測值theta[0] = theta[0] - step_size * (pred_y - y[i]) * input_x[i][0]theta[1] = theta[1] - step_size * (pred_y - y[i]) * input_x[i][1]for i in range(3):pred_y = theta[0] * input_x[i][0] + theta[1] * input_x[i][1] # 預測值error = 0.5 * (pred_y - y[i]) ** 2loss = loss + erroriter_count += 1print('iters_count', iter_count) print('theta: ', theta) print('final loss: ', loss) print('iters: ', iter_count)

“”“23.torch.view():返回一個有相同數據但大小不同的tensor。 返回的tensor必須有與原tensor相同的數據和相同數目的元素,
但可以有不同的大小。一個tensor必須是連續的contiguous()才能被查看。
另外,參數不可為空。參數中的-1就代表這個位置由其他位置的數字來推斷,只要在不致歧義的情況的下,view參數就可以推斷出來,也就是人可以推斷出形狀的情況下
“””

x = torch.randn(4, 4) print("x: ", x) print("x.size(): ", x.size()) y = x.view(16) print("yyy: ", y) print("y.size(): ", y.size())z = x.view(-1, 8) # the size -1 is inferred from other dimensions print("zzzz: ", z) print("z.size(): ", z.size())

“”“24.train_loader = DataLoader()”""

from torchvision import datasets from torch.utils.data import DataLoader from torchvision import transformstrain_dataset = datasets.MNIST(root='F:/PycharmProjects/pytorch-beginner-master/02-Logistic Regression/data', train=True, transform=transforms.ToTensor(), download=True) test_dataset = datasets.MNIST(root='F:/PycharmProjects/pytorch-beginner-master/02-Logistic Regression/data', train=False, transform=transforms.ToTensor()) batch_size = 32 train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True) print("訓練集總長度: ", len(train_dataset)) print("每個mini_batch的size為32,一共有: ", len(train_loader), "個")# for i, data in enumerate(train_loader, 1): # img, label = data #j將數據從train_loader讀出來 一次讀取的樣本數是32個 # img, label = Variable(img), Variable(label) # print("img.data.size(): ", img.data.size(), "img.data.size(): ", label.data.size())

“”"25.torch.sum(): 返回輸入張量input 所有元素的和。

輸出形狀與輸入相同,除了給定維度上為1"""

a = torch.randn(2, 5) print("cdcdcd: ", a) print("sum: ", a.sum())b = torch.randn(2, 5) num_correct = (a == b).sum() print("num_correct: ", num_correct)

“”“26.torch.nn.Linear():線形圖存, 對傳入數據應用線性變換:y = weight* x+ bias,PyTorch的nn.Linear()是用于設置網絡中的全連接層的,需要注意的是全連接層的輸入與輸出都是二維張量,一般形狀為[batch_size, size],不同于卷積層要求輸入輸出是四維張量。
參數:
in_features指的是輸入的二維張量的大小,即輸入的[batch_size, size]中的size的值
out_features指的是輸出的二維張量的大小,即輸出的二維張量的形狀為[batch_size,output_size],當然,它也代表了該全連接層的神經元個數。
從輸入輸出的張量的shape角度來理解,相當于一個輸入為[batch_size, in_features]的張量變換成了[batch_size, out_features]的輸出張量。
bias - 如果設置為False,則圖層不會學習附加偏差。默認值:True”""

x = torch.randn(2, 3)#輸入[batch_size=2, size=3] m = torch.nn.Linear(3, 2)#這里的3就是size,2是要輸出的output_size。所以輸出是[batch_size,2] output = m(x) print('m.weight.shape:\n ', m.weight.shape) print('m.bias.shape:\n', m.bias.shape)#m.bias由batch_size決定,batch_size的值來源于in_features print('output.shape:\n', output.shape) 輸出結果:m.weight.shape:torch.Size([2, 3])m.bias.shape: torch.Size([2])output.shape:torch.Size([2, 2])

“”"27.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1,
padding=0, dilation=1, groups=1,
bias=True, padding_mode=‘zeros’):2d卷積。
參數:
Input Channels:這個很好理解,就是輸入的四維張量[N, C, H, W]中的C了,即輸入張量的channels數。也就是輸入圖像的通道數
(如灰度圖像就是1通道,RGB圖像忽略alpha通道后就是3通道)。

out_channels:也很好理解,即期望的四維輸出張量的channels數,不再多說

Kernel_Size:filter(卷積核)的大小(F),一般我們會使用5x5、3x3這種左右兩個數相同的卷積核,因此這種情況只需要寫kernel_size = 5這樣的就行了。
如果左右兩個數不同,比如3x5的卷積核,那么寫作kernel_size = (3, 5),注意需要寫一個tuple,而不能寫一個列表(list)

Stride:步長(S),Stride指每次移動卷積核的步長,顯然這個值會大幅影響輸出的Feature Map的shape。

Padding:邊界補充§,Padding指為輸入圖像外圍補充的圈數,注意如28乘28的圖像,補充Padding=1就變成30乘30的了(而不是29乘29)。這個值一般直接在卷積時候定義,
不必手動為輸入圖像加Padding。

計算公式:
輸入的大小:W1 H1 D1
輸出大小:W2 = ((W1-F+2P)/S) + 1
H2 = ((H1-F+2P)/S) + 1
D2 = K
“”"

"""2維的卷積層,用于圖片的卷積""" # 輸入圖像的通道數=1(灰度圖像),卷積核的種類數=3(K) # 卷積核的shape是3乘3的,掃描步長為1,不加padding layer = nn.Conv2d(in_channels=1, out_channels=3, kernel_size=3, stride=1, padding=0)"""要輸入的原始圖像""" # 樣本數=1,通道數=1,圖像的shape是28乘28的 w=28,F=3 S=1,根據W2 = ((W1-F+2P)/S) + 1算得w2 = (28 - 3)/1 + 1 = 26 x = torch.rand(1, 1, 28, 28)#根據計算公式 輸出為:26*26*3 """使用上面定義的卷積層layer和輸入x,完成一次卷積的前向運算""" out = layer.forward(x) # 得到的還是1張圖片,因為用了3種kernel所以輸出的通道數變成3了 # 因為沒加padding,原來28乘28的圖像在3乘3卷積下得到的邊長是28-3+1=26 print("out.shape: ", out.shape) # torch.Size([1, 3, 26, 26])"""添加padding看看""" # 這次使用padding為1.所以原始圖像上下左右都加了一層0 layer = nn.Conv2d(1, 3, kernel_size=3, stride=1, padding=1) print(layer.forward(x).shape) # torch.Size([1, 3, 28, 28])"""步長設置為2看看""" # stride設置為2,也就是每次移動2格子(向上或者向右) layer = nn.Conv2d(1, 3, kernel_size=3, stride=2, padding=1) # 相當于每次跳1個像素地掃描,輸出的Feature Map直接小了一半 print(layer.forward(x).shape) # torch.Size([1, 3, 14, 14])"""實際使用時,應該這樣用!""" out = layer(x) print(out.shape) # torch.Size([1, 3, 14, 14])

“”"28. torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
如果padding不是0,會在輸入的每一邊添加相應數目0 比如padding=1,則在每一邊分別補0 ,其實最后的結果補出來是bias

參數:

kernel_size(int or tuple) - max pooling的窗口大小,可以為tuple,在nlp中tuple用更多,(n,1)
stride(int or tuple, optional) - max pooling的窗口移動的步長。默認值是kernel_size
padding(int or tuple, optional) - 輸入的每一條邊補充0的層數
dilation(int or tuple, optional) – 一個控制窗口中元素步幅的參數
return_indices - 如果等于True,會返回輸出最大值的序號,對于上采樣操作會有幫助
ceil_mode - 如果等于True,計算輸出信號大小的時候,會使用向上取整,代替默認的向下取整的操作
“”"

aa = torch.randn(4, 4, 2) print("aa: ", aa) bb = nn.MaxPool2d(kernel_size=2, stride=2) c = bb(aa) print("c: ", c) print("c.shape", c.shape)

“”"29. nn.LSTM(in_dim, hidden_dim, n_layer, batch_first=True):LSTM循環神經網絡
參數:
input_size: 表示的是輸入的矩陣特征數
hidden_size: 表示的是輸出矩陣特征數
num_layers 表示堆疊幾層的LSTM,默認是1
bias: True 或者 False,決定是否使用bias
batch_first: True 或者 False,因為nn.lstm()接受的數據輸入是(序列長度,batch,輸入維數),這和我們cnn輸入的方式不太一致,所以使用batch_first,我們可以將輸入變成(batch,序列長度,輸入維數)
dropout: 表示除了最后一層之外都引入一個dropout
bidirectional: 表示雙向LSTM,也就是序列從左往右算一次,從右往左又算一次,這樣就可以兩倍的輸出

batch_first: 輸入輸出的第一維是否為 batch_size,默認值 False。因為 Torch 中,人們習慣使用Torch中帶有的dataset,
dataloader向神經網絡模型連續輸入數據,這里面就有一個 batch_size 的參數,表示一次輸入多少個數據。 在 LSTM 模型中,
輸入數據必須是一批數據,為了區分LSTM中的批量數據和dataloader中的批量數據是否相同意義,LSTM 模型就通過這個參數的設定來區分。
如果是相同意義的,就設置為True,如果不同意義的,設置為False。 torch.LSTM 中 batch_size 維度默認是放在第二維度,故此參數設置
可以將 batch_size 放在第一維度。如:input 默認是(4,1,5),中間的 1 是 batch_size,指定batch_first=True后就是(1,4,5)。所以,
如果你的輸入數據是二維數據的話,就應該將 batch_first 設置為True;

“”"

import torch import torch.nn as nn from torch.autograd import Variable#構建網絡模型---輸入矩陣特征數input_size、輸出矩陣特征數hidden_size、層數num_layers inputs = torch.randn(5,3,10)# ->(seq_len,batch_size,input_size) """inputs = torch.randn(5,3,10) :bitch_size=5, seq_len=3,input_size=10 我的理解:有5個句子,每個句子3個單詞,每個單詞用10個實數向量表示;而句子的長度是不一樣的,所以seq_len可長可短,這也是LSTM可以解決長短序列 的特殊之處。只有seq_len這一參數是可變的。 """ rnn = nn.LSTM(10,20,2)# -> (input_size,hidden_size,num_layers) h0 = torch.randn(2,3,20)# ->(num_layers* 1,batch_size,hidden_size) c0 = torch.randn(2,3,20)# ->(num_layers*1,batch_size,hidden_size) num_directions=1# 因為是單向LSTM ''' Outputs: output, (h_n, c_n) ''' output,(hn,cn) = rnn(inputs,(h0,c0)) #print("out:", out)

“”“30. x.size(num):獲取維數”""

dede = torch.Tensor(3, 4, 5) print("dedede: ", torch.Tensor(3, 4, 5).size(0)) #值是3 print("dedede2: ", torch.Tensor(3, 4, 5).size(1))#值是4 print("dedede3: ", torch.Tensor(3, 4, 5).size(2))#值是5 #print("dedede4: ", torch.Tensor(3, 4, 5).size(3))#報錯frfr = torch.cuda.get_device_name(0) print("dedede: ", frfr)

31.torch.nn.ReLU(inplace=False):tensor所有的元素中如果小于零的就改為零
1.如果inplace為false,不改變輸入,只改變輸出
2.如果inplace為true,改變輸入
如下例子:

import torchinput = torch.randn(8) print('input: ', input)input1 = torch.nn.ReLU(inplace=False)(input) print('input: ', input) print('input1: ', input1)input2 = torch.nn.ReLU(inplace=True)(input) print('input: ', input) print('input2: ', input2) 輸出結果: input: tensor([-0.1985, -1.4657, 0.1393, -1.6685, 0.1855, -0.5001, -1.0144, 0.1143]) input: tensor([-0.1985, -1.4657, 0.1393, -1.6685, 0.1855, -0.5001, -1.0144, 0.1143]) input1: tensor([0.0000, 0.0000, 0.1393, 0.0000, 0.1855, 0.0000, 0.0000, 0.1143]) input: tensor([0.0000, 0.0000, 0.1393, 0.0000, 0.1855, 0.0000, 0.0000, 0.1143]) input2: tensor([0.0000, 0.0000, 0.1393, 0.0000, 0.1855, 0.0000, 0.0000, 0.1143])

總結

以上是生活随笔為你收集整理的pytorch函数详解 附带测试demo的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

91中文在线视频 | 亚洲电影一区二区 | 国产精品一区免费看8c0m | 极品嫩模被强到高潮呻吟91 | 91丨九色丨丝袜 | 色网站在线看 | 成人毛片在线视频 | 日日摸日日爽 | 不卡av免费在线观看 | 51久久夜色精品国产麻豆 | 精品一二三四视频 | 色网站免费在线观看 | 国产一级91 | a天堂中文在线 | 国产在线高清 | 日韩va在线观看 | 中文字幕在线视频一区二区 | 97在线视频免费 | 九九九国产 | 天天综合区 | www.888.av| 国产成人三级一区二区在线观看一 | 亚洲 欧美 91 | 激情视频免费观看 | 五月开心色 | 涩涩资源网 | 丁香五月亚洲综合在线 | 日韩中文在线播放 | 色搞搞| 91在线精品秘密一区二区 | 国内丰满少妇猛烈精品播 | 婷婷丁香狠狠爱 | 免费a v网站 | 成人免费在线视频 | 中文字幕在线资源 | 免费观看的黄色片 | 黄色大片免费播放 | 日韩大陆欧美高清视频区 | 亚洲国产字幕 | 国产精品久久久久久久久久不蜜月 | 97在线看| 91在线看片 | 91激情视频在线播放 | 国产高清专区 | 91成人精品一区在线播放 | 久久专区| 99热这里有 | 亚洲在线激情 | 97视频中文字幕 | 欧美经典久久 | 久久综合久久综合九色 | 99 视频 高清| 日本三级吹潮在线 | 91视频 - 88av | 国产黄a三级三级三级三级三级 | 免费在线观看av电影 | 97超碰国产精品 | 欧美人体xx| 亚洲在线日韩 | 在线观看一级片 | 日韩视频精品在线 | 五月婷婷中文字幕 | 成人一级在线观看 | 欧美巨大荫蒂茸毛毛人妖 | 国产最新网站 | 91麻豆精品国产91久久久久久 | 一区二区三区动漫 | 91在线蜜桃臀 | 欧美精品一区在线 | 久久草在线免费 | 一区二区在线电影 | 黄色av电影在线观看 | 国产精品欧美久久久久三级 | 91精品国产自产老师啪 | 国产手机视频在线播放 | 免费国产一区二区 | 日日夜夜精品视频 | 午夜精品久久久久久中宇69 | 久久国产二区 | 久久香蕉国产 | 婷婷在线精品视频 | 美女视频黄频大全免费 | 狠狠狠狠狠狠干 | 久久精品女人毛片国产 | 日韩欧美一级二级 | 国产黄色视 | 狠狠操狠狠干天天操 | 91污在线观看 | 五月天婷婷在线播放 | 久久亚洲成人网 | 丁香久久激情 | 国产精品白丝jk白祙 | 国产婷婷色 | a级黄色片视频 | 国产在线一线 | 天天舔天天搞 | 国产精品视频内 | 欧美日韩精品在线播放 | 久久国产精品免费观看 | 美女国内精品自产拍在线播放 | 973理论片235影院9 | 中文字幕精品www乱入免费视频 | 免费一级片在线 | 97超碰网| 久久国产精品一区二区三区 | 国产在线观看你懂的 | 91视频在线观看免费 | 精品国产一区二区三区久久 | 欧美成年人在线视频 | 一区二区 不卡 | 99精品国产99久久久久久97 | 美女网站黄免费 | 高潮久久久 | 免费特级黄色片 | 亚洲成人av在线 | 美女网站在线观看 | 国产视频日韩 | 99av国产精品欲麻豆 | 美女视频a美女大全免费下载蜜臀 | 久久视频6| 国产精品久久久 | 97在线看 | 欧美电影在线观看 | 激情综合电影网 | 西西444www大胆无视频 | 欧美在线观看视频一区二区三区 | 久久综合色8888 | 天天干天天做 | 国产99久久久精品 | 二区视频在线 | 天天草天天色 | 亚洲精品色 | 色多多视频在线观看 | 人人爽久久久噜噜噜电影 | 国产99久久精品一区二区永久免费 | 国产黄色大片免费看 | 99视频在线观看一区三区 | 精品国产视频一区 | 99精品欧美一区二区三区 | 不卡的一区二区三区 | 日韩精品久久一区二区三区 | 国产成人av电影在线观看 | www国产一区| 99人久久精品视频最新地址 | 亚洲人xxx | 亚洲爽爽网 | 男女啪啪免费网站 | 亚洲一区免费在线 | 久久午夜鲁丝片 | 99视频偷窥在线精品国自产拍 | 超碰在线观看99 | 激情丁香综合五月 | 99久久久久免费精品国产 | 中文字幕资源在线观看 | 韩国av一区 | 91亚洲精品乱码久久久久久蜜桃 | 欧美日韩国产精品一区二区三区 | 日精品在线观看 | 中文av在线播放 | 四虎影视8848dvd | 欧美美女视频在线观看 | 视频在线一区 | 国产黄色特级片 | 亚洲片在线 | 日韩av电影国产 | 狠狠色丁香婷婷综合久小说久 | 久久99久久99精品中文字幕 | www.五月婷婷 | 婷婷四房综合激情五月 | 国产成人精品一区二区在线 | 亚洲三级性片 | 婷婷在线视频观看 | 波多野结衣在线观看视频 | 99热这里只有精品国产首页 | 九九九在线观看 | 亚洲欧美国产视频 | 久草在线官网 | 国产中文字幕一区 | 亚洲欧美日韩一区二区三区在线观看 | 玖玖视频在线 | 天天久久夜夜 | 国产精品激情 | aaa日本高清在线播放免费观看 | 91久久爱热色涩涩 | 免费国产黄线在线观看视频 | 五月激情综合婷婷 | 免费日韩 精品中文字幕视频在线 | 高清有码中文字幕 | 免费看成人片 | 色婷婷久久久综合中文字幕 | 天天综合91| 天天操天天添天天吹 | 国产日韩欧美在线 | 精品无人国产偷自产在线 | 亚洲精品中文在线观看 | 一区二区三区在线电影 | 成人一区不卡 | 91亚洲在线观看 | 久久久黄视频 | 欧美久久久久久久久久久久 | 亚一亚二国产专区 | 五月婷婷视频 | 91av手机在线 | 99免费在线观看视频 | 国产精品一区二区在线 | 免费观看视频黄 | 日韩久久精品一区二区 | 亚洲激情小视频 | 午夜影院一级片 | 99久久精品免费看国产免费软件 | 免费午夜av | 在线视频一二三 | 国产精品18毛片一区二区 | 黄色小说在线观看视频 | 黄色大全免费网站 | 欧美日韩在线视频免费 | www视频免费在线观看 | 日韩在线免费高清视频 | 久久国产免 | 天天色天| 日韩免费不卡av | 国产精品av在线免费观看 | 99热这里只有精品国产首页 | 国模视频一区二区三区 | 日本中文字幕在线电影 | 国产91成人在在线播放 | 国产精品专区在线观看 | 国产精品视频区 | 久久国产视屏 | 日韩精品在线视频 | 91高清完整版在线观看 | 精品久久久久久久久久 | 欧美精品日韩 | 五月婷婷六月丁香激情 | 亚洲午夜不卡 | 在线观看中文字幕视频 | 日韩精品短视频 | 欧美日韩视频在线观看一区二区 | 99精品国产免费久久 | 91传媒91久久久 | 日韩欧美高清在线观看 | 丁香六月天婷婷 | 99re亚洲国产精品 | 久久污视频 | 91尤物国产尤物福利在线播放 | 久久99精品国产99久久 | 在线观看av免费 | 日韩亚洲在线视频 | 麻豆传媒视频在线播放 | 欧美精品日韩 | 久久涩涩网站 | 久久高清 | 丝袜美腿亚洲 | 99超碰在线观看 | 成人夜晚看av | 看片的网址 | 国产一级h | av免费在线观看1 | aⅴ精品av导航 | 国产不卡在线看 | 免费看国产视频 | 久久久久久久久久久久久久电影 | 欧美激情精品久久久久久变态 | 狠色狠色综合久久 | 91香蕉视频720p| 亚洲综合成人专区片 | 91人人网 | 久久成年人视频 | 久久人人爽人人人人片 | 国产精品日韩欧美一区二区 | 久久久久夜色 | 欧美少妇xxx | 欧美天天综合 | 国产色拍拍拍拍在线精品 | 久久久国产精品视频 | 97视频一区 | 免费黄色a级毛片 | 天天操天天操天天操天天操天天操 | 91香蕉亚洲精品 | 天天在线视频色 | 中文字幕 国产 一区 | 瑞典xxxx性hd极品 | 一级黄色片在线免费看 | 国产伦精品一区二区三区免费 | 天天草av | 最新日韩视频 | 国产午夜三级一区二区三桃花影视 | 在线观看视频99 | 亚洲日本va午夜在线影院 | 二区三区视频 | 四虎免费在线观看视频 | 成人一级电影在线观看 | 国产精品video爽爽爽爽 | 久久久久久草 | 免费视频97 | 亚洲 综合 国产 精品 | 国产91在| 91麻豆精品国产91久久久使用方法 | 中文字幕在线观看1 | 色欧美综合 | 久久精品电影 | 99久久精品免费看国产麻豆 | 欧美性天天 | 黄色aa久久| 国产91精品高清一区二区三区 | 亚洲黄色av一区 | 精品一区二区三区久久久 | 波多野结衣电影一区二区 | 亚洲高清91 | 国产一级视频在线观看 | 在线欧美国产 | 久久久久国产a免费观看rela | 久久久久久久久久国产精品 | 亚洲视频免费在线看 | 永久免费精品视频网站 | 国精产品一二三线999 | 国产1区2区3区精品美女 | 午夜视频在线瓜伦 | 日韩专区一区二区 | 成人免费看视频 | 国产精品毛片一区二区 | 激情中文字幕 | 国产一级精品视频 | 国产伦精品一区二区三区在线 | 顶级bbw搡bbbb搡bbbb | 色大片免费看 | 国产aaa毛片 | 天天天干| 99成人精品| 国产成人精品综合久久久久99 | 国产在线观看国语版免费 | 成人小视频在线观看免费 | 免费a一级 | 欧美 国产 视频 | 日韩簧片在线观看 | 国产又粗又猛又色又黄网站 | 亚洲国产精品小视频 | 91探花在线 | 一区二区三高清 | 久久私人影院 | 欧美日韩中文另类 | 香蕉视频在线免费 | 91人人揉日日捏人人看 | 最新日韩在线观看视频 | 2019天天干天天色 | 亚洲一级片在线观看 | 欧美精品久久人人躁人人爽 | 婷婷深爱五月 | 91在线视频精品 | 91毛片在线观看 | 波多野结衣电影一区二区 | 国产va饥渴难耐女保洁员在线观看 | 亚洲乱码精品久久久久 | 天天操天天舔天天干 | 在线国产欧美 | www.亚洲精品在线 | 日韩成人免费在线 | 狠狠色丁香婷婷综合橹88 | 久久狠狠亚洲综合 | 国产精品乱码在线 | 在线观看韩日电影免费 | 激情五月六月婷婷 | 成人超碰97 | 国产精品黄色 | 天天躁日日躁狠狠躁 | 国产黑丝袜在线 | 日韩欧美电影 | 中文字幕一区av | 日韩欧美v | 久久综合国产伦精品免费 | 久久在线视频精品 | 久久深爱网 | 精品美女久久久久久免费 | 亚洲国产经典视频 | 国产伦精品一区二区三区无广告 | 在线国产日韩 | 91大神免费在线观看 | 操操操com | 午夜国产一区 | 黄色片网站av | 在线黄色免费av | 亚洲九九影院 | 亚洲精品成人av在线 | www.婷婷色| 在线观看免费av网站 | 西西4444www大胆无视频 | 五月婷婷激情综合 | 国产成人精品一区二区三区福利 | 日韩xxxx视频| 国产精品久久久久影院日本 | 国内丰满少妇猛烈精品播放 | 青青视频一区 | 日韩理论电影在线观看 | 天天天天色射综合 | 99热最新精品 | 国产色视频一区二区三区qq号 | 日韩精品免费在线观看 | 日本性生活一级片 | 亚洲精品视频免费在线 | 国产精品免费看 | 日韩一区二区久久 | 黄色精品一区二区 | 福利片视频区 | 国产高清 不卡 | 国产黄色精品 | 国产视频2| 欧美日韩精品免费观看 | 国产精品国产三级在线专区 | 中文av字幕在线观看 | 91大神电影| 日韩一区二区免费视频 | aaa日本高清在线播放免费观看 | av成人免费网站 | 国产999在线观看 | 99午夜| 久久99久久精品国产 | 手机看国产毛片 | 日韩高清 一区 | 亚洲最大av网 | 日韩激情免费视频 | 午夜影视剧场 | 黄色av网站在线观看 | .国产精品成人自产拍在线观看6 | 91av原创| 成年人视频免费在线 | 2019中文字幕第一页 | 免费精品人在线二线三线 | 亚洲精品国产精品99久久 | 又黄又爽的免费高潮视频 | 亚洲欧美国产精品久久久久 | 四虎www.| 奇米7777狠狠狠琪琪视频 | 中文字幕在线一区观看 | 一区二区伦理电影 | 中文字幕欧美日韩va免费视频 | 成人污视频在线观看 | wwxxxx日本 | 激情久久一区二区三区 | 九九99视频 | 久久99精品久久只有精品 | 欧美黑人巨大xxxxx | 久久66热这里只有精品 | 在线成人中文字幕 | 亚洲一区二区三区毛片 | 中文区中文字幕免费看 | 五月婷婷黄色 | 麻豆传媒在线免费看 | 色欧美88888久久久久久影院 | 4438全国亚洲精品观看视频 | 国产精品美女久久久久久久 | 毛片网在线观看 | 国产久视频 | 青青草国产成人99久久 | 456免费视频 | 麻豆视频国产精品 | 中文字幕精品一区 | 精品国产乱码久久久久久1区2匹 | 91精品国产自产在线观看 | 国产高清在线免费观看 | 久久精品综合视频 | 狠狠操影视 | 日韩网站一区二区 | 久久毛片网 | 丁香激情综合久久伊人久久 | 欧美91av| 欧美日韩视频在线观看免费 | 日日夜夜免费精品 | 成人99免费视频 | 亚洲精选视频在线 | av千婊在线免费观看 | 天天色天天爱天天射综合 | 狠狠插狠狠操 | 99精品在线视频观看 | 日本中文字幕系列 | 久久99国产精品免费网站 | 久久黄色小说视频 | 91插插影库| 激情网五月婷婷 | 中文字幕高清视频 | 最新国产在线视频 | 天天操天天爱天天干 | 亚洲视频高清 | 久久综合视频网 | 欧美成人h版电影 | 91色亚洲| 成人a免费 | av久久在线 | 香蕉视频在线看 | www.久久精品视频 | 精品亚洲va在线va天堂资源站 | 日本精品久久久久久 | 欧美一级性生活视频 | 免费网站黄 | 天天射天天射天天射 | 久久99日韩 | 亚洲欧洲精品一区二区精品久久久 | 久久久在线观看 | 国产精品a久久 | 婷婷中文字幕 | 99精品一区 | 国产aa精品| 91麻豆免费看 | 日本精品中文字幕在线观看 | 精品少妇一区二区三区在线 | 日韩av黄| 在线中文字幕网站 | 欧美一区二区三区在线视频观看 | 午夜精品久久久久99热app | 国产精品欧美精品 | 成人在线观看免费视频 | 精精国产xxxx视频在线播放 | 国产精品欧美久久 | 亚洲国产精品久久久久 | 日韩精品一区二区三区丰满 | 免费观看www小视频的软件 | 91精品久久久久久久久 | 免费看污网站 | 一区二区三区四区精品视频 | 久草视频免费在线播放 | 91亚洲狠狠婷婷综合久久久 | 久久综合色天天久久综合图片 | 色综合天天 | 亚洲精品久久久久999中文字幕 | 99在线视频精品 | 国产精品毛片一区二区在线 | 日本久久久久久久久 | 久久久资源 | 亚洲综合成人专区片 | 蜜桃麻豆www久久囤产精品 | 日韩精品免费一区 | 97免费在线观看视频 | 亚洲国产精品久久久 | 久久综合九色综合欧美就去吻 | 最新真实国产在线视频 | 三级免费黄 | 九九久久久久久久久激情 | 99热播精品| 四虎影视成人精品 | 国产亚洲精品xxoo | 免费黄色a网站 | 日韩欧美在线高清 | 97视频资源 | 亚洲成aⅴ人片久久青草影院 | 成年人黄色免费看 | 六月激情丁香 | 成人h视频在线播放 | 久久综合九色欧美综合狠狠 | 丰满少妇麻豆av | 91天堂素人约啪 | 精品久久久久久久久亚洲 | 亚洲理论片在线观看 | av观看在线观看 | 美女免费av| 香蕉网站在线观看 | 久久天堂亚洲 | 亚洲精品免费看 | 视色网站 | 色姑娘综合天天 | 探花视频在线观看免费 | 日韩午夜剧场 | 深爱五月激情五月 | 在线观看mv的中文字幕网站 | 一区二区三区四区久久 | 九九免费精品 | 国产亚洲视频中文字幕视频 | 欧美日韩国产伦理 | 在线观看中文字幕一区 | 亚洲精品在线网站 | 天天操天天爱天天爽 | 中文字幕日韩伦理 | 综合久久久久 | 精品国产乱码久久 | 免费视频97 | 亚洲精品xx| 精品国产一区二区三区久久影院 | 婷婷色在线| 欧美在线不卡一区 | 最近中文字幕免费视频 | 精品国产一区二区三区在线 | 99看视频在线观看 | 欧美激情精品久久久久久免费印度 | 91精品爽啪蜜夜国产在线播放 | 久久五月婷婷丁香 | 国产在线观看高清视频 | 精品一区二区三区久久久 | 亚洲天堂精品视频在线观看 | 成年人视频在线观看免费 | 久草在线视频免费资源观看 | 福利精品在线 | 国产精品久久久久久久久久妇女 | 亚洲三级精品 | 国产剧情在线一区 | 久久这里只有精品视频99 | 国产精品淫片 | 国产精品欧美久久久久天天影视 | 日本精品va在线观看 | av在线免费播放网站 | 久久影视精品 | 日韩在线观看视频免费 | 亚洲欧美成人网 | 日韩在线字幕 | 国产超碰在线观看 | 91精品国产综合久久久久久久 | 在线综合色 | 欧美在线观看视频一区二区 | 成年人网站免费在线观看 | 国产精品久久久久久久久久妇女 | 亚洲欧美日韩精品久久久 | 亚洲视频 视频在线 | 99人久久精品视频最新地址 | 国产午夜一级毛片 | 欧美另类高清 videos | 高清av在线免费观看 | 午夜在线看 | 久久综合狠狠狠色97 | 91麻豆精品久久久久久 | 国产精品美女999 | 国产一区二区三区免费观看视频 | 久久在线观看视频 | 国产麻豆视频 | 人人干97 | 美女久久视频 | 激情偷乱人伦小说视频在线观看 | 亚洲一区二区三区四区精品 | 九色视频网| 免费看的黄色片 | 亚洲aⅴ在线观看 | 久久综合婷婷 | 依人成人综合网 | 日韩在线视频在线观看 | 国内精品视频在线播放 | 色丁香色婷婷 | 一本大道久久精品懂色aⅴ 五月婷社区 | 日本久久成人 | 狠日日| 国产精品一区二区美女视频免费看 | 欧美一级艳片视频免费观看 | 国产色在线观看 | 91传媒免费在线观看 | 在线免费观看国产精品 | 日韩电影精品一区 | 特级西西444www大精品视频免费看 | 久久成人精品视频 | 国产精品久久久久久模特 | 99精品视频一区 | 久久久久久久久综合 | 免费在线色 | 丁香六月欧美 | 国产成人a亚洲精品v | 日韩激情免费视频 | 91夜夜夜| 五月婷婷六月丁香在线观看 | 国产麻豆剧果冻传媒视频播放量 | 亚洲伊人网在线观看 | 黄色大片日本 | 国产午夜精品一区二区三区在线观看 | 国产一级免费观看 | 超碰免费成人 | 久久久久区 | 精品久久1| 国产精品美女久久久久久久久久久 | 五月婷婷视频在线观看 | 操操操人人 | av电影在线播放 | 日本三级不卡视频 | 色www免费视频 | 成人在线播放av | 国产一区二区久久精品 | 在线黄色国产 | 免费在线黄色av | 久久视频这里有久久精品视频11 | 亚洲片在线资源 | 国产精品久久久久免费 | 国产一级黄色av | 国产成人一区二 | 国产中文欧美日韩在线 | 久久免费视频播放 | 国产中文字幕网 | 精品国产自在精品国产精野外直播 | 中文字幕乱码一区二区 | av大片免费在线观看 | 亚洲一二三在线 | 欧美日韩高清在线观看 | 五月天婷婷在线观看视频 | 日韩在线观看不卡 | 天天射天天干天天操 | 99精品在线免费观看 | 91视频免费 | 99视频| 国产剧情一区二区在线观看 | 美女久久久久久久久久 | 欧美analxxxx | 色综合久久中文字幕综合网 | 久久在线 | 四虎国产免费 | 久久视频网 | 久久99最新地址 | 亚洲成人黄 | 欧美久久久久久久久久久 | 久久午夜电影 | 欧美激情h | 午夜精品久久一牛影视 | 黄色aaa级片 | 午夜av在线电影 | 九九视频精品免费 | 成人在线视频观看 | 久久久久免费精品 | 亚洲精品www. | 91精品办公室少妇高潮对白 | 一区三区视频在线观看 | 97超碰精品| 国产精品99久久久久久人免费 | 日韩欧美高清免费 | 91福利视频免费观看 | 中文字幕在线观看第一区 | 日韩大片在线观看 | 人人玩人人添人人澡超碰 | 午夜精品久久久99热福利 | 99久久www免费 | 正在播放国产一区 | 久久久久国产一区二区三区 | 久草剧场 | 狠狠干我 | 久久综合九九 | 日韩电影在线观看一区二区 | 一区二区三区在线视频观看58 | 特级黄色视频毛片 | 成全免费观看视频 | 国产一区二区久久 | 久久中文视频 | 中文字幕一区二区三区四区在线视频 | 欧美激情视频免费看 | 成人a在线 | 免费午夜视频在线观看 | 亚洲欧美成人综合 | 婷婷综合在线 | 亚洲黄色影院 | 欧美精品久久人人躁人人爽 | 久草久草在线观看 | 狠狠色狠狠色综合系列 | 美女视频黄色免费 | 天天草综合网 | 99视频精品全部免费 在线 | 国产精品去看片 | 欧美另类视频 | 日韩试看| 狠狠婷婷| 欧美日韩国产在线一区 | 久久99国产视频 | 日韩a在线 | 91探花国产综合在线精品 | 99久久综合精品五月天 | 中国一级片在线观看 | 国产福利av在线 | 国产综合片 | 日韩最新av| 久久九九国产精品 | 免费在线国产 | 欧美日韩中文另类 | 欧美特一级| 91福利在线观看 | 久久99精品久久久久久清纯直播 | 久久久久女人精品毛片 | 亚洲精品一区二区三区在线观看 | 亚洲精品99久久久久久 | 三级小视频在线观看 | 91传媒免费观看 | 一级做a爱片性色毛片www | 日本少妇久久久 | 黄色成人91 | 91视频免费网站 | 成人久久免费 | 国产一性一爱一乱一交 | 在线免费观看的av网站 | 国产精品久久人 | 高清国产在线一区 | 丁香婷婷深情五月亚洲 | 国产专区视频在线观看 | 视频成人永久免费视频 | 91中文字幕在线观看 | 国产精品久久久久久久久久99 | 人九九精品 | 亚洲视频在线免费观看 | 在线观看av免费观看 | 精品国产一区二区三区久久 | 免费在线观看污网站 | 国内视频在线观看 | 国产精品 日韩 | 国产女教师精品久久av | 欧美精品久久久久久久亚洲调教 | 欧美综合在线观看 | 香蕉网在线观看 | 亚洲天堂网站 | 97人人澡人人爽人人模亚洲 | 久草视频在线免费播放 | 精品中文字幕视频 | 99热在线观看免费 | av日韩av | 超碰人人干人人 | 天天射日 | 一级特黄aaa大片在线观看 | 日韩精品视频在线观看免费 | 久久综合在线 | 麻豆影音先锋 | 国产精品入口66mio女同 | 天天天天天天操 | 男女激情麻豆 | 国产免费午夜 | 91亚洲精品国偷拍 | 激情图片qvod| 成人影片免费 | 伊人天天色| 国产亚洲精品综合一区91 | 少妇bbb好爽 | 国产精品6999成人免费视频 | 久久午夜色播影院免费高清 | 手机成人av在线 | 免费高清在线视频一区· | 久久99久久99 | 免费日韩视频 | 亚洲日本中文字幕在线观看 | 一级a性色生活片久久毛片波多野 | 日本视频精品 | 91精品资源 | 91视频一8mav | 欧美极品少妇xxxx | 国产伦理久久 | 一级欧美黄 | 欧美日韩在线观看不卡 | 91精品国产网站 | 一本色道久久精品 | 国产精品成人a免费观看 | 亚洲有 在线 | 亚洲国内精品视频 | 免费一区在线 | 在线播放日韩av | 久久国产区 | 婷婷综合五月天 | 一级黄色片在线播放 | 91精品视频观看 | 日韩电影中文字幕在线观看 | 久久躁日日躁aaaaxxxx | 中文字幕在线观看网站 | 欧美午夜视频在线 | 中文字幕免费不卡视频 | 在线99热| 最新精品视频在线 | 亚洲综合欧美日韩狠狠色 | 成人免费视频在线观看 | 美女国产网站 | 亚洲劲爆av | 久久免费大片 | 欧美日韩久久不卡 | av在线进入| 超碰日韩 | 久久高清 | 狠狠色狠狠色综合日日92 | 欧美伦理一区二区 | 国产精品久久久久久久久软件 | 大胆欧美gogo免费视频一二区 | 亚洲最新av网站 | 国产精品成人在线观看 | 99久久国产免费免费 | 日本乱码在线 | 在线激情电影 | 亚洲精品裸体 | 国产精品乱看 | 久久黄色成人 | 国产特级毛片 | 国产精品国产自产拍高清av | 麻豆视频在线观看 | 久久久影院一区二区三区 | 波多野结衣一区 | 精品无人国产偷自产在线 | 亚洲国产精品一区二区久久hs | 久久人人爽| 亚洲毛片一区二区三区 | 俺要去色综合狠狠 | av动态图片 | 一区二区av | 国产精品乱码高清在线看 | 久久综合射 | 最近av在线 | 8x成人免费视频 | 亚洲国产精品500在线观看 | 午夜成人免费电影 | 免费成人在线观看视频 | 婷婷日韩 | 亚洲一区精品人人爽人人躁 | 久草视频在线免费看 | 91香蕉视频在线 | 欧洲高潮三级做爰 | 亚洲aⅴ免费在线观看 | 国产男女无遮挡猛进猛出在线观看 | 蜜臀久久99精品久久久酒店新书 | 日韩在线视频国产 | 99re久久资源最新地址 | 亚洲一区免费在线 | 国产成人精品日本亚洲999 | 国产亚洲精品日韩在线tv黄 | 99日韩精品 | 日韩三级视频在线观看 | 天天亚洲综合 | 国产精品美女久久久久久久网站 | 欧美一级性| 五月天电影免费在线观看一区 | 久99久精品视频免费观看 | 岛国av在线| 久久久久看片 | 日本久久电影网 | 国产精品国产三级国产aⅴ入口 | 五月天激情婷婷 | 久久久精品国产一区二区 | 久久不见久久见免费影院 | 欧美日韩国产在线一区 | 日韩免费看片 | 久精品一区 | 一区二区三区免费看 | 久久精品99北条麻妃 | 在线免费观看成人 | 91看片淫黄大片一级在线观看 | 91精品999 | www.久热| 日韩综合一区二区 | av成人在线电影 | 天天射天天干天天爽 | 超级av在线 | 免费av在线网 | 国产黄色片免费 | 日韩色爱| 成人黄大片视频在线观看 | 国内精品中文字幕 | 久久久国产影视 | 在线观看91精品国产网站 | 久久成年视频 | av在线播放中文字幕 | 久久久精品 | 摸bbb搡bbb搡bbbb | 精品999国产 | 久草精品视频在线看网站免费 | 在线中文字幕电影 | 亚洲一级片免费观看 | 在线免费黄色av | 日韩在线视 | av超碰在线| 日韩毛片在线播放 | 亚州国产视频 | 久久久久久久久久久久久国产精品 | 91精品国产99久久久久久久 | www.777奇米| 久久精品牌麻豆国产大山 | 日韩中文幕| 亚a在线 | 五月婷婷色丁香 | 国产精品久久久久毛片大屁完整版 | 激情综合啪 | 一区免费观看 | 又黄又刺激视频 | 狠狠的干| 99日韩精品 | 日韩电影在线观看一区二区 | 国产精品欧美 | 免费三级骚 | 91精品成人 | 丁香午夜 | 激情五月网站 | 久久69精品 | 在线观看国产日韩 | 中文字幕专区高清在线观看 | 中文字幕在线看视频国产中文版 | 91新人在线观看 | 91成人网在线播放 | 波多野结衣视频在线 | 中文字幕在线国产精品 | 91精品高清| 亚洲情感电影大片 | 麻豆91在线看 | 日韩中文字幕免费看 | 日本精品xxxx| 欧美一区二区在线免费观看 | 国产精品成人免费精品自在线观看 | 国产精品一区在线播放 | 亚洲精品久久久久久中文传媒 | 久久久久久久久久久精 | 98福利在线| 国产精品第一页在线 | 中文字幕电影高清在线观看 | 成人av免费播放 | 亚洲va欧美va人人爽春色影视 | 中文字幕日韩伦理 | 久久免费视频网 | 国产亚洲一区 | 久久爱导航 | 亚洲激情在线观看 | 欧美精品v国产精品v日韩精品 | 日本韩国中文字幕 | 天天色视频| 深爱五月激情五月 |