Explicación detallada de concatenar () en keras

Recientemente miré la fusión modal y usé la función concatenar () en keras. Antes no entendía lo que significaba el parámetro del eje . Después de investigar un poco, finalmente lo descubrí.

Mira el código primero

import numpy as np
import keras.backend as K
import tensorflow as tf

a = K.variable(np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]))
b = K.variable(np.array([[[9, 10], [11, 12]], [[13, 14], [15, 16]]]))

c1 = K.concatenate([a, b], axis=0)
c2 = K.concatenate([a, b], axis=1)
c3 = K.concatenate([a, b], axis=2)
#试试默认的参数,其实就是从倒数第一个维度进行融合的。
c4 = K.concatenate([a, b])
c5 = K.concatenate([a, b],axis=-1)

init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    print('***************')
    print(a.shape,b.shape)
    print('***************')
    print('*****C1******',c1.shape)
    print(sess.run(c1))
    print()
    print('*****C2******',c2.shape)
    print(sess.run(c2))
    print()
    print('*****C3******',c3.shape)
    print(sess.run(c3))
    print()
    print('*****C4******',c4.shape)
    print(sess.run(c4))
    print('*****C5******',c5.shape)
    print(sess.run(c5))
    

Mira el efecto de salida:

Inserte la descripción de la imagen aquí



axis = n significa empalme desde la dimensión n. Para una matriz tridimensional, el valor del eje puede ser [-3, -2, -1, 0, 1, 2].
eje = -2, lo que significa empalmar desde la penúltima dimensión. Para una matriz tridimensional, esto equivale a eje = 1.
eje = -1, lo que significa empalmar desde la penúltima dimensión. Para una matriz tridimensional, esto equivale a eje = 2.

Simplemente entienda:

Puede ser más complicado de entender a partir de la imagen, pero si es muy simple desde un punto de vista matemático, como el ejemplo anterior

Se fusionan dos (2,2,2) (2,2,2) matrices,

  • La fusión de la primera dimensión es (4,2,2), es decir, eje = 0
  • La fusión de la segunda dimensión es (2,4,2), es decir, eje = 1
  • La fusión de la tercera dimensión es (2,2,4), es decir, eje = 2

referencias

[1] https://blog.csdn.net/leviopku/article/details/82380710
[2] https://zhuanlan.zhihu.com/p/58672698

Supongo que te gusta

Origin blog.csdn.net/zhaozhao236/article/details/109434254
Recomendado
Clasificación