参考大神B站,记录学习笔记
5、深入剖析PyTorch DataLoader源码
其他大神笔记: pytorch数据操作—dataset,dataloader,transform
1. 重要类
- Data Loader
- Dataset
- Sample
- Random Sampler
- Sequential Sampler
- Batch Sample
- Shuffle
- torch.randperm
- yield from
- next,iter
- torch.Generator
- collate_fn
- multi_processing
- SingleProcessDataLoaderIter
- get_iterator
- index_sampler
- BaseDataLoaderIter
- index_sampler
2. DataSet
- DataSet:主要是生成特征和标签对,自定义Dataset需要继承自抽象类dataset,需要实例化dataset的三种方法:
__init__,__len__,__getitem__
- init: 主要是定义特征features,标签labels的来源,有的特征features是图片,有的是csv格式文件,有的需要对图片进行一些变化,保证最后得到的特征是张量
- len: 表示的是整个dataset数据集中的大小
- getitem:是最重要的部分,需要形成(特征,标签)对,这样方便后续训练和识别,有训练数据集中的特征,标签的前处理,主要是能够根据dataset[i]返回第i个特征标签对,
d a t a s e t [ i ] = ( f e a t u r e i , l a b e l i ) dataset[i]=(feature_i,label_i) dataset[i]=(featurei,labeli) - 注:属于训练数据集的预处理阶段,dataset根据服务器的大小进行分块处理,以便能够进行下去
3. DataLoader
- DataLoader主要是为了将样本图片和标签一起按照指定的batchsize打包起来,形成一捆一捆的,这样能加速训练,打包中涉及到顺序打包,随机打包,涉及到采样的概念,为了增加程序的鲁棒性,一般会打乱打包;
- 比如我们的dataset有500个数据,DataLoader中的batchsize=5,那么一个DataLoader[i]中包含5个dataset[i],一共有100个dataloader[i]
4. Python实例
- python 代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName :my_test_label.py
# @Time :2024/11/19 20:15
# @Author :Jason Zhang
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
np.set_printoptions(suppress=True, precision=2)
np.random.seed(43434)
class MyDataset(Dataset):
def __init__(self, in_data, in_label):
self.data = in_data
self.label = in_label
def __len__(self):
return len(self.label)
def __getitem__(self, item):
index_data = torch.tensor(self.data[item])
index_label = torch.tensor(self.label[item])
return index_data, index_label
if __name__ == "__main__":
run_code = 0
my_data = np.linspace(1, 100, 500, dtype=np.float64)
print(f"my_data=\n{my_data}")
my_label = np.sin(my_data)
print(f"my_label=\n{my_label}")
my_dataset = MyDataset(my_data, my_label)
my_data_loader = DataLoader(my_dataset, batch_size=5, shuffle=True, drop_last=True)
i = 0
for loader in my_data_loader:
print(f"loader[{i}]={loader}")
i += 1
- 结果:
my_data=
[ 1. 1.2 1.4 1.6 1.79 1.99 2.19 2.39 2.59 2.79
2.98 3.18 3.38 3.58 3.78 3.98 4.17 4.37 4.57 4.77
4.97 5.17 5.36 5.56 5.76 5.96 6.16 6.36 6.56 6.75
6.95 7.15 7.35 7.55 7.75 7.94 8.14 8.34 8.54 8.74
8.94 9.13 9.33 9.53 9.73 9.93 10.13 10.32 10.52 10.72
10.92 11.12 11.32 11.52 11.71 11.91 12.11 12.31 12.51 12.71
12.9 13.1 13.3 13.5 13.7 13.9 14.09 14.29 14.49 14.69
14.89 15.09 15.28 15.48 15.68 15.88 16.08 16.28 16.47 16.67
16.87 17.07 17.27 17.47 17.67 17.86 18.06 18.26 18.46 18.66
18.86 19.05 19.25 19.45 19.65 19.85 20.05 20.24 20.44 20.64
20.84 21.04 21.24 21.43 21.63 21.83 22.03 22.23 22.43 22.63
22.82 23.02 23.22 23.42 23.62 23.82 24.01 24.21 24.41 24.61
24.81 25.01 25.2 25.4 25.6 25.8 26. 26.2 26.39 26.59
26.79 26.99 27.19 27.39 27.59 27.78 27.98 28.18 28.38 28.58
28.78 28.97 29.17 29.37 29.57 29.77 29.97 30.16 30.36 30.56
30.76 30.96 31.16 31.35 31.55 31.75 31.95 32.15 32.35 32.55
32.74 32.94 33.14 33.34 33.54 33.74 33.93 34.13 34.33 34.53
34.73 34.93 35.12 35.32 35.52 35.72 35.92 36.12 36.31 36.51
36.71 36.91 37.11 37.31 37.51 37.7 37.9 38.1 38.3 38.5
38.7 38.89 39.09 39.29 39.49 39.69 39.89 40.08 40.28 40.48
40.68 40.88 41.08 41.27 41.47 41.67 41.87 42.07 42.27 42.46
42.66 42.86 43.06 43.26 43.46 43.66 43.85 44.05 44.25 44.45
44.65 44.85 45.04 45.24 45.44 45.64 45.84 46.04 46.23 46.43
46.63 46.83 47.03 47.23 47.42 47.62 47.82 48.02 48.22 48.42
48.62 48.81 49.01 49.21 49.41 49.61 49.81 50. 50.2 50.4
50.6 50.8 51. 51.19 51.39 51.59 51.79 51.99 52.19 52.38
52.58 52.78 52.98 53.18 53.38 53.58 53.77 53.97 54.17 54.37
54.57 54.77 54.96 55.16 55.36 55.56 55.76 55.96 56.15 56.35
56.55 56.75 56.95 57.15 57.34 57.54 57.74 57.94 58.14 58.34
58.54 58.73 58.93 59.13 59.33 59.53 59.73 59.92 60.12 60.32
60.52 60.72 60.92 61.11 61.31 61.51 61.71 61.91 62.11 62.3
62.5 62.7 62.9 63.1 63.3 63.49 63.69 63.89 64.09 64.29
64.49 64.69 64.88 65.08 65.28 65.48 65.68 65.88 66.07 66.27
66.47 66.67 66.87 67.07 67.26 67.46 67.66 67.86 68.06 68.26
68.45 68.65 68.85 69.05 69.25 69.45 69.65 69.84 70.04 70.24
70.44 70.64 70.84 71.03 71.23 71.43 71.63 71.83 72.03 72.22
72.42 72.62 72.82 73.02 73.22 73.41 73.61 73.81 74.01 74.21
74.41 74.61 74.8 75. 75.2 75.4 75.6 75.8 75.99 76.19
76.39 76.59 76.79 76.99 77.18 77.38 77.58 77.78 77.98 78.18
78.37 78.57 78.77 78.97 79.17 79.37 79.57 79.76 79.96 80.16
80.36 80.56 80.76 80.95 81.15 81.35 81.55 81.75 81.95 82.14
82.34 82.54 82.74 82.94 83.14 83.33 83.53 83.73 83.93 84.13
84.33 84.53 84.72 84.92 85.12 85.32 85.52 85.72 85.91 86.11
86.31 86.51 86.71 86.91 87.1 87.3 87.5 87.7 87.9 88.1
88.29 88.49 88.69 88.89 89.09 89.29 89.48 89.68 89.88 90.08
90.28 90.48 90.68 90.87 91.07 91.27 91.47 91.67 91.87 92.06
92.26 92.46 92.66 92.86 93.06 93.25 93.45 93.65 93.85 94.05
94.25 94.44 94.64 94.84 95.04 95.24 95.44 95.64 95.83 96.03
96.23 96.43 96.63 96.83 97.02 97.22 97.42 97.62 97.82 98.02
98.21 98.41 98.61 98.81 99.01 99.21 99.4 99.6 99.8 100. ]
my_label=
[ 0.84 0.93 0.98 1. 0.98 0.91 0.81 0.68 0.53 0.35 0.16 -0.04
-0.24 -0.42 -0.59 -0.74 -0.86 -0.94 -0.99 -1. -0.97 -0.9 -0.79 -0.66
-0.5 -0.32 -0.12 0.07 0.27 0.45 0.62 0.76 0.88 0.95 0.99 1.
0.96 0.88 0.77 0.63 0.47 0.29 0.09 -0.11 -0.3 -0.48 -0.65 -0.78
-0.89 -0.96 -1. -0.99 -0.95 -0.87 -0.75 -0.61 -0.44 -0.25 -0.06 0.14
0.33 0.51 0.67 0.8 0.9 0.97 1. 0.99 0.94 0.85 0.73 0.58
0.41 0.22 0.03 -0.17 -0.36 -0.54 -0.69 -0.82 -0.92 -0.98 -1. -0.98
-0.93 -0.83 -0.71 -0.56 -0.38 -0.19 0.01 0.2 0.39 0.57 0.72 0.84
0.93 0.98 1. 0.98 0.91 0.82 0.69 0.53 0.35 0.16 -0.04 -0.24
-0.42 -0.59 -0.74 -0.86 -0.94 -0.99 -1. -0.97 -0.9 -0.8 -0.66 -0.5
-0.32 -0.13 0.07 0.27 0.45 0.62 0.76 0.87 0.95 0.99 1. 0.96
0.88 0.78 0.64 0.47 0.29 0.09 -0.1 -0.3 -0.48 -0.64 -0.78 -0.89
-0.96 -1. -0.99 -0.95 -0.87 -0.75 -0.61 -0.44 -0.26 -0.06 0.14 0.33
0.51 0.67 0.8 0.9 0.97 1. 0.99 0.94 0.85 0.73 0.58 0.41
0.22 0.03 -0.17 -0.36 -0.54 -0.69 -0.82 -0.92 -0.98 -1. -0.98 -0.93
-0.83 -0.71 -0.56 -0.38 -0.19 0. 0.2 0.39 0.56 0.72 0.84 0.93
0.98 1. 0.98 0.91 0.82 0.69 0.53 0.35 0.16 -0.04 -0.23 -0.42
-0.59 -0.74 -0.86 -0.94 -0.99 -1. -0.97 -0.9 -0.8 -0.66 -0.5 -0.32
-0.13 0.07 0.26 0.45 0.62 0.76 0.87 0.95 0.99 1. 0.96 0.89
0.78 0.64 0.47 0.29 0.1 -0.1 -0.3 -0.48 -0.64 -0.78 -0.89 -0.96
-1. -0.99 -0.95 -0.87 -0.76 -0.61 -0.44 -0.26 -0.06 0.13 0.33 0.51
0.67 0.8 0.9 0.97 1. 0.99 0.94 0.85 0.73 0.59 0.41 0.23
0.03 -0.17 -0.36 -0.54 -0.69 -0.82 -0.92 -0.98 -1. -0.98 -0.93 -0.84
-0.71 -0.56 -0.38 -0.19 0. 0.2 0.39 0.56 0.71 0.84 0.93 0.98
1. 0.98 0.91 0.82 0.69 0.53 0.35 0.16 -0.04 -0.23 -0.42 -0.59
-0.74 -0.86 -0.94 -0.99 -1. -0.97 -0.9 -0.8 -0.66 -0.5 -0.32 -0.13
0.07 0.26 0.45 0.62 0.76 0.87 0.95 0.99 1. 0.96 0.89 0.78
0.64 0.47 0.29 0.1 -0.1 -0.29 -0.48 -0.64 -0.78 -0.89 -0.96 -1.
-0.99 -0.95 -0.87 -0.76 -0.61 -0.45 -0.26 -0.06 0.13 0.33 0.51 0.67
0.8 0.9 0.97 1. 0.99 0.94 0.85 0.74 0.59 0.42 0.23 0.03
-0.17 -0.36 -0.53 -0.69 -0.82 -0.92 -0.98 -1. -0.98 -0.93 -0.84 -0.71
-0.56 -0.39 -0.2 0. 0.2 0.39 0.56 0.71 0.84 0.93 0.98 1.
0.98 0.92 0.82 0.69 0.53 0.36 0.16 -0.03 -0.23 -0.42 -0.59 -0.74
-0.85 -0.94 -0.99 -1. -0.97 -0.9 -0.8 -0.67 -0.5 -0.32 -0.13 0.07
0.26 0.45 0.61 0.76 0.87 0.95 0.99 1. 0.96 0.89 0.78 0.64
0.48 0.29 0.1 -0.1 -0.29 -0.48 -0.64 -0.78 -0.89 -0.96 -1. -0.99
-0.95 -0.87 -0.76 -0.61 -0.45 -0.26 -0.07 0.13 0.32 0.5 0.66 0.8
0.9 0.97 1. 0.99 0.94 0.86 0.74 0.59 0.42 0.23 0.03 -0.16
-0.35 -0.53 -0.69 -0.82 -0.92 -0.98 -1. -0.98 -0.93 -0.84 -0.71 -0.56
-0.39 -0.2 -0. 0.2 0.39 0.56 0.71 0.84 0.93 0.98 1. 0.98
0.92 0.82 0.69 0.53 0.36 0.17 -0.03 -0.23 -0.42 -0.59 -0.73 -0.85
-0.94 -0.99 -1. -0.97 -0.9 -0.8 -0.67 -0.51]
loader[0]=[tensor([84.7234, 50.5992, 31.9499, 72.4228, 30.7595], dtype=torch.float64), tensor([ 0.0994, 0.3276, 0.5090, -0.1655, -0.6103], dtype=torch.float64)]
loader[1]=[tensor([93.4529, 27.9820, 60.5190, 38.2986, 27.5852], dtype=torch.float64), tensor([-0.7138, 0.2882, -0.7371, 0.5642, 0.6359], dtype=torch.float64)]
loader[2]=[tensor([86.9058, 34.9259, 56.5511, 83.5331, 24.2124], dtype=torch.float64), tensor([-0.8718, -0.3601, 0.0024, 0.9608, -0.7958], dtype=torch.float64)]
loader[3]=[tensor([43.8537, 10.7214, 36.1162, 85.7154, 11.9118], dtype=torch.float64), tensor([-0.1282, -0.9627, -0.9999, -0.7786, -0.6088], dtype=torch.float64)]
loader[4]=[tensor([35.7194, 83.3347, 90.0802, 57.1463, 75.2004], dtype=torch.float64), tensor([-0.9176, 0.9966, 0.8552, 0.5627, -0.1965], dtype=torch.float64)]
loader[5]=[tensor([ 3.7776, 36.5130, 52.1864, 57.9399, 58.5351], dtype=torch.float64), tensor([-0.5940, -0.9269, 0.9393, 0.9839, 0.9149], dtype=torch.float64)]
loader[6]=[tensor([19.2525, 78.3747, 87.3026, 83.9299, 13.8958], dtype=torch.float64), tensor([ 0.3921, 0.1643, -0.6147, 0.7790, 0.9710], dtype=torch.float64)]
loader[7]=[tensor([70.4389, 39.6874, 68.6533, 88.6914, 94.6433], dtype=torch.float64), tensor([ 0.9697, 0.9141, -0.4455, 0.6645, 0.3853], dtype=torch.float64)]
loader[8]=[tensor([74.8036, 97.8176, 75.0020, 77.5812, 81.9459], dtype=torch.float64), tensor([-0.5602, -0.4153, -0.3859, 0.8184, 0.2614], dtype=torch.float64)]
loader[9]=[tensor([68.8517, 26.3948, 8.1423, 87.1042, 35.1242], dtype=torch.float64), tensor([-0.2603, 0.9527, 0.9587, -0.7581, -0.5369], dtype=torch.float64)]
loader[10]=[tensor([25.7996, 69.0501, 32.9419, 84.9218, 85.5170], dtype=torch.float64), tensor([ 0.6185, -0.0649, 0.9990, -0.0987, -0.6396], dtype=torch.float64)]
loader[11]=[tensor([42.8617, 54.3687, 33.1403, 35.9178, 40.4810], dtype=torch.float64), tensor([-0.9004, -0.8201, 0.9882, -0.9779, 0.3520], dtype=torch.float64)]
loader[12]=[tensor([66.0741, 78.9699, 89.4850, 28.9739, 38.1002], dtype=torch.float64), tensor([-0.1005, -0.4170, 0.9987, -0.6439, 0.3904], dtype=torch.float64)]
loader[13]=[tensor([16.0782, 54.5671, 36.7114, 74.6052, 2.9840], dtype=torch.float64), tensor([-0.3618, -0.9168, -0.8348, -0.7125, 0.1570], dtype=torch.float64)]
loader[14]=[tensor([92.2625, 3.5792, 14.6894, 47.6232, 89.0882], dtype=torch.float64), tensor([-0.9153, -0.4237, 0.8514, -0.4789, 0.9017], dtype=torch.float64)]
loader[15]=[tensor([90.4770, 66.2725, 11.5150, 11.1182, 64.4870], dtype=torch.float64), tensor([ 0.5885, -0.2947, -0.8681, -0.9925, 0.9964], dtype=torch.float64)]
loader[16]=[tensor([76.7876, 68.0581, 32.1483, 13.4990, 77.1844], dtype=torch.float64), tensor([ 0.9836, -0.8708, 0.6686, 0.8032, 0.9769], dtype=torch.float64)]
loader[17]=[tensor([18.4589, 64.6854, 73.0180, 84.3267, 19.6493], dtype=torch.float64), tensor([-0.3808, 0.9603, -0.6899, 0.4762, 0.7172], dtype=torch.float64)]
loader[18]=[tensor([73.6132, 25.6012, 1.9920, 29.9659, 75.7956], dtype=torch.float64), tensor([-0.9771, 0.4515, 0.9126, -0.9927, 0.3870], dtype=torch.float64)]
loader[19]=[tensor([53.1784, 40.0842, 84.5251, 50.4008, 31.5531], dtype=torch.float64), tensor([0.2267, 0.6864, 0.2936, 0.1349, 0.1367], dtype=torch.float64)]
loader[20]=[tensor([24.6092, 6.1583, 80.9539, 81.7475, 21.8317], dtype=torch.float64), tensor([-0.4999, -0.1245, -0.6650, 0.0660, 0.1588], dtype=torch.float64)]
loader[21]=[tensor([69.8437, 95.6353, 35.3226, 17.0701, 77.3828], dtype=torch.float64), tensor([ 0.6659, 0.9832, -0.6926, -0.9783, 0.9156], dtype=torch.float64)]
loader[22]=[tensor([41.8697, 12.1102, 91.6673, 30.9579, 3.3808], dtype=torch.float64), tensor([-0.8568, -0.4405, -0.5322, -0.4422, -0.2369], dtype=torch.float64)]
loader[23]=[tensor([76.3908, 69.2485, 66.6693, 96.8257, 90.6754], dtype=torch.float64), tensor([ 0.8374, 0.1331, -0.6411, 0.5343, 0.4176], dtype=torch.float64)]
loader[24]=[tensor([67.8597, 34.7275, 20.4429, 29.3707, 71.8277], dtype=torch.float64), tensor([-0.9506, -0.1691, 0.9997, -0.8896, 0.4159], dtype=torch.float64)]
loader[25]=[tensor([98.0160, 99.0080, 13.1022, 68.4549, 26.7916], dtype=torch.float64), tensor([-0.5864, -0.9989, 0.5106, -0.6132, 0.9961], dtype=torch.float64)]
loader[26]=[tensor([61.9078, 30.1643, 81.3507, 54.7655, 73.2164], dtype=torch.float64), tensor([-0.7980, -0.9495, -0.3247, -0.9775, -0.8191], dtype=torch.float64)]
loader[27]=[tensor([98.8096, 23.2204, 92.8577, 46.8297, 53.7735], dtype=torch.float64), tensor([-0.9887, -0.9423, -0.9837, 0.2900, -0.3583], dtype=torch.float64)]
loader[28]=[tensor([74.0100, 56.3527, 17.4669, 37.9018, 4.5711], dtype=torch.float64), tensor([-0.9834, -0.1947, -0.9823, 0.2013, -0.9900], dtype=torch.float64)]
loader[29]=[tensor([61.5110, 58.3367, 48.2184, 12.5070, 13.6974], dtype=torch.float64), tensor([-0.9689, 0.9765, -0.8887, -0.0593, 0.9048], dtype=torch.float64)]
loader[30]=[tensor([40.6794, 90.2786, 22.4269, 54.1703, 10.5230], dtype=torch.float64), tensor([ 0.1606, 0.7363, -0.4220, -0.6913, -0.8904], dtype=torch.float64)]
loader[31]=[tensor([30.5611, 80.5571, 90.8737, 9.5311, 39.0922], dtype=torch.float64), tensor([-0.7544, -0.9020, 0.2304, -0.1061, 0.9842], dtype=torch.float64)]
loader[32]=[tensor([47.0281, 95.0401, 64.2886, 1.5952, 21.6333], dtype=torch.float64), tensor([0.0957, 0.7120, 0.9935, 0.9997, 0.3503], dtype=torch.float64)]
loader[33]=[tensor([ 1.3968, 91.4689, 32.3467, 55.9559, 32.7435], dtype=torch.float64), tensor([ 0.9849, -0.3548, 0.8021, -0.5586, 0.9706], dtype=torch.float64)]
loader[34]=[tensor([20.2445, 45.0441, 65.4790, 5.5631, 44.2505], dtype=torch.float64), tensor([ 0.9846, 0.8732, 0.4746, -0.6594, 0.2650], dtype=torch.float64)]
loader[35]=[tensor([41.2745, 29.7675, 39.2906, 1.1984, 39.4890], dtype=torch.float64), tensor([-0.4204, -0.9970, 0.9998, 0.9315, 0.9761], dtype=torch.float64)]
loader[36]=[tensor([67.2645, 85.1202, 62.8998, 47.8216, 6.7535], dtype=torch.float64), tensor([-0.9611, -0.2929, 0.0679, -0.6425, 0.4532], dtype=torch.float64)]
loader[37]=[tensor([97.4208, 2.3888, 88.8898, 65.0822, 59.3287], dtype=torch.float64), tensor([-0.0315, 0.6837, 0.7987, 0.7779, 0.3538], dtype=torch.float64)]
loader[38]=[tensor([11.7134, 72.0261, 86.3106, 28.3788, 88.0962], dtype=torch.float64), tensor([-0.7532, 0.2285, -0.9965, -0.1042, 0.1312], dtype=torch.float64)]
loader[39]=[tensor([34.3307, 36.3146, 26.5932, 46.4329, 42.2665], dtype=torch.float64), tensor([ 0.2249, -0.9827, 0.9939, 0.6373, -0.9895], dtype=torch.float64)]
loader[40]=[tensor([99.4048, 76.5892, 23.0220, 24.0140, 2.1904], dtype=torch.float64), tensor([-0.9028, 0.9287, -0.8578, -0.8995, 0.8141], dtype=torch.float64)]
loader[41]=[tensor([51.1944, 92.4609, 38.6954, 51.7896, 59.7255], dtype=torch.float64), tensor([ 0.8010, -0.9767, 0.8395, 0.9989, -0.0352], dtype=torch.float64)]
loader[42]=[tensor([75.5972, 49.8056, 83.1363, 12.3086, 1.7936], dtype=torch.float64), tensor([ 0.1977, -0.4438, 0.9933, -0.2549, 0.9753], dtype=torch.float64)]
loader[43]=[tensor([65.2806, 82.3427, 14.0942, 4.9679, 49.0120], dtype=torch.float64), tensor([ 0.6388, 0.6141, 0.9991, -0.9675, -0.9501], dtype=torch.float64)]
loader[44]=[tensor([29.1723, 75.9940, 57.3447, 71.2325, 63.8918], dtype=torch.float64), tensor([-0.7821, 0.5611, 0.7146, 0.8543, 0.8723], dtype=torch.float64)]
loader[45]=[tensor([82.5411, 23.8156, 67.4629, 18.0621, 34.5291], dtype=torch.float64), tensor([ 0.7576, -0.9680, -0.9967, -0.7085, 0.0285], dtype=torch.float64)]
loader[46]=[tensor([ 94.8417, 100.0000, 51.3928, 64.0902, 30.3627], dtype=torch.float64), tensor([ 0.5596, -0.5064, 0.9033, 0.9516, -0.8690], dtype=torch.float64)]
loader[47]=[tensor([45.2425, 66.4709, 80.3587, 75.3988, 22.2285], dtype=torch.float64), tensor([ 9.5215e-01, -4.7723e-01, -9.6938e-01, 5.7391e-04, -2.3509e-01],
dtype=torch.float64)]
loader[48]=[tensor([ 6.3567, 76.9860, 86.7074, 57.7415, 61.1142], dtype=torch.float64), tensor([ 0.0735, 0.9999, -0.9512, 0.9294, -0.9892], dtype=torch.float64)]
loader[49]=[tensor([ 5.1663, 17.8637, 50.2024, 15.4830, 79.3667], dtype=torch.float64), tensor([-0.8987, -0.8337, -0.0630, 0.2231, -0.7358], dtype=torch.float64)]
loader[50]=[tensor([96.4289, 5.9599, 33.3387, 31.3547, 52.3848], dtype=torch.float64), tensor([ 0.8195, -0.3177, 0.9387, -0.0612, 0.8533], dtype=torch.float64)]
loader[51]=[tensor([47.2265, 94.4449, 97.6192, 22.8236, 62.1062], dtype=torch.float64), tensor([-0.1024, 0.1958, -0.2278, -0.7396, -0.6636], dtype=torch.float64)]
loader[52]=[tensor([31.7515, 6.5551, 63.0982, 63.6934, 41.6713], dtype=torch.float64), tensor([ 0.3293, 0.2686, 0.2632, 0.7588, -0.7384], dtype=torch.float64)]
loader[53]=[tensor([ 9.9279, 70.2405, 56.7495, 61.3126, 50.7976], dtype=torch.float64), tensor([-0.4821, 0.9025, 0.1995, -0.9987, 0.5074], dtype=torch.float64)]
loader[54]=[tensor([52.9800, 81.1523, 98.4128, 93.0561, 2.5872], dtype=torch.float64), tensor([ 0.4142, -0.5048, -0.8539, -0.9290, 0.5264], dtype=torch.float64)]
loader[55]=[tensor([60.3206, 72.8196, 19.0541, 79.5651, 91.8657], dtype=torch.float64), tensor([-0.5895, -0.5337, 0.2031, -0.8549, -0.6886], dtype=torch.float64)]
loader[56]=[tensor([ 7.5471, 19.8477, 87.8978, 97.2224, 18.8557], dtype=torch.float64), tensor([ 0.9533, 0.8405, -0.0667, 0.1662, 0.0062], dtype=torch.float64)]
loader[57]=[tensor([26.9900, 25.9980, 27.3868, 67.0661, 73.4148], dtype=torch.float64), tensor([ 0.9593, 0.7613, 0.7755, -0.8879, -0.9161], dtype=torch.float64)]
loader[58]=[tensor([63.2966, 82.1443, 22.0301, 85.3186, 89.6834], dtype=torch.float64), tensor([ 0.4482, 0.4465, -0.0389, -0.4756, 0.9891], dtype=torch.float64)]
loader[59]=[tensor([69.4469, 61.7094, 58.1383, 59.5271, 96.2305], dtype=torch.float64), tensor([ 0.3258, -0.9012, 0.9998, 0.1625, 0.9164], dtype=torch.float64)]
loader[60]=[tensor([95.8337, 64.8838, 40.2826, 50.9960, 77.9780], dtype=torch.float64), tensor([0.9999, 0.8865, 0.5296, 0.6672, 0.5328], dtype=torch.float64)]
loader[61]=[tensor([48.0200, 78.5731, 96.0321, 37.7034, 63.4950], dtype=torch.float64), tensor([-0.7809, -0.0333, 0.9773, 0.0043, 0.6156], dtype=torch.float64)]
loader[62]=[tensor([71.6293, 20.0461, 58.7335, 57.5431, 28.5772], dtype=torch.float64), tensor([ 0.5870, 0.9308, 0.8173, 0.8384, -0.2982], dtype=torch.float64)]
loader[63]=[tensor([86.5090, 46.6313, 88.4930, 7.3487, 98.6112], dtype=torch.float64), tensor([-0.9934, 0.4729, 0.5041, 0.8750, -0.9397], dtype=torch.float64)]
loader[64]=[tensor([14.2926, 62.3046, 8.5391, 44.0521, 23.4188], dtype=torch.float64), tensor([ 0.9879, -0.5032, 0.7744, 0.0698, -0.9898], dtype=torch.float64)]
loader[65]=[tensor([18.6573, 99.6032, 32.5451, 89.2866, 55.5591], dtype=torch.float64), tensor([-0.1911, -0.8003, 0.9041, 0.9692, -0.8358], dtype=torch.float64)]
loader[66]=[tensor([40.8778, 8.3407, 25.0060, 38.4970, 43.2585], dtype=torch.float64), tensor([-0.0370, 0.8839, -0.1264, 0.7159, -0.6622], dtype=torch.float64)]
loader[67]=[tensor([79.1683, 99.8016, 29.5691, 7.9439, 65.8758], dtype=torch.float64), tensor([-0.5879, -0.6664, -0.9622, 0.9960, 0.0975], dtype=torch.float64)]
loader[68]=[tensor([15.6814, 79.9619, 52.5832, 9.7295, 43.0601], dtype=torch.float64), tensor([ 0.0266, -0.9890, 0.7338, -0.3000, -0.7969], dtype=torch.float64)]
loader[69]=[tensor([ 3.1824, 59.1303, 39.8858, 33.5371, 45.6393], dtype=torch.float64), tensor([-0.0408, 0.5312, 0.8163, 0.8523, 0.9963], dtype=torch.float64)]
loader[70]=[tensor([71.4309, 2.7856, 25.4028, 7.1503, 17.6653], dtype=torch.float64), tensor([ 0.7351, 0.3485, 0.2668, 0.7625, -0.9262], dtype=torch.float64)]
loader[71]=[tensor([25.2044, 74.4068, 16.2766, 98.2144, 12.9038], dtype=torch.float64), tensor([ 0.0716, -0.8368, -0.5384, -0.7346, 0.3311], dtype=torch.float64)]
loader[72]=[tensor([78.1764, 16.8717, 58.9319, 78.7715, 67.6613], dtype=torch.float64), tensor([ 0.3555, -0.9183, 0.6878, -0.2297, -0.9932], dtype=torch.float64)]
loader[73]=[tensor([55.7575, 41.0762, 15.2846, 47.4248, 42.6633], dtype=torch.float64), tensor([-0.7112, -0.2333, 0.4109, -0.2964, -0.9685], dtype=torch.float64)]
loader[74]=[tensor([ 4.7695, 93.2545, 94.0481, 21.2365, 48.4168], dtype=torch.float64), tensor([-0.9984, -0.8378, -0.1984, 0.6851, -0.9616], dtype=torch.float64)]
loader[75]=[tensor([69.6453, 60.7174, 13.3006, 70.0421, 93.6513], dtype=torch.float64), tensor([ 0.5058, -0.8558, 0.6700, 0.7999, -0.5617], dtype=torch.float64)]
loader[76]=[tensor([70.6373, 44.6473, 35.5210, 27.1884, 87.5010], dtype=torch.float64), tensor([ 0.9988, 0.6171, -0.8212, 0.8847, -0.4472], dtype=torch.float64)]
loader[77]=[tensor([91.2705, 43.4569, 18.2605, 44.8457, 33.7355], dtype=torch.float64), tensor([-0.1636, -0.5015, -0.5556, 0.7601, 0.7325], dtype=torch.float64)]
loader[78]=[tensor([45.8377, 46.0361, 77.7796, 53.5752, 99.2064], dtype=torch.float64), tensor([ 0.9598, 0.8856, 0.6891, -0.1673, -0.9698], dtype=torch.float64)]
loader[79]=[tensor([ 9.1343, 37.5050, 87.6994, 20.8397, 95.4369], dtype=torch.float64), tensor([ 0.2864, -0.1929, -0.2621, 0.9134, 0.9280], dtype=torch.float64)]
loader[80]=[tensor([ 1.0000, 86.1122, 71.0341, 41.4729, 31.1563], dtype=torch.float64), tensor([ 0.8415, -0.9606, 0.9400, -0.5910, -0.2567], dtype=torch.float64)]
loader[81]=[tensor([50.0040, 55.1623, 21.0381, 27.7836, 66.8677], dtype=torch.float64), tensor([-0.2585, -0.9830, 0.8152, 0.4713, -0.7798], dtype=torch.float64)]
loader[82]=[tensor([84.1283, 89.8818, 56.9479, 62.7014, 49.2104], dtype=torch.float64), tensor([ 0.6402, 0.9406, 0.3887, -0.1301, -0.8699], dtype=torch.float64)]
loader[83]=[tensor([81.5491, 53.9719, 11.3166, 28.1804, 38.8938], dtype=torch.float64), tensor([-0.1319, -0.5353, -0.9489, 0.0938, 0.9301], dtype=torch.float64)]
loader[84]=[tensor([44.4489, 91.0721, 15.0862, 96.6273, 82.7395], dtype=torch.float64), tensor([0.4499, 0.0340, 0.5825, 0.6905, 0.8714], dtype=torch.float64)]
loader[85]=[tensor([ 8.9359, 93.8497, 33.9339, 37.1082, 16.6733], dtype=torch.float64), tensor([ 0.4697, -0.3876, 0.5840, -0.5571, -0.8223], dtype=torch.float64)]
loader[86]=[tensor([52.7816, 59.9238, 4.3727, 54.9639, 60.9158], dtype=torch.float64), tensor([ 0.5855, -0.2315, -0.9429, -0.9999, -0.9410], dtype=torch.float64)]
loader[87]=[tensor([37.3066, 74.2084, 22.6253, 68.2565, 34.1323], dtype=torch.float64), tensor([-0.3825, -0.9283, -0.5925, -0.7569, 0.4126], dtype=torch.float64)]
loader[88]=[tensor([76.1924, 94.2465, 28.7756, 7.7455, 14.8878], dtype=torch.float64), tensor([ 0.7133, -0.0013, -0.4805, 0.9941, 0.7313], dtype=torch.float64)]
loader[89]=[tensor([51.5912, 95.2385, 80.1603, 42.4649, 9.3327], dtype=torch.float64), tensor([ 0.9701, 0.8364, -0.9988, -0.9986, 0.0920], dtype=torch.float64)]
loader[90]=[tensor([19.4509, 36.9098, 4.1743, 92.6593, 24.8076], dtype=torch.float64), tensor([ 0.5658, -0.7099, -0.8587, -0.9998, -0.3194], dtype=torch.float64)]
loader[91]=[tensor([72.6212, 83.7315, 21.4349, 23.6172, 79.7635], dtype=torch.float64), tensor([-0.3566, 0.8873, 0.5280, -0.9985, -0.9404], dtype=torch.float64)]
loader[92]=[tensor([49.4088, 17.2685, 62.5030, 12.7054, 82.9379], dtype=torch.float64), tensor([-0.7557, -0.9999, -0.3230, 0.1386, 0.9510], dtype=torch.float64)]
loader[93]=[tensor([10.1263, 3.9760, 65.6774, 10.9198, 45.4409], dtype=torch.float64), tensor([-0.6453, -0.7409, 0.2918, -0.9971, 0.9937], dtype=torch.float64)]
loader[94]=[tensor([49.6072, 46.2345, 8.7375, 15.8798, 73.8116], dtype=torch.float64), tensor([-0.6117, 0.7767, 0.6345, -0.1710, -0.9999], dtype=torch.float64)]
loader[95]=[tensor([55.3607, 5.3647, 80.7555, 48.6152, 48.8136], dtype=torch.float64), tensor([-0.9276, -0.7947, -0.7992, -0.9968, -0.9929], dtype=torch.float64)]
loader[96]=[tensor([97.0240, 10.3246, 43.6553, 42.0681, 85.9138], dtype=torch.float64), tensor([ 0.3573, -0.7832, -0.3212, -0.9416, -0.8870], dtype=torch.float64)]
loader[97]=[tensor([ 6.9519, 14.4910, 24.4108, 5.7615, 26.1964], dtype=torch.float64), tensor([ 0.6200, 0.9381, -0.6608, -0.4983, 0.8741], dtype=torch.float64)]
loader[98]=[tensor([53.3768, 20.6413, 56.1543, 16.4749, 70.8357], dtype=torch.float64), tensor([ 0.0303, 0.9757, -0.3842, -0.6940, 0.9888], dtype=torch.float64)]
loader[99]=[tensor([51.9880, 60.1222, 92.0641, 72.2244, 88.2946], dtype=torch.float64), tensor([ 0.9885, -0.4187, -0.8180, 0.0322, 0.3240], dtype=torch.float64)]
Process finished with exit code 0