使用tensorflow将3D矩阵重塑为2D矩阵

reshaping 3D matrix into 2D matrix using tensorflow

我有一个 3D 矩阵,549x19x50 我需要创建一个 2D 矩阵,它会得到一个 549x950 矩阵。

到目前为止我所做的是使用tensorflow;

#data_3d is the 3D matrix
data_2d = tf.reshape(data_3d,[549,-1])

这会在提示中打印出 data_3d 的所有值,当我尝试访问 data_2d 时,它会给我一个 NameError

data_3d 是列表列表的列表。不是张量或 ndarray。如果我们不能对列表执行此操作,是否有任何方法可以轻松地将列表转换为 ndarrays?

提前致谢,

Bhashithe

有一种简单的方法可以使用 numpy:

import numpy as np

data_3d = np.arange(27).reshape((3,3,3))
data_2d = data_3d.swapaxes(1,2).reshape(3,-1)

输出:

data_2d

[[ 0 3 6 1 4 7 2 5 8]
[9 12 15 10 13 16 11 14 17]
[18 21 24 19 22 25 20 23 26]]

print data_3d

[[[ 0 1 2]
[ 3 4 5]
[6 7 8]]

[[ 9 10 11]
[12 13 14]
[15 16 17]]

[[18 19 20]
[21 22 23]
[24 25 26]]]

注意swapaxes(1,2) 是这里的主要内容 - 您需要定义要交换的轴。