cs231n assignment1 关于svm_loss_vectorized中代码的梯度部分

个人觉得svm和softmax的梯度部分是这份作业的难点,参考了一些代码觉得还是难以理解,网上似乎也没有相关的解释,所以想把自己的想法贴出来,提供一个参考。


        首先贴上参考的代码:

    def svm_loss_vectorized(W, X, y, reg):  
      """ 
      Structured SVM loss function, vectorized implementation. 
     
      Inputs and outputs are the same as svm_loss_naive. 
      """  
      loss = 0.0  
      num_train= X.shape[0]  
      dW = np.zeros(W.shape) # initialize the gradient as zero  
      scores = np.dot(X,W)  
      correct_class_scores = scores[np.arange(num_train),y]  
      correct_class_scores = np.reshape(correct_class_scores,(num_train,-1))  
      margin = scores-correct_class_scores+1.0  
      margin[np.arange(num_train),y]=0.0  
      margin[margin<=0]=0.0                   # ** #  
      loss += np.sum(margi
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值