fo

计算机视觉 - 06 前向传播( Forward Propagation)、分类模型、交叉熵、标准化(学习笔记)

我与影子孤独终老i 提交于 2020-03-01 21:10:42
1、图片在卷积神经网络中是怎么变化的(前向传播 Forward Propagation) 代码详见: https://zhuanlan.zhihu.com/p/34222451 2、分类模型 Loss 函数为什么要用 交叉熵Cross Entropy? https://zhuanlan.zhihu.com/p/53045651 (1)分类模型 与 Loss 函数的定义监督学习的 2 大分支: 分类问题:目标变量是离散的。 回归问题:目标变量是连续的数值。 为了训练模型,必须先定义衡量模型好与坏的标准。 在机器学习中,我们使用 loss / cost,即, 当前模型与理想模型的差距。 训练的目的,就是不断缩小 loss / cost. (2)为什么不能用 classification error classification error 很难精确描述模型与理想模型之间的距离。 (3)Cross-Entropy (交叉熵)的效果对比 ACE 结果准确的体现了模型 2 优于模型 1。 cross-entropy 更清晰的描述了模型与理想模型的距离。 (4)为什么不用 Mean Squared Error (平方和) 分类问题,最后必须是 one hot 形式算出各 label 的概率, 然后通过 argmax 选出最终的分类。 (稍后用一篇文章解释必须 one hot 的原因)在计算各个

成功解决NotFoundError (see above for traceback): Failed to create a directory: ; No such file or directo

不打扰是莪最后的温柔 提交于 2020-03-01 12:59:38
成功解决NotFoundError (see above for traceback): Failed to create a directory: ; No such file or directo 目录 解决问题 解决方法 解决问题 NotFoundError (see above for traceback): Failed to create a directory: ; No such file or directory [[Node: save/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, ..., DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save/Const_0_0, save/SaveV2/tensor_names, save/SaveV2/shape_and_slices, Variable, Variable/Adam, Variab 来源: CSDN 作者: 一个处女座的程序猿 链接: https://blog.csdn.net/qq_41185868/article

论文解读《Deep Resdual Learning for Image Recognition》

爱⌒轻易说出口 提交于 2020-02-24 20:05:20
总的来说这篇论文提出了ResNet架构,让训练非常深的神经网络(NN)成为了可能 。 什么是残差? “残差在数理统计中是指实际观察值与估计值(拟合值)之间的差。”如果回归模型正确的话, 我们可以将残差看作误差的观测值。”更准确地,假设我们想要找一个 x x,使得 f ( x ) = b f(x)=b,给定一个 x x 的估计值 x 0 x0,残差(residual)就是 b − f ( x 0 ) b−f(x0),同时,误差就是 x − x 0 x−x0 为什么需要堆叠更深的NN呢? 论文阐述道 -- 深度神经网络自然的集成了低、中、高阶特征,同时随着网络深度的提升,这些特征也会随之丰富,这些丰富的特征对于最后执行的分类或回归任务来说都是很有意义的,一般认为可以获得更好的结果; 但是,论文又指出一些问题,堆叠深层的NN存在一些问题: -- 堆叠深层的网络后,网络的学习会变得更加的不容易,因为存在着梯度消失/爆炸问题(BN一定程度解决),会妨碍模型的收敛,使得模型不能得到很好的学习; -- 通过实验发现,堆叠更深的网络存在着退化问题,即随着深度的增加,在分类任务中的正确率会饱和并开始迅速的下降,并且会得到更大的训练损失; 所以可以得到想要优化深层的网络结果并不容易,那么现有解决方法是怎么构造更深层的模型呢? 作者阐述了一种方法就是:增添的网络层都是恒等映射网络

springmvc中controller内方法跳转forward?redirect?

♀尐吖头ヾ 提交于 2020-02-22 03:23:37
使用springmvc的controller的时候,碰到controller内方法的跳转的问题,记录下问题以及自己测试的过程。 场景: 业务执行更新操作之后返回列表页面,列表页面需默认展示查询的列表数据,涉及到两个controller的跳转。 问题 是使用forward还是redirect跳转 解决问题 其实使用forward或者redirect都能达到目的,但是有些问题在下面说明。 1、使用forward a、例如:return "forward:/rest/queryData",实际的效果是在浏览器中的url地址还是原地址,存在重复提交的问题,所以forward就不推荐使用了。 b、如果是需要携带参数,直接拼接传递的参数,例如:return "forward:/rest/queryShopAlisName?phone=xxxxxxx"; 在跳转的controller中使用参数【@RequestParam("phone") String phone】获得传递的参数值,显然这样的方式也是不推荐的。 2、使用redirect 在controller方法的参数中使用RedirectAttributes来 a、不带参数: 直接使用 return "redirect:/rest/queryShopAlisName";浏览器的地址变成跳转的新地址,避免了重复提交的问题。 b、带参数的时候:

PHP根据session控制一定时间内form表单提交次数

感情迁移 提交于 2020-02-08 14:35:49
这种写法以及函数的用法是有些奇葩,但是能用就行啦 /** * 根据session控制form表单一定时间内提交次数 * * @date 2020-01-17 * @return boolean */ public function submit_nu() { // 获取客户端ip $ip = 'ip'.ip_2_long(request()->ip()); // 获取当前时间戳 $now = time(); // 开始循环判断 if (! empty(request()->session()->get($ip))) { // 两分钟间隔内 $last_submit_time = request()->session()->get($ip.'.last_submit_time'); $submit_times = request()->session()->get($ip.'.submit_times'); if ($now - $last_submit_time < 60 * 2) { // 判断两分钟内的次数 3次 if ($submit_times && $submit_times >= 3) { return false; } else { // 小于3次 if ($submit_times) { session([$ip.'.submit_times'=>$submit

解决SystemError: new style getargs format but argument is not a tuple

与世无争的帅哥 提交于 2020-02-07 04:19:13
SystemError: new style getargs format but argument is not a tuple 想给图片添加灰度值,莫名其妙出现这个 这个提示的意思就是说,putpixel()参数不是元组。我心想我这个需要数据格式也不是元组啊,不过既然提示这个是新格式的数据,那我就看它是什么类型的数据 print ( type ( 256 / (label [ i ] [ j ] + 1 ) ) ) < class 'numpy.float64' > 原来label是我前面用numpy构造的一个新数组,得到数据类型也就不是int 我就把前面强转成int类型,就ok咯 来源: CSDN 作者: SuperBetterMan 链接: https://blog.csdn.net/SuperBetterMan/article/details/104196490

【GDOI2020模拟02.05】生成树 (矩阵树扩展)

纵饮孤独 提交于 2020-02-06 16:02:38
Description: 给定一张 N 个点,M 条边的无向图,边有红、绿、蓝三种颜色,分别用 1,2,3 表示。 求这张图有多少生成树,满足绿色边数量不超过 x,蓝色边数量不超过 y,答案对10^9 + 7 取模。 n<=40 题解: 考虑正常的用矩阵树求生成树个数的方法。 基尔霍夫矩阵里的每个位置只是一个数,事实上可以把它扩展成一个多项式。 在这题中,每个位置就是一个 \(系数*x^{...}*y^{...}\) 。 然后求出这个矩阵的余子式的行列式就好了。 当然这个矩阵是不好高斯消元去求行列式的,但是我们可以拉格朗日插值。 二维拉格朗日插值: \(\sum_{i,j} a_{x_i,y_j}\prod_{k \not= i{x - xk\over xi-xk}}\prod_{k \not= j{y - yk\over yj-yk}}\) 和一维没有什么区别, 我们需要暴力展开这个式子,直接搞的复杂度是 \(O(n^4)\) ,加上高斯消元的 \(O(n^5)\) 能够通过。 这题比较特殊,可以使 \(y=x^n\) 去做一维插值,我比赛时写的一维插值: \(\sum_{i,j}a_{xi}\prod_{k \not= i{x - xk\over xi-xk}}\) 这格东西有 \(O(n^2)\) 项,如果对后面的暴力展开,总共是 \(O(n^6)\) ,需要卡常才能通过。

MySQL is running but PID file is not found

自闭症网瘾萝莉.ら 提交于 2020-02-05 03:04:57
今 天vps访问速度很慢,我用/root/lnmp restart 命令给lnmp重启了一下,重启之后发觉mysql链接不上了。 ssh里面运行 service mysql restrat 出现 MySQL is running but PID file could not be found 错误。 用mysql -u root -p 命令运行mysql时出现 Can't connect to MySQL through socket mysql.sock 错误。 后 来网上找到一篇不错的文章 mysql PID file not found and Can't connect to MySQL through socket mysql.sock虽然后来我是直接重启vps(reboot)解决这个问题,不过上面文章里的很多内容还是挺有用的。 记录几个以前不知道的知识: 1、grep 是查找命令 可做文件内的字符串查找,使用如: ps aux | grep mysql 2、ps 命令 显示所有进程 跟windows系统的 tasklist 命令相似 aux 显示所有包含其他使用者的行程 比如我运行 ps aux | grep mysql 命令后能够找到 –datadir=/usr/local/mysql/var–pid-file=/usr/local/mysql/var/li220

2017 Chinese Multi-University Training, BeihangU Contest

▼魔方 西西 提交于 2020-01-29 09:42:41
http://codeforces.com/gym/102253 A 用m个二进制位可以表示10^k,给定m,问k最大是多少 乘一个lg2即可 #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #define fo(i,l,r) for(int i = l;i <= r;i++) #define ll long long using namespace std; const int maxn = 300050; int n; int main(){ int T,i=0; double m; while(scanf("%lf",&m)!=EOF){ i++; m = m*log(2)/log(10); printf("Case #%d: %d\n",i,(int)floor(m)); } return 0; } View Code K 一个1-n的序列,每次选一个最小的放进暂存区,当暂存区有n-1个数时,下一次取数后把这n-1个数再放回序列,问第k次取的是多少 推出一个规律:第一次一定是全部取一遍,之后每次都有一个取不到进行下一轮循环,这个取不到的数是最大的和次大的交替出现 #include