使用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)
是这里的主要内容 - 您需要定义要交换的轴。
我有一个 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)
是这里的主要内容 - 您需要定义要交换的轴。