def multi_head_attention(query, key, value, num_units, heads, masked=False):
query = tf.keras.layers.Dense(num_units, activation=tf.nn.relu)(query)
key = tf.keras.layers.Dense(num_units, activation=tf.nn.relu)(key)
value = tf.keras.layers.Dense(num_units, activation=tf.nn.relu)(value)
query = tf.concat(tf.split(query, heads, axis = -1), axis=0)
key = tf.concat(tf.split(key, heads, axis=-1), axis=0)
value = tf.concat(tf.split(value, heads, axis=-1), axis=0)
여기서 layer.dense 부분이 이해가 잘 안갑니다.
예를들어 query = 하는 코드를 보면 query 가 들어가는 거고 num_units개수만큼 나오는 건가요? 그다음에 활성화 함수로 relu를 쓰고?