2017-03-05 238 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]