问题标签 [softmax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2403 浏览

python - 如何在 Tensorflow 中用 Logistic 层替换 Softmax 输出层?

我的工作需要一点帮助。现在,我使用 Softmax 层作为神经网络中分类分数的输出层。但是,我需要在输出层用逻辑层替换 Softmax 层。我有一些属于多个类的输入。Softmax 显示所有类的概率,并将该类分配给最高概率,并且很难确定一个阈值来一次预测多个类。而在逻辑函数的情况下,每个神经元将显示一个介于 (0-1) 之间的数字,在这种情况下我可以决定一个阈值。这是我的代码:

2层网络初始化

我们如何修改这个网络,使每个输出神经元的概率在 (0-1) 之间?

0 投票
1 回答
1201 浏览

python - 行轴的 np.sum 在 Numpy 中不起作用

我写了一个softmax回归函数def softmax_1(x),它本质上是一个m x n矩阵,对矩阵求幂,然后对每一列的指数求和。

将其转换为 DataFrame 我必须转置

所以我想尝试制作一个softmax函数的版本,它接受转置版本并计算softmax函数

然后我得到这个错误:

当我在方法中转置和切换轴时,为什么这不起作用np.sum

0 投票
2 回答
1238 浏览

neural-network - softmax 版本的triplet loss 的梯度计算

我一直在尝试在
Hoffer 和 Ailon, Deep Metric Learning Using Triplet Network , ICLR 2015中描述的 Caffe 中实现 softmax 版本的三元组损失。

我已经尝试过了,但我发现很难计算梯度,因为指数中的 L2 不是平方的。

有人可以在这里帮助我吗?

0 投票
1 回答
5692 浏览

python - NumPy 中的 Softmax 导数接近 0(实现)

我正在尝试为用 Numpy 编写的神经网络实现 softmax 函数。令h为给定信号i的 softmax 值。

softmax 函数

我一直在努力实现 softmax 激活函数的偏导数。

softmax 偏导数

我目前遇到的问题是,随着训练的进行,所有偏导数都接近 0。我用这个出色的答案交叉引用了我的数学,但我的数学似乎没有成功。

signal参数包含发送到激活函数的输入信号,形状为(n_samples, n_features)

以下代码片段是一个完全有效的激活函数,仅作为参考和证明(主要是为了我自己),概念性想法确实有效。

编辑

  • 这个问题直观地存在于简单的单层网络中。softmax(及其导数)应用于最后一层。
0 投票
1 回答
1554 浏览

machine-learning - tensorflow cifar-10 评估示例 softmax 输出

我想查看每个测试图像的概率,所以我像这样修改了代码(cifar10_eval.py)

我像这样运行python代码。

屏幕结果是这样的

标签值似乎不错,但 logits 输出似乎是相同的值!为什么?谁能告诉我原因?

这是新的 cifar10_eval.py 源代码。

0 投票
0 回答
571 浏览

caffe - Caffe 负训练迭代损失

我一直在尝试在 vqa(视觉问答)数据集上运行多模式 cnn。但奇怪的是,训练损失立即变为零,然后变为负数。在对我的数据进行洗牌后,训练损失不会立即变为 0,但仍会立即变为负数。

为了对此进行调试,我将所有层逐一注释为只有基本的 imagenet 层,(所以基本上在 vqa 上进行微调)但仍然如下所示。

我还运行了 flickr_style_finetune 模型来查看 softmax 层是否正确,但它在那里工作正常。请帮助我理解这个问题并正确训练 cnn。这是我的train_val.prototxt文件。

0 投票
3 回答
3613 浏览

python - 在 Python 中,使用 numpy 按列计算数组的 softmax

https://classroom.udacity.com/courses/ud730/lessons/6370362152/concepts/63815621490923之后,我正在尝试编写一个“softmax”函数,当给定一个二维数组作为输入时,计算softmax每一列。我编写了以下脚本来测试它:

然而,结果“s”原来是一个零数组:

如果我在 for 循环中删除“/S”,则“未标准化”结果与我预期的一样;不知何故,“/S”除法似乎使所有元素都为零,而不是像我期望的那样将每个元素除以 S。代码有什么问题?

0 投票
2 回答
3814 浏览

tensorflow - 全卷积网络的每像素 softmax

我正在尝试实现类似完全卷积网络的东西,其中最后一个卷积层使用过滤器大小 1x1 并输出“分数”张量。分数张量的形状为 [Batch, height, width, num_classes]。

我的问题是,tensorflow 中的什么函数可以对每个像素应用 softmax 操作,而与其他像素无关。tf.nn.softmax 操作似乎不是为了这个目的。

如果没有这样的操作可用,我想我必须自己写一个。

谢谢!

更新:如果我必须自己实现,我想我可能需要将输入张量重塑为 [N, num_claees] 其中 N = Batch x width x height,并应用 tf.nn.softmax,然后将其重新整形。是否有意义?

0 投票
1 回答
505 浏览

python - 如何在 softmax 层之后将 Tensorflow CNN 读出为整数?

我的任务是按像素对图像进行分类......所以图像的每个像素都有一个类别,CNN 应该能够读出标签图像,使得每个像素都具有类别的离散值(0-19)。

我有一个 CNN,它似乎在再现相对值方面做得很好,因此它近似于标签图像,范围为 0.00001 和 0.00002……但是,我无法让交叉熵工作超出“有点好”,因为它依赖于具有离散值的图像标签矩阵:

另外,我认为我不能依赖 onehot 向量,因为我会查看 19*227*227 矩阵……但如果这里没有解决方案,我可能会尝试这样做。


无论如何,如何对 softmax 中的返回值进行整数装箱?我必须为图像中的每个像素做 1hot 矢量,还是可以通过其他方式将 softmax 分布更改为整数类?

0 投票
2 回答
1673 浏览

python - 不同的Sigmoid方程及其实现

在回顾神经网络中使用的 Sigmoid 函数时,我们从https://en.wikipedia.org/wiki/Softmax_function#Softmax_Normalization找到了这个等式:

在此处输入图像描述

不同于标准的 sigmoid 方程:

在此处输入图像描述

上面的第一个方程以某种方式涉及平均值和标准偏差(我希望我没有读错符号),而第二个方程概括了负均值并除以标准偏差作为常数,因为它在向量中的所有项中都是相同的/矩阵/张量。

因此,在实施方程式时,我得到了不同的结果。

使用第二个方程(标准 sigmoid 函数):

我得到这些输出:

我本来希望第一个函数是相似的,但是第一个和第二个元素之间的差距扩大了很多(尽管元素的排名仍然存在:

[出去]:

可能与第一个方程包含某种 softmax 归一化这一事实有关,但如果它是通用的 softmax,那么元素需要求和为一个:

[出去]:

但是第一个方程的输出总和不等于一个,并且它与标准 sigmoid 方程不相似/相同。所以问题是:

  • 我是否错误地实现了方程 1 的函数?
  • 维基百科页面上的等式 1 是否错误?还是它指的是其他东西,而不是真正的 sigmoid/logistic 函数?
  • 为什么第一个方程和第二个方程有区别?