莫煩學習筆記4 批訓練

2021-10-25 13:49:25 字數 1757 閱讀 8726

批訓練就是把你的資料分批訓練,像之前回歸的時候100個點可以分成兩批訓練,可以是50,50,也可以是80,20。分批有啥好處呢?我想到的就是可以用多執行緒平行計算。

莫煩這篇部落格就是說在torch.utils.data這個庫裡面(暫且稱這個庫為data)有乙個函式,也就是data.dataloader(),這個函式可以幫你實現批訓練。它包括下面幾個引數:dataset資料集,batch_size每批數量,shuffle是否打亂(一般是true),num_workers執行緒數。其中,dataset要先用data.tensordataset(,)變成dataset物件。然後用倆迴圈(乙個epoch乙個dataloader),就能實現分epoch再分批訓練

把教程裡的argument也就是data_tensor和target_tensor去了就好了

好像是因為有關執行緒的得寫。。if __name__ == '__main__':這個東西。。?講真的不太懂..先記住了。加上那個開頭就ok了,下面是**:

import torch

import torch.utils.data as data

if __name__ == '__main__':

x = torch.linspace(1, 10, 10)

y = torch.linspace(10, 1, 10)

batch_size = 5

torch_dataset = data.tensordataset(x, y)

loader = data.dataloader(

dataset=torch_dataset,

batch_size=batch_size,

shuffle=true,

num_workers=2

)a=1

for epoch in range(3):

for (step, (data, target)) in enumerate(loader):

print(

'epoch:', epoch, 'step:', step,

'\n\tbatch_x:', data.numpy(), 'batch_y:', target.numpy()

)

輸出也就是:

1 epoch: 0 step: 0 

batch_x: [8. 4. 2. 3. 5.] batch_y: [3. 7. 9. 8. 6.]

1 epoch: 0 step: 1

batch_x: [ 7. 1. 9. 6. 10.] batch_y: [ 4. 10. 2. 5. 1.]

1 epoch: 1 step: 0

batch_x: [ 2. 1. 10. 6. 4.] batch_y: [ 9. 10. 1. 5. 7.]

1 epoch: 1 step: 1

batch_x: [5. 8. 7. 9. 3.] batch_y: [6. 3. 4. 2. 8.]

1 epoch: 2 step: 0

batch_x: [4. 9. 5. 6. 1.] batch_y: [ 7. 2. 6. 5. 10.]

1 epoch: 2 step: 1

batch_x: [ 7. 10. 2. 3. 8.] batch_y: [4. 1. 9. 8. 3.]

莫煩pytorch批訓練

import torch import torch.utils.data as data 包裝資料類 tensordataset 包裝資料和目標張量的資料集,通過沿著第乙個維度索引兩個張量來 class torch.utils.data.tensordataset data tensor,targe...

莫煩pytorch學習筆記

此處x,y為資料集的tensor torch dataset data.tensordataset data tensor x,target tensor y loader data.dataloader dataset torch dataset,batch size batch size,shu...

莫煩機器學習筆記 二

一 建立乙個簡單的神經網路 import tensorflow as tf import numpy as np 定義乙個新增層的函式 def add layer inputs,in size,out size,activation function none 要新增的功能 none時為線性函式 w...