0
我使用3D卷积我的网络。在我的网络节点中,我需要将图像从[5,50,50,10,256]调整为[5,100,100,10,256]。我只想调整图像的轴1和轴2的大小。调整3D图像与5D张量tensorflow
我试图用tf.image.resize_images,但现在看来,这只是工作的3D or4D张量。
任何建议我可以做什么?
我使用3D卷积我的网络。在我的网络节点中,我需要将图像从[5,50,50,10,256]调整为[5,100,100,10,256]。我只想调整图像的轴1和轴2的大小。调整3D图像与5D张量tensorflow
我试图用tf.image.resize_images,但现在看来,这只是工作的3D or4D张量。
任何建议我可以做什么?
没问题,我们仍然可以使用tf.image.resize_images。我们需要做的是发送数据到tf.image.resize_images它需要的形状是张量(4D)。
# First reorder your dimensions to place them where tf.image.resize_images needs them
transposed = tf.transpose(yourData, [0,3,1,2,4])
# it is now [5,10,50,50,256]
# but we need it to be 4 dimensions, not 5
reshaped = tf.reshape(transposed, [5*10,50,50,256])
# and finally we use tf.image.resize_images
new_size = tf.constant([ 100 , 100 ])
resized = tf.image.resize_images(reshaped , new_size)
# your data is now [5*10,100,100,256]
undo_reshape = tf.reshape(resized, [5,10,100,100,256])
# it is now [5,10,100,100,256] so lastly we need to reorder it
undo_transpose = tf.transpose(undo_reshape, [0,2,3,1,4])
# your output is now [5,100,100,10,256]
感谢您的回答。它太聪明了。请问为什么你在第一个地方调整张量?首先我们将[5,50,50,10,256]张量重塑为[5,50,50,10 * 256]张量,并将其重新调整为[5,100,100,10 * 256]后再重塑为[5,100,100 ,10256]所以,我们可以避免额外的转置。 –
Dooh!你是对的。那会更简单! – Wontonimo