From 6667a6960b0c003bcdfc1cfa82792a3431ba4d16 Mon Sep 17 00:00:00 2001 From: luzhisheng Date: Fri, 21 Apr 2023 15:15:07 +0800 Subject: [PATCH] =?UTF-8?q?02pytorch=E5=9F=BA=E7=A1=80=E8=AF=AD=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 机器学习/02pytorch基础语法/__init__.py | 0 .../02pytorch基础语法/创建一个浮点数张量.py | 5 +++++ 机器学习/02pytorch基础语法/创建一个空张量.py | 4 ++++ 机器学习/02pytorch基础语法/创建值1填充的张量.py | 4 ++++ 机器学习/02pytorch基础语法/创建随机张量.py | 5 +++++ .../判断用的是cpu运算还是gpu运算.py | 4 ++++ 机器学习/02pytorch基础语法/张量.py | 13 +++++++++++++ .../02pytorch基础语法/张量和nump数组之间转换.py | 8 ++++++++ 机器学习/02pytorch基础语法/张量数据合并拉升.py | 17 +++++++++++++++++ 机器学习/02pytorch基础语法/张量求最大值.py | 17 +++++++++++++++++ 机器学习/02pytorch基础语法/张量的切片操作.py | 14 ++++++++++++++ 机器学习/02pytorch基础语法/张量的计算.py | 11 +++++++++++ 机器学习/02pytorch基础语法/张量的轴交换.py | 17 +++++++++++++++++ 机器学习/02pytorch基础语法/数据类型转换一.py | 9 +++++++++ 机器学习/02pytorch基础语法/数据类型转换二.py | 12 ++++++++++++ 机器学习/02pytorch基础语法/获取张量形状.py | 11 +++++++++++ 16 files changed, 151 insertions(+) create mode 100644 机器学习/02pytorch基础语法/__init__.py create mode 100644 机器学习/02pytorch基础语法/创建一个浮点数张量.py create mode 100644 机器学习/02pytorch基础语法/创建一个空张量.py create mode 100644 机器学习/02pytorch基础语法/创建值1填充的张量.py create mode 100644 机器学习/02pytorch基础语法/创建随机张量.py create mode 100644 机器学习/02pytorch基础语法/判断用的是cpu运算还是gpu运算.py create mode 100644 机器学习/02pytorch基础语法/张量.py create mode 100644 机器学习/02pytorch基础语法/张量和nump数组之间转换.py create mode 100644 机器学习/02pytorch基础语法/张量数据合并拉升.py create mode 100644 机器学习/02pytorch基础语法/张量求最大值.py create mode 100644 机器学习/02pytorch基础语法/张量的切片操作.py create mode 100644 机器学习/02pytorch基础语法/张量的计算.py create mode 100644 机器学习/02pytorch基础语法/张量的轴交换.py create mode 100644 机器学习/02pytorch基础语法/数据类型转换一.py create mode 100644 机器学习/02pytorch基础语法/数据类型转换二.py create mode 100644 机器学习/02pytorch基础语法/获取张量形状.py diff --git a/机器学习/02pytorch基础语法/__init__.py b/机器学习/02pytorch基础语法/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/机器学习/02pytorch基础语法/创建一个浮点数张量.py b/机器学习/02pytorch基础语法/创建一个浮点数张量.py new file mode 100644 index 0000000..dab33ca --- /dev/null +++ b/机器学习/02pytorch基础语法/创建一个浮点数张量.py @@ -0,0 +1,5 @@ +import torch + +# 在100~1000中随机整数 +t4 = torch.FloatTensor(2, 3, 4) +print(t4) diff --git a/机器学习/02pytorch基础语法/创建一个空张量.py b/机器学习/02pytorch基础语法/创建一个空张量.py new file mode 100644 index 0000000..2569e3f --- /dev/null +++ b/机器学习/02pytorch基础语法/创建一个空张量.py @@ -0,0 +1,4 @@ +import torch + +t4 = torch.empty((2, 2, 3)) +print(t4) diff --git a/机器学习/02pytorch基础语法/创建值1填充的张量.py b/机器学习/02pytorch基础语法/创建值1填充的张量.py new file mode 100644 index 0000000..2f7bf6c --- /dev/null +++ b/机器学习/02pytorch基础语法/创建值1填充的张量.py @@ -0,0 +1,4 @@ +import torch + +t4 = torch.ones((2, 2, 3)) +print(t4) diff --git a/机器学习/02pytorch基础语法/创建随机张量.py b/机器学习/02pytorch基础语法/创建随机张量.py new file mode 100644 index 0000000..0b332b9 --- /dev/null +++ b/机器学习/02pytorch基础语法/创建随机张量.py @@ -0,0 +1,5 @@ +import torch + +# 在100~1000中随机整数 +t4 = torch.randint(low=100, high=1000, size=(2, 3, 4)) +print(t4) diff --git a/机器学习/02pytorch基础语法/判断用的是cpu运算还是gpu运算.py b/机器学习/02pytorch基础语法/判断用的是cpu运算还是gpu运算.py new file mode 100644 index 0000000..eb0c987 --- /dev/null +++ b/机器学习/02pytorch基础语法/判断用的是cpu运算还是gpu运算.py @@ -0,0 +1,4 @@ +import torch + +device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') +print(device) diff --git a/机器学习/02pytorch基础语法/张量.py b/机器学习/02pytorch基础语法/张量.py new file mode 100644 index 0000000..14de9c1 --- /dev/null +++ b/机器学习/02pytorch基础语法/张量.py @@ -0,0 +1,13 @@ +import torch +import numpy as np + +list_1 = [ + [1, 2, 3, 4, 5, 6], + [1, 2, 3, 4, 5, 6], + [1, 2, 3, 4, 5, 6], +] +print(list_1) +print(np.array(list_1)) + +# 张量 +print(torch.tensor(list_1)) diff --git a/机器学习/02pytorch基础语法/张量和nump数组之间转换.py b/机器学习/02pytorch基础语法/张量和nump数组之间转换.py new file mode 100644 index 0000000..fb13044 --- /dev/null +++ b/机器学习/02pytorch基础语法/张量和nump数组之间转换.py @@ -0,0 +1,8 @@ +import torch + + +t5 = torch.randint(low=100, high=1000, size=(2, 3, 4)) +print(t5.numpy()) + +t6 = torch.tensor([[[[[[[[[[[100]]]]]]]]]]]) +print(t6.item()) diff --git a/机器学习/02pytorch基础语法/张量数据合并拉升.py b/机器学习/02pytorch基础语法/张量数据合并拉升.py new file mode 100644 index 0000000..83362fb --- /dev/null +++ b/机器学习/02pytorch基础语法/张量数据合并拉升.py @@ -0,0 +1,17 @@ +import torch + + +list_8 = [[[792, 436, 928, 303], + [809, 170, 778, 652], + [967, 520, 419, 184]], + + [[402, 754, 327, 979], + [713, 926, 879, 934], + [540, 953, 209, 369]]] +t8 = torch.tensor(list_8) + +# 合并成单列单行 +print(t8.view(-1)) + +# 拉升成4行6列 +print(t8.view(4, 6)) diff --git a/机器学习/02pytorch基础语法/张量求最大值.py b/机器学习/02pytorch基础语法/张量求最大值.py new file mode 100644 index 0000000..ee099f1 --- /dev/null +++ b/机器学习/02pytorch基础语法/张量求最大值.py @@ -0,0 +1,17 @@ +import torch + +list_7 = [ + [792, 436, 928, 303], + [809, 170, 778, 652], + [967, 520, 419, 184] +] +t7 = torch.tensor(list_7) + +# 求最大值 +print(t7.max()) + +# 列求最大值 +print(t7.max(dim=0)) + +# 行求最大值 +print(t7.max(dim=1)) diff --git a/机器学习/02pytorch基础语法/张量的切片操作.py b/机器学习/02pytorch基础语法/张量的切片操作.py new file mode 100644 index 0000000..0a9b44a --- /dev/null +++ b/机器学习/02pytorch基础语法/张量的切片操作.py @@ -0,0 +1,14 @@ +import torch + +list_10 = [[[792, 436, 928, 303], + [809, 170, 778, 652], + [967, 520, 419, 184]], + [[402, 754, 327, 979], + [713, 926, 879, 934], + [540, 953, 209, 369]]] +t10 = torch.tensor(list_10) + +# 切第一个维度为1,其他维度不切 +print(t10[1:, :, :]) + +print(t10[1:, 2:, 3].item()) diff --git a/机器学习/02pytorch基础语法/张量的计算.py b/机器学习/02pytorch基础语法/张量的计算.py new file mode 100644 index 0000000..ac4e630 --- /dev/null +++ b/机器学习/02pytorch基础语法/张量的计算.py @@ -0,0 +1,11 @@ +import torch + +list_10 = [[[792, 436, 928, 303], + [809, 170, 778, 652], + [967, 520, 419, 184]], + [[402, 754, 327, 979], + [713, 926, 879, 934], + [540, 953, 209, 369]]] +t10 = torch.tensor(list_10) + +print(t10*100) diff --git a/机器学习/02pytorch基础语法/张量的轴交换.py b/机器学习/02pytorch基础语法/张量的轴交换.py new file mode 100644 index 0000000..3eb09f1 --- /dev/null +++ b/机器学习/02pytorch基础语法/张量的轴交换.py @@ -0,0 +1,17 @@ +import torch + +list_9 = [[402, 754, 327, 979], + [713, 926, 879, 934], + [540, 953, 209, 369]] +t9 = torch.tensor(list_9) + +# 轴交换,列变行,行变成列 +print(t9.size()) +# 1和0代表维度顺序 +t9 = t9.permute(1, 0) +print(t9) +print(t9.size()) + +# 原维度是(2, 3, 4),改变下标顺序(1, 0, 2),变成了([3, 2, 4]) +t10 = torch.randint(low=100, high=1000, size=(2, 3, 4)) +print(t10.permute(1, 0, 2).size()) diff --git a/机器学习/02pytorch基础语法/数据类型转换一.py b/机器学习/02pytorch基础语法/数据类型转换一.py new file mode 100644 index 0000000..8f318b5 --- /dev/null +++ b/机器学习/02pytorch基础语法/数据类型转换一.py @@ -0,0 +1,9 @@ +import torch + +list_2 = [ + [127, 128, 129, 4, 5, 6], + [1, 2, 3, 4, 5, 6], + [1, 2, 3, 4, 5, 6], +] +t2 = torch.tensor(list_2, dtype=torch.int8) # [-128 - 127] +print(t2) diff --git a/机器学习/02pytorch基础语法/数据类型转换二.py b/机器学习/02pytorch基础语法/数据类型转换二.py new file mode 100644 index 0000000..5772795 --- /dev/null +++ b/机器学习/02pytorch基础语法/数据类型转换二.py @@ -0,0 +1,12 @@ +import torch + + +list_2 = [ + [127, 128, 3, 4, 5, 6], + [1, 2, 3, 4, 5, 6], + [1, 2, 3, 4, 5, 6], +] +t2 = torch.tensor(list_2) # [-128 - 127] +print(t2.int()) +print(t2.double()) +print(t2.double().dtype) diff --git a/机器学习/02pytorch基础语法/获取张量形状.py b/机器学习/02pytorch基础语法/获取张量形状.py new file mode 100644 index 0000000..c1de00d --- /dev/null +++ b/机器学习/02pytorch基础语法/获取张量形状.py @@ -0,0 +1,11 @@ +import torch + +list_3 = [ + [127, 128, 3, 4, 5, 6], + [1, 2, 3, 4, 5, 6], + [1, 2, 3, 4, 5, 6], +] +t3 = torch.tensor(list_3) # [-128 - 127] +print(t3.shape) +print(t3.size()) +