单个矩阵的 numpy 版本的 hstackc=np.array([[[2,3,4],[4,5,6]],[[20,30,40],[40,50,60]]])np.hstack(c)输出:array([[ 2, 3, 4, 20, 30, 40], [ 4, 5, 6, 40, 50, 60]])我希望在 TF 中实现相同的行为。c_t=tf.constant(c)tf.stack(c_t,axis=1).eval()我收到错误TypeError: Expected list for 'values' argument to 'pack' Op, not <tf.Tensor 'Const_14:0' shape=(2, 2, 3) dtype=int64>.所以我试过了tf.stack([c_t],axis=1).eval()输出array([[[[ 2, 3, 4], [ 4, 5, 6]]], [[[20, 30, 40], [40, 50, 60]]]])我不是在寻找行为。tf.reshape并tf.concat不能帮助我满意。
3 回答
侃侃尔雅
TA贡献1801条经验 获得超15个赞
如果您想在原子级别以手动方式进行操作,那么下面的方法也可以。
In [132]: c=np.array([[[2,3,4],[4,5,6]],[[20,30,40],[40,50,60]]])
In [133]: tfc = tf.convert_to_tensor(c)
In [134]: slices = [tf.squeeze(tfc[:1, ...]), tf.squeeze(tfc[1:, ...])]
In [135]: stacked = tf.concat(slices, axis=1)
In [136]: stacked.eval()
Out[136]:
array([[ 2, 3, 4, 20, 30, 40],
[ 4, 5, 6, 40, 50, 60]])
添加回答
举报
0/150
提交
取消