我正在尝试建立一个RNN来估计两张图像之间的移动。我目前有一个包含5000张灰度图像的数组,这些图像是在摄像头朝向地面移动时拍摄的。我希望使用LSTM建立一个RNN来估计当前图像与前一图像之间的移动。
目前,这些图像(64x64x1)只是按照以下方式排列在一个numpy数组中:
image1image2image3...
我猜我想重新排列数组,使其有两个时间步长:
image1 image2image2 image3image3 image4...
那么,我该如何重塑数组,以便将其用作具有两个时间步长的LSTM的输入呢?
回答:
我用numpy构建了一个小例子。
impot numpy as nplst = np.array(range(10))lstOut[56]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])lst = np.vstack((lst[:-1], lst[1:]))# 得到形状为(2, len(lst)-1)的列表lstOut[60]: array([[0, 1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8, 9]])# 得到形状为(len(lst)-1, 2)的列表lst = lst.TlstOut[61]: array([[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9]])
如果你需要获取“第二个”列表的深拷贝,你可以使用
lst2 = lst[1:].copy()