“人造太阳”计划

梯度下降法

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-26 13:55:00
目录 梯度下降法 一、什么是梯度下降? 二、简单线性回归中使用梯度下降法 三、多元线性回归算法中使用梯度下降法 四、梯度下降算法的向量化 五、梯度下降法 1、批量梯度下降法 2、随机梯度下降 3、mini-batch Gradient Descent 4、scikit-learn中封装实现sgd 六、关于梯度的调试 我是尾巴 梯度下降法 梯度下降法,是一种基于搜索的最优化方法,最用是最小化一个损失函数。 一、什么是梯度下降? ​ 机器学习算法都需要最大化或最小化一个函数,这个函数被称为"目标函数",其中我们一般把最小化的一类函数,称为"损失函数"。它能根据预测结果,衡量出模型预测能力的好坏。在求损失函数最小化的过程中使用梯度下降法。 $\frac{dJ(\theta)}{d\theta}$ ​ 在直线方程中,倒数代表斜率,在曲线方程中,倒数代表切线的斜率。倒数代表着参数theta单位变化时,损失函数J相应的的变化。通过上面图中的点可以发现,改点的导数为负值,所以随着参数theta的增加,损失函数J减小,因此导数从某种意义上还可以代表方向,对应着损失函数J增大的方向。 $-\eta\frac{dJ(\theta)}{d\theta}$ ​ 综上,如果最小化一个函数,我们就需要得到导数再取个负数,并且再乘以一个系数,这个系数通常叫做步长或者叫学习率(Learning rate, Lr)

【网易互娱模拟笔试】解题记录

寵の児 提交于 2019-11-26 13:54:19
08-04那天参加了一下网易互娱的模拟笔试,那天状态不太好,再加上调试第一题花了很长时间,心态有点炸了,所以最后完成得并不理想。 总结:笔试心态还不够稳,手速还不够快,算法还不够熟。 一共 3 道题,题目都很简单,但是自己并没有做完,汗颜羞愧。记录一下。 第一题: 新税收政策中,起征点是5000,超过5000的部分,需要进行分级纳税,题目给的图类似下图: 要求: 多行输入,每行输入月收入,假设无需缴纳其他费用,请输出计算出所需缴纳的个人所得税,税费四舍五入。 实现: // 计算个人所得税,income: 个人收入, taxs: 汇率表 int calTax ( int income , map < int , double > & taxs ) { int len = taxs . size ( ) ; if ( income <= 5000 ) { return 0 ; } income = income - 5000 ; int i = 0 ; // 记录当前为第几个区间 int res = 0 ; map < int , double > :: iterator iter_cur = taxs . begin ( ) ; // 当前区间迭代器 map < int , double > :: iterator iter_next = ++ taxs . begin ( ) ;

最大流最小割入门题

▼魔方 西西 提交于 2019-11-26 13:49:34
Dinic板子: const int tmax=1e4+5,inf_int=1e9+5; struct edge{ int to,cap,rev; }; vector<edge> G[tmax]; int level[tmax]; int iter[tmax]; void addedge(int from,int to,int cap) { G[from].push_back((edge){to,cap,G[to].size()}); G[to].push_back((edge){from,0,G[from].size()-1}); } void bfs(int s) { memset(level,-1,sizeof(level)); queue<int> que; level[s]=0; que.push(s); while(!que.empty()) { int v=que.front(); que.pop(); for(int i=0;i<G[v].size();i++) { edge &e=G[v][i]; if(e.cap>0&&level[e.to]<0) { level[e.to]=level[v]+1; que.push(e.to); } } } } int dfs(int v,int t,int f) { if(v==t) return f; for(int &i

python requests用法总结

扶醉桌前 提交于 2019-11-26 12:49:31
https://www.cnblogs.com/lilinwei340/p/6417689.html https://2.python-requests.org//zh_CN/latest/user/advanced.html#session-objects 当使用requests的get下载大文件/数据时,建议使用使用stream模式。 当把get函数的stream参数设置成False时,它会立即开始下载文件并放到内存中,如果文件过大,有可能导致内存不足。 当把get函数的stream参数设置成True时,它不会立即开始下载,当你使用iter_content或iter_lines遍历内容或访问内容属性时才开始下载。需要注意一点:文件没有下载之前,它也需要保持连接。 iter_content:一块一块的遍历要下载的内容 iter_lines:一行一行的遍历要下载的内容 使用上面两个函数下载大文件可以防止占用过多的内存,因为每次只下载小部分数据。 示例代码: r = requests.get(url_file, stream=True) f = open("file_path", "wb") for chunk in r.iter_content(chunk_size=512): if chunk: f.write(chunk) 来源: https://www.cnblogs.com

Python 迭代器,生成器

落爺英雄遲暮 提交于 2019-11-26 12:06:08
一 、复习# 函数 # 函数的定义和调用 # def 函数名(形参): # 函数体 # return 返回值 # 站在形参的角度上:位置参数,*args,默认参数(陷阱),**kwargs # 站在寮参的角度上:按照位置传,按照关键字传 # 返回值:没有返回值 返回一个值 返回多个值 # 接收返回值:没有返回值不接收,返回一个值用一个变量接收,返回多值用一个变量或者对应数目的变量接收# 闭包函数 -----在内部函数引用外部函数的变量# 装饰器 ----》装饰器一定是闭包函数# 装饰器作用:在不改变原来函数的调用方式的情况下,在这个函数前后添加新的功能 #完美的符合了一个开发原则:开放封闭原则 # 对扩展是开放的 # 对修改是封闭的 # 基础的装饰器 # from functools import wraps # def wrapper(func): # @warps(func) # def inner(*args,**kwargs): # '''在函数被调用之前添加的代码''' # ret = func(*args,**kwargs) #func 是被装饰的函数 在这里被调用 # '''在函数被调用之后添加的代码''' # return ret # return inner #使用------- @wrapper # 完美的装饰器 # from functools import

游戏

十年热恋 提交于 2019-11-26 11:10:20
Tips: about List:http://www.cplusplus.com/reference/list/list/ about function erase:http://www.cplusplus.com/reference/list/list/erase/ 每种容器都定义了自己的迭代器类型,如list: list<int>::iterator iter; //定义一个名为iter的变量list<int>::iterator iter1=iter;//此时两个迭代器均指向同一个内存区域。 来源: https://www.cnblogs.com/WuDie/p/11318755.html

2. 无限递归字符串查询

旧巷老猫 提交于 2019-11-26 07:17:26
Description Consider a string A = “12345”. An infinite string s is built by performing infinite steps on A recursively. In i-th step, A is concatenated with ‘ ’ i t i m e s f o l l o w e d b y r e v e r s e o f A . A = A ∣ ’ i times followed by reverse of A. A=A| ’ i t i m e s f o l l o w e d b y r e v e r s e o f A . A = A ∣ …$|reverse(A), where | denotes concatenation. Constraints:1<=Q<=10^5, 1<=POS<=10^12 Input 输入第一行为查询次数,后面为每次查询的具体字符位置。 Output 输出每一次查询位置上的字符。 Sample Input 1 2 3 10 Sample Output 1 3 2 def solution ( number ) : # 除了这个迭代A和reverse(A)不一样外,后面的迭代都是一样的 init = [ '1' , '2' , '3' , '4

dbus+select+tcp socket

好久不见. 提交于 2019-11-26 04:58:54
#include <dbus/dbus.h> #include <iostream> #include <unistd.h> #include <sys/select.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <stdarg.h> #include <stdbool.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <sys/ioctl.h> #include <sys/fcntl.h> #include <assert.h> using namespace std; /** * A watch bind with a fd(owned by the socket), * when fd is ready to read data or write from transport, a notify event occurs */ struct watchlist_t { DBusWatch *watch; struct watchlist_t *next; }; static struct watchlist_t *watchlist = NULL; struct

PyTorch(二次元头像--GAN实战)

依然范特西╮ 提交于 2019-11-26 00:44:58
1.预处理函数(这里有一个问题,transforms.Normalize()函数的使用) 有博主写了 https://blog.csdn.net/xys430381_1/article/details/85724668 2.定义鉴别器 计算方式参考上一张 迁移学习的内容。最后输出向量的类型为256*6*6. 同时每次卷积过后,进行批归一化(这点与传统的方式不一样)+LeaKy ReLU 3.定义生成器(理解为鉴别器的逆过程,反卷积的过程) 4.训练(初始化参数) def train(d,g,criterion,d_optimizer,g_optimizer,epochs=1,show_every=1000,print_every=10): iter_count = 0 for epoch in range(epochs): for inputs,_ in trainloader: real_inputs = inputs fake_inputs = g(torch.randn(5,100)) real_labels = torch.ones(real_inputs.size(0)) fake_labels = torch.zeros(5) real_outputs = d(real_inputs) d_loss_real = criterion(real_outputs,real