Detaillierte Erklärung von concatenate () in Keras

Ich habe mir kürzlich die Modalfusion angesehen und die Funktion concatenate () in Keras verwendet. Ich habe vorher nicht verstanden, was der Achsenparameter bedeutet. Nach einigen Recherchen habe ich es endlich herausgefunden.

Schauen Sie sich zuerst den Code an

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))
    

Schauen Sie sich den Ausgabeeffekt an:

Fügen Sie hier eine Bildbeschreibung ein



Achse = n bedeutet Spleißen aus der n-ten Dimension. Für eine dreidimensionale Matrix kann der Wert der Achse [-3, -2, -1, 0, 1, 2] sein.
Achse = -2, was bedeutet, dass von der vorletzten Dimension gespleißt wird. Für eine dreidimensionale Matrix entspricht dies Achse = 1.
Achse = -1, was bedeutet, dass aus der vorletzten Dimension gespleißt wird. Für eine dreidimensionale Matrix entspricht dies Achse = 2.

Verstehe einfach:

Es mag komplizierter sein, das Bild zu verstehen, aber wenn es aus mathematischer Sicht sehr einfach ist, wie im obigen Beispiel

Zwei (2,2,2) (2,2,2) Arrays werden zusammengeführt.

  • Die Fusion der ersten Dimension ist (4,2,2), dh Achse = 0
  • Die Fusion der zweiten Dimension ist (2,4,2), dh Achse = 1
  • Die Fusion der dritten Dimension ist (2,2,4), dh Achse = 2

Verweise

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

Ich denke du magst

Origin blog.csdn.net/zhaozhao236/article/details/109434254
Empfohlen
Rangfolge