1.对矩阵中对应位置的元素,做softmax
对于一个向量,softmax函数会对其中每一个元素进行指数运算,然后除以所有元素指数和的结果。当将其应用到多个矩阵的相应位置上时,我们实际上是在对每个位置的一组数(从各个矩阵的同一位置收集而来的)进行softmax运算。
import numpy as np
# 定义矩阵
matrix1 = np.array([[1, 2, 3],[1, 2, 3]])
matrix2 = np.array([[1, 4, 5],[1, 2, 3]])
matrix3 = np.array([[2, 2, 6],[1, 2, 3]])
# 将矩阵堆叠成3D数组
stacked_matrices = np.array([matrix1, matrix2, matrix3])
def softmax(x):"""计算softmax"""e_x = np.exp(x - np.max(x))return e_x / e_x.sum(axis=0)
# 对堆叠的矩阵应用softmax函数
softmax_result = softmax(stacked_matrices)
# 输出结果,为了看清楚结果,我们分行显示
print("Softmax 结果矩阵:")
for i in range(softmax_result.shape[1]):print(softmax_result[:, i])
结果