你好,我是一个张量的新手,目前,我正在使用彩色图像,它是PCAS。如何将我的三维张量组合成张量流中的单张张量?
我已经提取了“红色”,“绿色”和“蓝色”形式的PCAS,并计算了与“红色”,“绿色”和“蓝色”组件相关的权重。
做完所有上述的东西后,我想把所有三个二维矩阵合并成一个三维矩阵。
对于张量流,它将是一个3D张量。
def multi(h0,ppca,mu,i,scope=None):
with tf.variable_scope(scope or"multi"):
return tf.matmul(ppca[:,:,0],h0[i,:,:,0]) + tf.reshape(mu[:,0],[4096,1]) , tf.matmul(ppca[:,:,1],h0[i,:,:,1]) + tf.reshape(mu[:,1],[4096,1]) ,tf.matmul(ppca[:,:,2],h0[i,:,:,2]) + tf.reshape(mu[:,2],[4096,1])
所以从上面的功能,我会得到所有三个不同的2D张量,并希望那些2D张量相结合,具有尺寸[4096,1,3]
单机3D张量我该怎么做? 任何帮助是高度赞赏。
谢谢Dotan先生,但请在答案中做一个小修改。对于较新版本的tensorflow 1.0 –
它是three_d_image = tf.concat([[r],[g],[b]],0)实际上,对于要求的内容,您不会在维度0上连接,因为它会输出一个张量形状[3,4096,1],并且使用这样的concat是不合适的。我宁愿做three_d_image = tf.stack([r,g,b],2) –
对,你能告诉我tf.stack([r,g,b],2),tf.stack([ r,g,b],3)和tf.stack([r,g,b],1) –