2017-05-08 153 views

回答

1

没问题,我们仍然可以使用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] 
+0

感谢您的回答。它太聪明了。请问为什么你在第一个地方调整张量?首先我们将[5,50,50,10,256]张量重塑为[5,50,50,10 * 256]张量,并将其重新调整为[5,100,100,10 * 256]后再重塑为[5,100,100 ,10256]所以,我们可以避免额外的转置。 –

+0

Dooh!你是对的。那会更简单! – Wontonimo