gpt4 book ai didi

python - 如何批量拆分numpy数组?

转载 作者:行者123 更新时间:2023-12-05 01:01:17 25 4
gpt4 key购买 nike

听起来很容易,不是我不知道该怎么做。

我有numpy的2d数组

X = (1783,30)

我想将它们分成64个批次。我编写这样的代码。
batches = abs(len(X) / BATCH_SIZE ) + 1  // It gives 28

我正在尝试对结果进行批处理预测。所以我用零填充批次,并用预测结果覆盖它们。
predicted = []

for b in xrange(batches):

data4D = np.zeros([BATCH_SIZE,1,96,96]) #create 4D array, first value is batch_size, last number of inputs
data4DL = np.zeros([BATCH_SIZE,1,1,1]) # need to create 4D array as output, first value is batch_size, last number of outputs
data4D[0:BATCH_SIZE,:] = X[b*BATCH_SIZE:b*BATCH_SIZE+BATCH_SIZE,:] # fill value of input xtrain

#predict
#print [(k, v[0].data.shape) for k, v in net.params.items()]
net.set_input_arrays(data4D.astype(np.float32),data4DL.astype(np.float32))
pred = net.forward()
print 'batch ', b
predicted.append(pred['ip1'])

print 'Total in Batches ', data4D.shape, batches
print 'Final Output: ', predicted

但在最后一批28中,只有55个元素,而不是64个(元素总数1783),它给出了
ValueError: could not broadcast input array from shape (55,1,96,96) into shape (64,1,96,96)
解决此问题的方法是什么?

PS:网络预测程序需要准确的批处理大小为64才能进行预测。

最佳答案

我也不太了解您的问题,尤其是X的外观。
如果要创建数组大小相等的子组,请尝试以下操作:

def group_list(l, group_size):
"""
:param l: list
:param group_size: size of each group
:return: Yields successive group-sized lists from l.
"""
for i in xrange(0, len(l), group_size):
yield l[i:i+group_size]

关于python - 如何批量拆分numpy数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28507052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com