2026a
# softmaxLayer
Softmax 激活层
函数库: TyDeepLearning
# 语法
layer = softmaxLayer(axis = -1)
# 说明
layer = softmaxLayer(axis = -1) 创建一个 sigmoid 激活函数层。示例
softmaxLayer 函数,它是二分类函数 sigmoidLayer 在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。
对输入数据在轴 axis 上的元素计算其指数函数值,然后归一化到 [0, 1] 范围,总和为 1。
softmaxLayer定义为:
其中, axis 上的第 i 个元素。
# 示例
创建softmax激活函数层
创建一个 softmax 激活函数层。 创建一个数组,使用该层处理数组并输出结果,检验结果各维度加和是否为 1。
using TyDeepLearning
set_backend(:mindspore)
layer = softmaxLayer()
array = convert(Array{Float16}, [-1, -2, 0, 2, 1])
println(TyDeepLearning.predict(layer, array))
print(sum(TyDeepLearning.predict(layer, array)))
Float32[0.03168492, 0.011656229, 0.08612854, 0.6364086, 0.23412168]
1.0
随机生成一个维度为(1,1,28,28)的数组。
input = rand(Float32, (1, 1, 28, 28))
创建一个包含softmax激活函数层的神经网络。 使用该神经网络处理数组并输出结果维度。
layers = SequentialCell([
convolution2dLayer(1, 20, 5),
reluLayer(),
maxPooling2dLayer(2; Stride = 2),
flattenLayer(),
fullyConnectedLayer(20 * 14 * 14, 10),
softmaxLayer()
])
print(size(TyDeepLearning.predict(layers, input)))
(1, 10)
# 输入参数
axis-轴标量
指定 sigmoidLayer 运算的轴 axis,假设输入 x 的维度为 x.ndim,则 axis 的范围为 [-x.ndim, x.ndim) ,-1 表示最后一个维度。默认值:-1。CPU环境下,axis 只支持 Int 类型。
数据类型: Int64
# 输出参数
layer-Softmax激活层网络对象
输出为一个 Softmax 激活层
# 另请参阅
SequentialCell | convolution2dLayer | reluLayer | maxPooling2dLayer | flattenLayer | fullyConnectedLayer | predict