Python Tensorflow将训练数据拆分为批

Python Tensorflow将训练数据拆分为批,python,machine-learning,tensorflow,deep-learning,Python,Machine Learning,Tensorflow,Deep Learning,我有一个作为Numpy数组的图像数据集。(图像数量、长度、宽度、颜色范围)我想将其分为多个批次,并提供给tensorflow。最好的方法是什么?首先,您可以使用将图像分为批(sub-ndarray)。然后您可以使用带有feed_dict参数的函数将它们馈送到tf.Session 我还强烈建议您查看TF,我使用如下内容: for bid in range(int(len(array)/batch_size)): batch = array[bid*batch_size:(bid+1)*ba

我有一个作为Numpy数组的图像数据集。(图像数量、长度、宽度、颜色范围)我想将其分为多个批次,并提供给tensorflow。最好的方法是什么?

首先,您可以使用将图像分为批(sub-ndarray)。然后您可以使用带有
feed_dict
参数的函数将它们馈送到
tf.Session


我还强烈建议您查看TF,我使用如下内容:

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

Thomas Pinetz的回答有一个小错误,我还不能发表评论,所以这里有一个额外的答案

int(len(array)/batch\u 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]

若您已经创建了数据集,则可以使用
batch()
来创建数据批

>>>dataset = tf.data.Dataset.range(8)
>>>dataset = dataset.batch(3)
>>>list(dataset.as_numpy_iterator())

[array([0, 1, 2]), array([3, 4, 5]), array([6, 7])]
您可以在about
batch()