我认为您可以简单地使用numpy 将数组大小调整为您希望将其转换为的维度。然后像往常一样将其传递给tensorflow 计算图。
对于您的情况,您可以使用:
tf_array = caffe_array.reshape([3, 3, 64, 128])
例子:
In [1]: zer = np.array([[[ [1, 2, 2], [3, 4, 4]], [[5, 6, 6],
[7, 8, 8]], [[0, 1, 1], [2, 1, 1] ] ]])
In [2]: zer.shape
Out[2]: (1, 3, 2, 3)
In [3]: zer
Out[3]:
array([[[[1, 2, 2],
[3, 4, 4]],
[[5, 6, 6],
[7, 8, 8]],
[[0, 1, 1],
[2, 1, 1]]]])
In [4]: rez = zer.reshape([3, 2, 3, 1])
In [5]: rez.shape
Out[5]: (3, 2, 3, 1)
In [6]: rez
array([[[[1],
[2],
[2]],
[[3],
[4],
[4]]],
[[[5],
[6],
[6]],
[[7],
[8],
[8]]],
[[[0],
[1],
[1]],
[[2],
[1],
[1]]]])