python表示softmax函数

本文介绍了一个使用Python和NumPy实现的Softmax函数。该函数首先通过指数函数转换输入向量中的每个元素,然后将所有元素归一化为概率分布,确保了输出向量中各元素之和等于1。这一过程在神经网络的输出层中非常关键,用于将原始分数转化为概率预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import numpy as np


def softmax(v : [int]):
    l1 = list(map(lambda x: np.exp(x), v))
    return list(map(lambda x: x / sum(l1), l1))

 

### 绘制 Softmax 函数曲线 为了绘制 Softmax 函数的曲线,可以采用 Python 中 `numpy` 和 `matplotlib` 库来完成此任务。Softmax 函数通常用于多分类问题中的概率分布转换,在给定一组输入值的情况下,将其映射至 (0, 1) 范围内的概率值。 定义 Softmax 函数如下: ```python def softmax(x): e_x = np.exp(x - np.max(x)) # 防止数值溢出 return e_x / e_x.sum(axis=0) ``` 创建一系列测试数据点并应用上述函数计算对应的输出值[^1]。 ```python import numpy as np import matplotlib.pyplot as plt def softmax(x): e_x = np.exp(x - np.max(x)) return e_x / e_x.sum() x = np.linspace(-10, 10, 200) # 将一维数组扩展成二维矩阵形式以适应softmax处理多个样本的情况 X_matrix = x.reshape((-1, 1)) Y_matrix = softmax(X_matrix).reshape((len(x), )) plt.figure(figsize=(8, 6)) plt.plot(x, Y_matrix, label='Softmax') plt.title('Softmax Function Curve') plt.xlabel('Input Value') plt.ylabel('Output Probability') plt.legend() plt.grid(True) plt.show() ``` 注意这里对原始代码进行了调整,因为直接将一维数组传递给 Softmax 可能会导致形状不匹配的问题;通过重塑 X 数组为列向量解决了这个问题,并最终展平结果以便于绘图操作。 对于遇到的方法数组越界错误,可能是由于尝试访问超出范围的数据索引所引起的。确保所有的索引都在合法范围内是非常重要的。另外一种可能性是在执行某些特定运算时产生的维度不兼容情况,这可以通过仔细检查每一处涉及张量/数组的操作加以解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值