小编Nik*_*rma的帖子

矢量化SVM梯度

我正在浏览SVM损失和衍生的代码,我确实理解了损失,但我无法理解如何以矢量化方式计算梯度

def svm_loss_vectorized(W, X, y, reg):

loss = 0.0
dW = np.zeros(W.shape) # initialize the gradient as zero
num_train = X.shape[0]

scores = X.dot(W)
yi_scores = scores[np.arange(scores.shape[0]),y] 
margins = np.maximum(0, scores - np.matrix(yi_scores).T + 1)
margins[np.arange(num_train),y] = 0
loss = np.mean(np.sum(margins, axis=1))
loss += 0.5 * reg * np.sum(W * W)
Run Code Online (Sandbox Code Playgroud)

到目前为止理解了,在这之后我无法理解为什么我们在二进制矩阵中逐行求和并用它的总和减去

binary = margins
binary[margins > 0] = 1
row_sum = np.sum(binary, axis=1)
binary[np.arange(num_train), y] = -row_sum.T
dW = np.dot(X.T, binary)

# Average
dW /= num_train

# Regularize
dW …
Run Code Online (Sandbox Code Playgroud)

python numpy svm

6
推荐指数
1
解决办法
846
查看次数

在FrameLayout上替换导航栏中的ViewPager片段时滞后?

我使用https://github.com/mikepenz/MaterialDrawer作为Drawer的库,我使用https://github.com/florent37/MaterialViewPager进行View Pager.

我面临的问题是,当我点击抽屉中的列表项并关闭drwawer时,我会面临一些滞后(一种口吃迟滞),之后片段被替换掉.我在一个片段中面对这个,这是一个ViewPager over片段.

看到图像

   Activity(which has NavBar):

public class mvpAct extends AppCompatActivity {
private RelativeLayout mRelativeLayout;
public static List<Model_Slots> list;
private Drawer result;
private static GetDetails gd;
public static List<Model_Daywise> todayslist_m;
public static List<Model_Daywise> todayslist_t;
public static List<Model_Daywise> todayslist_w;
public static List<Model_Daywise> todayslist_th;
public static List<Model_Daywise> todayslist_fr;
public static List<detailattlist_subcode> detail_att_all = new ArrayList<>();
public static HashMap<String, List<DetailAtten>> hash = new HashMap<>();
public static List<AttendBrief> attendBriefs = null;
public static List<Marks_Model> marks_det;
public static List<PBL_Model> lpbl; …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager materialdrawer

5
推荐指数
1
解决办法
1283
查看次数

C++ char算术溢出

#include <stdio.h>

int main()
{
    char a = 30;
    char b = 40;
    char c = 10;
    printf ("%d ", char(a*b));
    char d = (a * b) / c;
    printf ("%d ", d);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码产生正常的int值,如果127 > x > -127 是溢出值,则产生其他值.我无法理解如何计算溢出值.在这种情况下为-80.谢谢

c++

1
推荐指数
1
解决办法
533
查看次数

C++中的双指针数组

我正在阅读一个关于 BTree 的程序,在那里我遇到了这个:BTreeNode **C。我知道它是一个二维数组,但它被初始化为C=new BTreeNode *[2*t];. 我无法理解这一点:这是一个具有动态行和 2t 列的 2d 数组吗?谢谢。

c c++ arrays allocation

0
推荐指数
1
解决办法
2万
查看次数

使用迭代的动态编程问题

我花了很多时间来学习使用迭代实现/可视化动态编程问题,但我发现它很难理解,我可以使用memoization的递归实现相同的但是与迭代相比它很慢.

有人可以通过硬问题的例子或使用一些基本概念来解释相同的问题.像矩阵链乘法,最长的回文子序列和其他.我可以理解递归过程,然后记住重叠的子问题以提高效率,但我无法理解如何使用迭代来做同样的事情.

谢谢!

recursion dynamic-programming

0
推荐指数
1
解决办法
561
查看次数