2017-03-05 242 views
1

我有一個圖像作爲一個Numpy數組的數據集。 (圖像的數量,長度,寬度,顏色範圍)我想將其拆分成批量並饋送到張量流。有什麼好辦法做到這一點?Tensorflow分批培訓數據批量

回答

2

首先,您可以使用numpy.split將圖像分成批次(sub-ndarrays)。然後,您可以使用run函數和feed_dict參數將它們送入tf.Session

我也強烈建議看TF MNIST tutorial

1

我用的是這樣的:

for bid in range(int(len(array)/batch_size)): 
    batch = array[bid*batch_size:(bid+1)*batch_size] 
0

有一個在托馬斯Pinetz回答一個小錯誤,我不能作出評論,所以這裏有一個額外的答案。 int(len(array)/ batch_size)將四捨五入到最接近的整數,所以最後一批將不會被處理。圍捕師可以使用

ceil_int = -(-a//b) 

此外,你可能最終與比其餘的最後一批是非常微小的。您可以稍微修改批量,以減少這種情況的發生。完整的代碼如下所示:

def ceil(a,b): 
    return -(-a//b) 

n_samples = len(array) 
better_batch_size = ceil(n_samples, ceil(n_samples, batch_size)) 

for i in range(ceil(n_samples, better_batch_size)): 
    batch = array[i * better_batch_size: (i+1) * better_batch_size]