2017-02-20 24 views

ответ

8

Я думаю, что будет tf.expand_dims -

tf.expand_dims(a, 1) # Or tf.expand_dims(a, -1) 

В основном, мы перечислим оси ID, где эта новая ось должна быть вставлена ​​и задней осей/тускнеет являются толкающей назад.

Из связанных документации, вот несколько примеров расширяющихся размеров -

# 't' is a tensor of shape [2] 
shape(expand_dims(t, 0)) ==> [1, 2] 
shape(expand_dims(t, 1)) ==> [2, 1] 
shape(expand_dims(t, -1)) ==> [2, 1] 

# 't2' is a tensor of shape [2, 3, 5] 
shape(expand_dims(t2, 0)) ==> [1, 2, 3, 5] 
shape(expand_dims(t2, 2)) ==> [2, 3, 1, 5] 
shape(expand_dims(t2, 3)) ==> [2, 3, 5, 1] 
+0

спасибо. Это сработало – Rahul

2

Соответствующая команда tf.newaxis. Он не имеет отдельной записи в документации tensorflow, но кратко упоминается на странице документа tf.stride_slice.

x = tf.ones((10,10,10)) 
y = x[:,tf.newaxis,...] 
print(y.shape) 
# prints (10, 1, 10, 10) 

Использование tf.expand_dims это тоже хорошо, но, как указано в приведенной выше ссылке,

Эти интерфейсы являются гораздо более дружественным, и настоятельно рекомендуется.

0

Если вы заинтересованы в точности такого же типа (то есть. None), как в NumPy, то tf.newaxis является точной альтернативой np.newaxis.

Пример:

In [71]: a1 = tf.constant([2,2], name="a1") 

In [72]: a1 
Out[72]: <tf.Tensor 'a1_5:0' shape=(2,) dtype=int32> 

# add a new dimension 
In [73]: a1_new = a1[tf.newaxis, :] 

In [74]: a1_new 
Out[74]: <tf.Tensor 'strided_slice_5:0' shape=(1, 2) dtype=int32> 

# add one more dimension 
In [75]: a1_new = a1[tf.newaxis, :, tf.newaxis] 

In [76]: a1_new 
Out[76]: <tf.Tensor 'strided_slice_6:0' shape=(1, 2, 1) dtype=int32> 

Это точно такой же операции, что вы делаете в NumPy. Просто используйте его точно в том же измерении, где вы хотите, чтобы он был увеличен.

 Смежные вопросы

  • Нет связанных вопросов^_^