小编Ngh*_*ran的帖子

CS231n:如何计算Softmax损失函数的梯度?

我正在观看Stanford CS231的一些视频:用于视觉识别的卷积神经网络,但不太了解如何使用软件丢失函数计算分析梯度numpy.

这个stackexchange答案,softmax梯度计算如下:

在此输入图像描述

上面的Python实现是:

num_classes = W.shape[0]
num_train = X.shape[1]
for i in range(num_train):
  for j in range(num_classes):
    p = np.exp(f_i[j])/sum_i
    dW[j, :] += (p-(j == y[i])) * X[:, i]
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释上面的代码片段是如何工作的?softmax的详细实现也包括在下面.

def softmax_loss_naive(W, X, y, reg):
  """
  Softmax loss function, naive implementation (with loops)
  Inputs:
  - W: C x D array of weights
  - X: D x N array of data. Data are D-dimensional columns
  - y: 1-dimensional array of length N with labels 0...K-1, for …
Run Code Online (Sandbox Code Playgroud)

python numpy softmax

22
推荐指数
3
解决办法
2万
查看次数

标签 统计

numpy ×1

python ×1

softmax ×1