¿Cómo funciona tensorflow.pad?

Hay un ejemplo de tensorflow.pad ():

# 't' = is [[1, 2, 3], [4, 5, 6]]. # 'paddings' is [[1, 1,], [2, 2]]. # rank of 't' is 2. ' tf.pad(t, paddings, "CONSTANT")' ==> [[0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 2, 3, 0, 0], [0, 0, 4, 5, 6, 0, 0], [0, 0, 0, 0, 0, 0, 0]] 

mi pregunta es cómo rellenar ceros en cada dimensión de entrada? Y la forma de t es [2,3], ¿por qué la salida después de pad () es [4, x], cómo viene el ‘4’? ¡¡¡Gracias por ayudarme!!!

La documentación es bastante clara sobre esto. Para cada dimensión D de entrada, los rellenos [D, 0] indican cuántos valores agregar antes del contenido del tensor en esa dimensión, y los rellenos [D, 1] indican cuántos valores agregar después del contenido del tensor en esa dimensión.

¿Por qué poner fuera es [4, x]?

4 es el tamaño de la dimensión 0, la dimensión 0 tiene relleno [1, 1] , que según los documentos agrega uno antes de la dimensión cero de t y uno después, el tamaño de la dimensión cero de t es 2, 2 + 1 + 1 , tienes 4 en el resultado. es decir, rellenó una fila de cero al principio y al final de t respectivamente. De manera similar para la dimensión 1, dado que el relleno [1] es [2,2] , se agregan dos columnas cero a t al principio y al final respectivamente.

‘rellenos’ es [[1, 1,], [2, 2]]. Intente mapear este valle como [[arriba, abajo], [izquierda, derecha]]. es decir

 top = 1, //Extra padding introduce on top bottom = 1, //Extra padding introduce on bottom left = 2, //Extra padding introduce on left right = 2. //Extra padding introduce on right 

Pruebe con otro ejemplo donde ‘relleno’ es [[2, 1], [2, 3]]. La salida será:

 [[0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0] [0 0 1 2 3 0 0 0] [0 0 4 5 6 0 0 0] [0 0 0 0 0 0 0 0]] 

Aquí arriba = 2, abajo = 1, izquierda = 2, derecha = 3.