返回介绍

1 Softmax (10 分)

发布于 2025-02-18 23:44:03 字数 2079 浏览 0 评论 0 收藏 0

(part a) (5 分)
证明针对任何输入向量和常数 c,softmax 函数的输出不会随着输入向量偏移(也就是常数 c)而改变。即:

其中就是给每一个元素加上常数 c。注意:

提示:在实际应用中,经常会用到这个性质。为了稳定地计算 softmax 概率,我们会选择。(即将的每个元素减去最大的那个元素)。

博主:熬过了高中,居然又看见证明了,也是惊(ri) 喜(le) 万(gou) 分(le),答案拿来!!!

解答:

证明,针对所有维度

(part b) (5 分)
已知一个 N 行 d 列的输入矩阵,计算每一行的 softmax 概率。在 q1_softmax.py 中写出你的实现过程,并使用 Python q1_softmax.py 执行。

要求:你所写的代码应该尽可能的有效并以向量化的形式来实现。非向量化的实现将不会得到满分。

博主:简直要哭晕在厕所了,当年毕业设计也是加论文一星期都可以写完的节奏,这里一个 5 分的作业,还这么多要求…社会主义好…答案拿来!!!

import numpy as np

def softmax(x):
    """
        Softmax 函数
    """
    assert len(x.shape) > 1, "Softmax 的得分向量要求维度高于 1"
    x -= np.max(x, axis=1, keepdims=True)
    x = np.exp(x) / np.sum(np.exp(x), axis=1, keepdims=True)

    return x

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文