1. Softmax Loss 推导
(1) $N$为类别数
(2) $a$为输出向量,$a_j$为向量$a$的第$j$个值
参考:卷积神经网络系列之softmax loss对输入的求导推导
(1) $N$为类别数
(2) $a$为输出向量,$a_j$为向量$a$的第$j$个值
参考:卷积神经网络系列之softmax loss对输入的求导推导
参考资料:深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
1 | def gradient_decent(_x_data, _y_data, _b, _w, _iteration, _lr): |
解法:
0
开始,从左到右,从上到下,直到n*m-1
(其中n
为行数,m
为列数),对于位置(i,j)
则编号为i*m+j
,那么相邻(左右,上下)的为同一个值,则认为他们相通。那么最终只要统计一下father[i]==i
且对应值为1
的个数即可。(代码可参考: 岛屿的个数 Disjoint Set)代码:
1 | class Solution { |
模板题:重点在于dfs中的startPos=i+1
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public:
vector<vector<int>> combine(int n, int k) {
vector<vector<int>> res;
vector<int> inRes;
if(n<=0 || k<=0) return {};
dfs(res, inRes, n, k, 1);
return res;
}
void dfs(vector<vector<int>> &res, vector<int> &inRes, int n, int k, int startPos){
if(inRes.size()==k){
res.emplace_back(inRes);
return;
}
for(int i = startPos; i<=n; i++){
inRes.emplace_back(i);
dfs(res, inRes, n, k, i+1); //重点在于i+1
inRes.pop_back();
}
}
};
1 | class Solution { |
解法:在上一题的基础上使用Set进行去重
代码:
1 | class Solution { |
1 | class Solution { |
解法:
按解组合的方式解,解的过程中判断回文串,组合的元素集合是按照从子串的第一个元素开始,到第i个元素截断作为一个新子串进行回文判断,
代码:
1 | class Solution { |
规规矩矩没啥说的, 主要注意边界条件
代码:
1 | class Solution { |
preL + 1
preL + num
inL
inRoot - 1
preL + num + 1
preR
inRoot + 1
inR
2017~2019年度我在Github上面收藏的一些优质干货Repo
其中有一些很荣幸作为Repo的贡献者,在issue中也结识了不少好友,共同学习
参考: https://github.com/aleju/papers/blob/master/neural-nets/Hierarchical_Deep_Reinforcement_Learning.md