- 博客(113)
- 收藏
- 关注
转载 pytorch的state_dict()拷贝问题
先说结论,model.state_dict()是浅拷贝,返回的参数仍然会随着网络的训练而变化。应该使用deepcopy(model.state_dict()),或将参数及时序列化到硬盘。再讲故事,前几天在做一个模型的交叉验证训练时,通过model.state_dict()保存了每一组交叉验证模型的参数,后根据效果选择准确率最佳的模型load回去,结果每一次都是最后一个模型,从地址来看...
2019-07-26 09:33:00
4335
转载 多模态数据联合Embedding的方法小结
当模型需要接受多个模态的数据时,往往需要设计合适的方法让他们能进行信息的融合,Joint embedding是一种较为普遍的思路,即将他们映射到同一个向量空间中,再进行融合。向量拼接、元素级相乘、做out product得到矩阵、求和。缺点是缺乏表达能力Multimodal Compact Bilinear pooling (MCB)[1],首先把两个模态的特征向量独自和未来...
2019-07-18 18:52:00
2939
转载 [Pytorch Bug] "EOFError: Ran out of input" When using Dataloader with num_workers=x
在Windows上使用Dataloader并设置num_workers为一个非零数字,enumerate取数据时会引发"EOFError: Ran out of input"的报错。解决方法是num_workers=0。转载于:https://www.cnblogs.com/LukeStepByStep/p/11196600.html...
2019-07-16 18:08:00
1702
转载 POJ-2796 & 2019南昌邀请赛网络赛 I. 区间最大min*sum
http://poj.org/problem?id=2796https://nanti.jisuanke.com/t/38228背景给定一个序列,对于任意区间,min表示区间中最小的数,sum表示区间和,求使得min*sum最大的区间或区间值。POJ-2796中,序列的值非负,而在网络赛I题中,序列存在负值。解法分析直觉上,后者是前者的拓展,我们先考虑序列非...
2019-04-23 12:38:00
318
转载 LDA(线性判别分类器)学习笔记
Linear Discriminant Analysis(线性判别分类器)是对费舍尔的线性鉴别方法(FLD)的归纳,属于监督学习的方法。LDA的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,即模式在该空间中有最佳的可分离性。因此,它是一种有效的特征抽取方法。使用这种方法能够...
2019-03-14 13:23:00
1305
转载 KNN
KNN算法也成为k-邻近算法,其是一种通过测量特征值之间的距离来进行的分类算法。KNN的工作原理:存在一个样本数 据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据 与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的 特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们 只选择样本数据...
2018-12-10 15:21:00
134
转载 python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)...
使用adb命令./adb shell screencap -p可以截取当前屏幕,并且作为stdout,传给外部。那么对于python,我们可以用如下代码获取数据流。使用Popen创建子进程用于读取数据流。import subprocessout=subprocess.Popen('./adb shell screencap -p',stdout=subpr...
2018-11-17 21:32:00
651
转载 opencv使用总结
在resize矩阵时出现报错(-215) func != 0 in function cv::resize"很可能是矩阵未设置为float,应该在读入后转换类型item = item.astype(np.float32, copy=False)转载于:https://www.cnblogs.com/LukeStepByStep/p/9902043.h...
2018-11-03 20:47:00
114
转载 pytorch使用总结
loss的获取在看别人代码的时候发现都是loss=net.losstrain_loss+=loss.data[0]#train_loss用于累加梯度在想为什么不直接使用loss呢,因为pytorch使用Variable跟踪变量(4.0后合并为Tensor),也就是直接使用loss,那么pytorch认为其还在参与运算,其在一个batch后依旧存在于网络中而不是释放...
2018-11-01 21:45:00
138
转载 numpy使用总结
numpy数组增加维度比如二维灰度图片转化成三维带channel的数组image=image[:,:,None]转载于:https://www.cnblogs.com/LukeStepByStep/p/9892096.html
2018-11-01 20:02:00
124
转载 最大相邻差值 数学 桶排序
题意:给出一串无序的数列,编写一个O(n)的算法求解排序后相邻两个数的最大差值。解法:nlog(n)的算法大家应该很容易就能想到,只要排序一下再扫描一遍即可。但是为了构造O(n)的算法,肯定不能使用常规排序算法,我们先考虑一下桶排序(非正解),开一个能囊括数值范围的数组,把数据作为下标放进去,再扫描一遍,算出数据之间的最大间隔便是答案了。这样虽然可以做出这题,但是在数据之间的差值...
2018-09-06 20:01:00
192
转载 hdu-1536 S-Nim SG函数
http://acm.hdu.edu.cn/showproblem.php?pid=1536给出能够取的方法序列,然后求基本石子堆问题。只要用S序列去做转移即可。注意has初始化的一些技巧#include <iostream>#include <vector>#include <set>#include <cstd...
2018-05-22 20:51:00
141
转载 博弈论初步(SG函数)
讲解见此博客https://blog.csdn.net/strangedbly/article/details/51137432理解Nim博弈,基于Nim博弈理解SG函数的含义和作用。学习求解SG函数的各种方法SG函数求解博弈问题速讲对于一个问题,我们把每一个局面抽象为一个点,那么局面的变化就可以抽象为点之间的有向边。定义mex为一个集合中未出现的最小的非负数,...
2018-05-22 20:48:00
141
转载 hdu-5009 Paint Pearls DP+双向链表 with Map实现去重优化
http://acm.hdu.edu.cn/showproblem.php?pid=5009题目要求对空序列染成目标颜色序列,对一段序列染色的成本是不同颜色数的平方。这题我们显然会首先想到用DP去解决,dp[i] = min( dp[i] , dp[j] + cost(i , j) )。但是枚举ij的复杂的高达n^2,不能接受,我们就考虑去优化它。首先比较容易想到的是,去除连...
2018-03-19 20:47:00
128
转载 hdu-5015 233 Matrix 矩阵快速幂
http://acm.hdu.edu.cn/showproblem.php?pid=5015这题一开始就想到用矩阵快速幂做,不过思路跑歪了,想着从a[n,m]去逆推出a[0,0~m]每一位的倍数关系啥的。发现比较难求解而且233正向递推好写,反向涉及除法就很难写了。其实没有那么复杂,我们把a[1~n,0]以及下一列的第一位,以及3这个数构造成矩阵,那么对于a[i][j]就可以用之...
2018-03-14 16:44:00
121
转载 hdu-1430 魔板 康拓展开+映射优化
给定三种操作,将排列A转化为排列B,求最少步骤。这种题目可以只跑一次bfs,比如只跑"12345678",那么如果遇到"23456781"->某个字符串呢?因为每一个数字都是等价的,我们可以把2映射为1,3映射成2,以此类推。这样就可以用"12345678"跑出来的操作序列了。#include <iostream>#include <iomanip...
2018-02-08 23:04:00
138
转载 hdu-1043 bfs+康拓展开hash
因为是计算还原成一种局面的最短步骤,应该想到从最终局面开始做bfs,把所有能到达的情况遍历一遍,把值存下来。bfs过程中,访问过的局面的记录是此题的关键,9*9的方格在计算过程中直接存储非常占内存。而这个显然是12345678x的不同排列,考虑康拓展开来记录,每个局面hash成一个整数。步骤我先算了一下,最多有31步,我用4进制位hash成了两个整数来保存#include &...
2018-02-08 22:08:00
118
转载 康拓展开-排列的hash
对于一个集合内所有元素的排列,康拓展开是一个无冲突的hash法。其规则便是将排列在逻辑上排好序,然后每个排列的序号即是hash值。关键就在如何快速求出序号和快速还原啦。首先我们确定一好集合内各元素的大小关系,然后开始处理。生成:对于一个排列(长度为n),我们要算出它前面有多少比它小的序列,如果序号从0开始,那么这个数字就是它的序号。有点类似数位DP的处理,我们从最高位...
2018-02-08 22:03:00
123
转载 hdu-6149 Valley Numer II 状压DP
http://acm.hdu.edu.cn/showproblem.php?pid=6149把点分为low和high点,high点最多只有15个,所以可以用压位来处理其选取状态。枚举low点,然后暴力枚举low点能连接的high点,记忆化搜索一下就好了#include <iostream>#include <string>#include ...
2018-01-25 16:17:00
115
转载 hdu-4856 Tunnels 状压DP
http://acm.hdu.edu.cn/showproblem.php?pid=4856有若干管道,每个管道有且只能走一次,而地图可以随意走。那么可以先处理每个管道间的最短路(不要考虑借助其他管道的情况,因为随后我们用压位的方式可以很轻松地处理不走重复管道的问题,这里不应该引入过多干扰)。随后我们把每个管道是否访问看作01序列,dp[i][j]看着当前处于j号管道,访问状...
2018-01-25 15:20:00
129
转载 hihocoder #1044 : 状态压缩·一 状压DP
http://hihocoder.com/problemset/problem/1044可以看出来每一位的选取只与前m位有关,我们把每个位置起始的前m位选取状态看出01序列,就可以作为一个数字来存储,那么将其作为状态,dp[i][j]就是第i个座位前m个座位选取情况为j的最大垃圾处理量。然后取这个序列的后m-1位,和当前位取0/1的情况分别做合法性判断,然后做状态转移即可。#...
2018-01-25 15:11:00
113
转载 POJ-3233 Matrix Power Series 矩阵A^1+A^2+A^3...求和转化
S(k)=A^1+A^2...+A^k.保利求解就超时了,我们考虑一下当k为偶数的情况,A^1+A^2+A^3+A^4...+A^k,取其中前一半A^1+A^2...A^k/2,后一半提取公共矩阵A^k/2后可以发现也是前一半A^1+A^2...A^k/2。因此我们可以考虑只算其中一半,然后A^k/2用矩阵快速幂处理。对于k为奇数,只要转化为k-1+A^k即可。n为矩阵数量,m为矩阵...
2017-11-23 08:37:00
185
转载 POJ-3294 Life Forms n个字符串中出现超过n/2次的最长子串(按字典序依次输出)
按照以前两个字符串找两者的最长公共子串的思路类似,可以把所有串拼接到一起,这里为了避免讨论LCP跨越多个串需需要特别处理的问题用不同的字符把所有串隔开(因为char只有128位,和可能不够用,更推荐设置成某一特殊字符,在后缀数组初始化的时候在对其映射的int值做处理)。二分长度然后遍历Height,判断SA是否处于同一个串。这里我一开始觉得判断不同串的计数有点麻烦,其实根据LCP确定起...
2017-11-23 08:26:00
126
转载 POJ-3693/HDU-2459 Maximum repetition substring 最多重复次数的子串(需要输出具体子串,按字典序)...
http://acm.hdu.edu.cn/showproblem.php?pid=2459之前hihocoder那题可以算出最多重复次数,但是没有输出子串。一开始以为只要基于那个,每次更新答案的时候按SA更新子串起始位置和长度就好了,但实际发现那个解法在计算重复次数的时候并不会遍历每一个合法串(比如daeaea,枚举长度为2时,只会计算eaea,漏了aeae)所以不能直接在计算过程...
2017-11-13 09:55:00
131
转载 后缀数组模板
印象里青岛赛这个板子挂了,可能有bug,作者懒得找了,慎用。class SF{ //N:数组大小public: int x[N], y[N], c[N]; int Height[N], str[N], SA[N], Rank[N];//Height数组从2开始,SA记录Rank=i的下标 int slen; int m =...
2017-11-12 14:24:00
99
转载 hdu-5985 概率DP
http://acm.hdu.edu.cn/showproblem.php?pid=5985作为队里负责动态规划的同学,做不出来好无奈啊。思考了一个下午,最好还是参考了别人的思想才写出来,数学啊!!!这题随着K的增长,贡献的数值越来越少,所以只要K足够大(100左右就够了,一开始写30WA了),之后的就可以不考虑了。那么对于每个K,我们又可以枚举每种硬币是最后留下来的那种,...
2017-10-29 19:56:00
196
转载 hdu-2639 Bone Collector II 背包第K优
http://acm.hdu.edu.cn/showproblem.php?pid=2639在背包的基础上维护一个size<=K的最大值集合,为什么维护K个就好了呢,因为如果当前状态有多余K个最优解,前K个就足够转移到下一状态并占满前K了,所以K个之后的都没必要维护。#include <iostream>#include <cstdio>...
2017-10-27 20:15:00
83
转载 hdu-1115 计算几何 求重心 凸多边形 面积
思想是分割成三角形,然后求三角形的重心。那么多边形重心就是若干个三角形的重心带权求中心,可以用质点质心公式。#include <cstdio>#include <iostream>#include <algorithm>#include <vector>#include <cstring>#defin...
2017-10-27 15:13:00
144
转载 n!的位数 斯特林公式
#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<cmath>#include<algorithm>#include<queue>#include<vector>...
2017-10-27 14:25:00
235
转载 hdu-2709整数划分 技巧
整数划分变形,由2^k组成。整数划分中一个节约内存的技巧,平时我们使用dp[i][j]维护用不大于j的数组合成i的方案数,所以必须dp[i-j][j]->dp[i][j]。这样就需要二位,如果用一维dp[i-j]->dp[i]就会导致重复选取的情况。其原因在于dp[i-j]在计算的过程已经把大于j的组合求完了,就会重复。那么很自然地想到把j地遍历放在外面,这样每次求解的时...
2017-10-27 11:12:00
86
转载 hdu-4080 Stammering Aliens 字符串hash 模板题
http://acm.hdu.edu.cn/showproblem.php?pid=4080求出现次数大于等于n的最长串。#include<iostream>#include<cstdlib>#include<cstdio>#include<vector>#include <string>#...
2017-10-26 20:19:00
245
转载 hdu-3366 Passage 概率DP 读懂就能AC hhh
http://acm.split.hdu.edu.cn/showproblem.php?pid=3366读题的时候没发现这个P Q 1-P-Q是全集的划分,以为是独立事件,写错了转移方程233先贪心得排个序,排序规则我们可以通过假设A B/B A这两种顺序,然后推导概率和的大小关系来得出。然后分别讨论直接通过,免费到下一门,付费到下一门。dp[i][j]存到达i门消费j...
2017-10-08 15:26:00
198
转载 高斯消元
板子来源于网络struct Gauss{ /**** **** **** **** **** **** * Function Name : 高斯消元法 * Description : 求解线性方程组 * * void exchange_col(int p1,int p2,int n) * 交换 p1 行和 p2 行...
2017-10-06 21:11:00
69
转载 hdu-1521 排列组合 指数型母函数
高中知识,求全排列组合后,去重方法是除以相同物品的数量阶乘。那么如果我们再构造母函数的时候,就把阶乘作为每一项的分母,那求出来就可以直接乘上全排列系数了。//// main.cpp// HDU4333//// Created by teddywang on 16/3/9.// Copyright © 2016年 teddywang. All right...
2017-10-03 14:09:00
145
转载 整数划分问题 母函数
母函数求组合#include <iostream>using namespace std;int main(){ int num[125],temp[125]; int i,j,k; for(i=0;i<=124;i++) { num[i]=1; temp[i]=0...
2017-10-03 11:49:00
143
转载 扩展KMP
扩展KMP可以快速求出T与S每个后缀的LCP,时间复杂度和空间复杂度都比后缀数组要优良很多。const LL N = 200005;//扩展KMPint nex[N];//T串的每一个后缀与T的LCPint ext[N];char S[N];char T[N];void getNex(){ //int len = T.length(); ...
2017-10-02 16:43:00
63
转载 hihocoder-1419 后缀数组四·重复旋律4 求连续重复次数最多的子串
对于重复次数,如果确定了重复子串的长度len,那重复次数k=lcp(start,start+len)/len+1。而暴力枚举start和len的复杂度是O(n^2),不能接受。而有一个规律,若我们只枚举len的整数倍作为起始,如果将它向前移动小于len位可以构成重复次数更长的串,那么那个位置p=start-len+lcp%len。所以每次我们计算两者并求max再与ans做max即可。...
2017-09-21 18:48:00
123
转载 hdu-6194 string string string 后缀数组 出现恰好K次的串的数量
最少出现K次我们可以用Height数组的lcp来得出,而恰好出现K次,我们只要除去最少出现K+1次的lcp即可。#include <cstdio> #include <cstring> #include <algorithm> #include <iostream>using namespace std;...
2017-09-19 18:56:00
142
转载 hihocoder-1415 后缀数组三·重复旋律3 两个字符串的最长公共子串
把s1,s2拼接,求Height。相邻的Height判断左右串起点是否在两个串中,另外对Height和s1.length()-SA[i-1]取min。#include <iostream>#include <cstring>#include <string>#include <queue>#include <v...
2017-09-19 18:53:00
115
转载 hihocoder-1407 后缀数组二·重复旋律2 不重合 最少重复K次
后缀数组不能直接通过Height得出不重合的公共串。我们可以二分k值,这样连续的Height只要都大于等于k,那他们互相间的k值都大于等于k。每个这样的连续区间查找SA的最大最小值,做差判断是否重合(考虑common prefix=k)。#include <iostream>#include <cstring>#include <strin...
2017-09-19 18:33:00
123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人