算法CV方向。
算法题:
/*
1.重建二叉树
2.走棋盘
都是leetcode原题,但第二个不让我考虑用动态规划的方法,我没答上来
思路:
对于一个m*n的棋盘,从左上角走到右下角,总共要走(m - 1) + (n - 1) = m + n - 2步,
那么就相当于从m + n - 2步中,抽出 m - 1 步向下走,
所以这实际上是一个组合问题,求C(m - 1, n + m - 2)
https://blog.csdn.net/linhuanmars/article/details/22126357
*/
int uniquePath(int m, int n)
{
double num = 1, denom = 1;
int small = m < n? m : n;
for(int i = 1; i <= small - 1; ++i)
{
num *= m + n - 1 - i; // 组合公式的分子,从 m + n - 2 到 (m + n - 2) - small + 1的连乘
denom *= i; // 组合公式的分母
}
return (int)(num / denom);
}
概念题:
1.防止过拟合有哪些办法?
回答了,dropout、正则化,以及如果有可能增加数据量(废话)
2.L2正则化为什么可以防止过拟合?推导
3.CNN里面一个卷积层所需参数个数的计算。
256*256*10 -> 256*256*20 kernal_size 3*3,需要多少个参数,3*3*10*20
4.softmax的计算公式
5.loss是cross_entropy时的计算