目标从2开始。从给定的数组我们采取输入和目标是它的下一个元素。由于直到12输入即将形成。我需要将输入重新整形为形状数组(没有批次,2,2,3)其中没有批次是len (文本)//(2 * 2 * 3)所以输入的数量将被输入[:批次中没有* 2 * 2 * 3] 将此[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]转换为
[
# First Batch
[
# Batch of Input
[[ 1 2 3], [ 7 8 9]],
# Batch of targets
[[ 2 3 4], [ 8 9 10]]
],
# Second Batch
[
# Batch of Input
[[ 4 5 6], [10 11 12]],
# Batch of targets
[[ 5 6 7], [11 12 13]]
]
]
目标从2开始。从给定的数组我们采取输入和目标是它的下一个元素。由于直到12输入即将形成。我需要将输入重新整形为形状数组(没有批次,2,2,3)其中没有批次是len (文本)//(2 * 2 * 3)所以输入的数量将被输入[:批次中没有* 2 * 2 * 3]
答案 0 :(得分:0)
你可以使用步幅
from numpy.lib.stride_tricks import as_strided as strided
a = np.arange(1, 16)
a
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
s = a.strides[0]
strided(a, (2, 2, 2, 3), (s * 3, s, s * 6, s))
array([[[[ 1, 2, 3],
[ 7, 8, 9]],
[[ 2, 3, 4],
[ 8, 9, 10]]],
[[[ 4, 5, 6],
[10, 11, 12]],
[[ 5, 6, 7],
[11, 12, 13]]]])