自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 I/O模型前期知识

以此图中I\O阻塞模型为例图中操作体指进程/线程/协程。用户运行程序要求访问文件,即创建操作体调用内核中开放的数据接口访问硬件空间的文件,通过文件名找到文件的inode号码,通过inode号码得到inode信息,通过inode信息找到文件所在的区域(即文件描述符),确定文件位置。将文件从硬件空间拷贝至内核空间的缓冲区,然后cpu将数据从内核空间缓冲区拷贝到用户的地址空间。用户即可对文件进行读...

2020-03-09 01:06:25 229

原创 KMP模式匹配算法

有点脑壳疼,过段时间再回头看看吧是因为朴素匹配算法的时间复杂度过高,为降低时间复杂度,有了KMP算法KMP算法只需str1遍历一遍即可,重点在于next数组的这个思想。本文使用c++实现。数据结构书上是用c实现的,next从1开始,而c++中是从0开始,故将next[0]设为取不到的值-1,起始 j 的值改为0;#include <iostream>using namespa...

2019-08-23 14:16:06 223

原创 pytorch复现loss遇到的问题

复现交叉熵首先定义了函数对照公式实现了交叉熵的功能def CrossEntropy(inputs, targets): return np.sum(np.nan_to_num(-targets*(np.log(inputs)))运用到项目代码中出现了detach()问题,且因为类型非variable 无法更新梯度,无法backward由于我的项目代码使用的torch框架...

2019-08-19 21:07:35 832

原创 剑指offer(十三)

61. 构建乘积数组由于不能使用除法,使用数组C 表示 A[i] 左边的乘积,D表示 A[i] 右边的乘积,两者相乘即得结果。class Solution {public: vector<int> multiply(const vector<int>& A) { if(A.size()<=1) return {}; ...

2019-08-14 14:03:09 177

原创 剑指offer(十二)

56. 滑动窗口的最大值这题我觉得最麻烦的是,size使用的 unsigned int的类型,导致后面有点麻烦,所以我直接转成int型了。class Solution {public: vector<int> maxInWindows(const vector<int>& num, unsigned int size) { st...

2019-08-14 10:50:28 249

原创 剑指offer(十一)

51.

2019-08-12 20:32:28 133

原创 剑指offer(十)

46. 两个链表的第一个公共节点栈的方法。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindFirstCommonNode( ListNode* p...

2019-08-09 20:03:07 175

原创 剑指offer(九)

41. 把数组排成最小的数方法的本质是排序,但是排序标准改为在前面的做高位得到的数小;由于冒泡写起来简单就用了冒泡,就时间复杂度而言还是应该用快排。class Solution {public: string PrintMinNumber(vector<int> numbers) { if(numbers.size()<=0) return "";...

2019-08-08 21:00:12 189

原创 剑指offer(八)

36. 数组中出现次数超过一半的数字自己想的是类似于桶排序的方法,时间复杂度虽然是O(n),但是是用的空间换时间,不划算。class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { int size=numbers.size(); if(size&l...

2019-08-06 20:14:13 110

原创 剑指offer(七)

31. 二叉树中和为某一值的路径class Solution {public: vector<vector<int> > FindPath(TreeNode* root,int expectNumber) { vector<vector<int> > result; vector<int> br...

2019-08-01 14:41:17 126

原创 剑指offer(六)

26. 顺时针打印矩阵因为弄反了行列,所以因为溢出折腾了好一会。做之前感觉递归会更方便,现在还是觉得循环更简单些。class Solution {public: void printM(vector<vector<int> > matrix,int rowbegin,int rowend,int colbegin,int colend,vector<in...

2019-07-25 11:00:08 155

原创 剑指offer(五)

21. 链表中环的入口节点这是比较清晰的方式,但是面试时我应该想不出来这个规律,这也是看了别人的答案才知道这个规律的。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution ...

2019-07-24 10:43:01 112

原创 剑指offer(四)

16. 删除链表中重复的节点/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* deleteDuplication(List...

2019-07-22 17:20:56 113

原创 剑指offer(三)

11. 旋转数组的最小数字二分法,书上说考的是二分法。。class Solution {public: int minNumberInRotateArray(vector<int> rotateArray) { int size=rotateArray.size(); if(size==0) return 0; if(siz...

2019-07-19 19:50:18 131

原创 剑指offer(二)

6. 重建二叉树递归构建二叉树/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };...

2019-07-18 10:23:14 141

原创 剑指offer(一)

把字符串转换成整数class Solution {public: int StrToInt(string str) { if(str.empty()) return 0; int nums=0, flag=1; if(str[0]=='-') flag=-1; else if(str[0]=='+') nums=0; ...

2019-07-16 14:28:49 169

原创 c++ 排序算法

冒泡排序基础版,本来想着加flag减少多余的计算,但是我这样做好像已经自动将多余的运算避免了。写了后面的排序算法,发现我这样写思路就跟插入排序很像了。。百度后发现冒泡排序的取值应当是从nums.size() 到1 ,所以下面完全是不伦不类的插入排序。 void swap(vector<int>& nums,int x,int y){ int temp...

2019-06-25 21:55:50 357

原创 热力图heatmap

这个方法又称Class Activation Map(CAM类激活映射),由于这是基于分类问题的一种可视化技术,并且只有将全连接层改为全局平均池化才能较好的保存图像的空间信息,这对于训练是不利的。2017年提出了Grad-CAM,可以在不改变网络结构的情况下进行初始化。CAMCAM论文CAM的原理大致如上图所示,生成步骤如下:step1: 输入一张图进入CNN(可以是任何网络)中,最后...

2019-04-06 15:45:47 7044 2

原创 注意力机制

Attention机制是什么?说到底attention实际上是一个加权求和,用于计算每个与attention关注的对象(其实是一个向量)的相关程度。step1 设计一个打分函数fif ifi,针对每个hihihi,计算出一个scoresisisi 。而sisisi打分的依据,就是hihihi与attention所关注的对象(其实就是一个向量)的相关程度,越相关,所得sisisi越大。step...

2019-04-05 18:01:08 1765

原创 WGAN, WGAN-GP, BE-GAN论文笔记

GAN网络的重点在于均衡生成器与判别器,若判别器太强,loss没有再下降,生成器学习不到东西,生成图像的质量便不会再有提升,反之也是。WGAN待更新。。。。。WGAN中相较于此前GAN的改进主要在于以下四点:判别器最后一层去掉sigmoid生成器和判别器的loss不取log每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c不要用基于动量的优化算法(包括momentum...

2019-03-01 22:11:35 7177 5

原创 行列转换,tensor变换等

行列转换 python3 :list(zip(*a))a = [[1, 3, 4]]b = [[2, 5, 6]]list(zip(a, b))=[[1, 2], [3, 5], [4, 6]]取Variable的值:a = Variable()a.data #取值,但 print会有device[float(i) for i in a[:].data] #可将a内的值转换为flo...

2018-12-29 14:00:06 2557 1

转载 PIL,plt显示tensor类型的图像

该方法针对显示Dataloader读取的图像。PIL 与plt中对应操作不同,但原理是一样的,我试过用下方代码Image的方法在plt上show失败了,原因暂且不知。 # 方法1:Image.show() # transforms.ToPILImage()中有一句 # npimg = np.transpose(pic.numpy(), (1, 2, 0)) # 因此pic只能是3-D T...

2018-12-26 20:26:06 10622 1

原创 pytorch grad_fn以及权重梯度不更新的问题

前提:我训练的是二分类网络,使用语言为pytorchVaribale包含三个属性:data:存储了Tensor,是本体的数据grad:保存了data的梯度,本事是个Variable而非Tensor,与data形状一致grad_fn:指向Function对象,用于反向传播的梯度计算之用在构建网络时,刚开始错误为没有可以grad属性的变量,百度后得知要对需要进行迭代更新的变量设置requ...

2018-12-22 19:53:15 32580 16

原创 LeeCode 最长有效括号

基于python3实现LeeCode 32题搜到的答案都是java的,试图用C实现,奈何不熟悉语法,最终还是用的python,主要参考了参考文献链接的思路,讲的很详细。主要用的是栈,带入一段’)(()))()(‘试一下也就能理解了class Solution(object): def longestValidParentheses(self, s): """ ...

2018-12-19 12:20:40 210

原创 GoogleNet系列笔记

GoogleNet系列笔记包括:Inception v1Inception v2Inception v3Inception v4Inception resnet v1Inception resnet v2

2018-12-18 19:58:40 603

原创 LeetCode四数之和

这个改了好久,发篇博客纪念一下好了。代码是用python写的。有不对的可以改进的地方,欢迎指正。class Solution(object): def fourSum(self, nums, target): result=[] l = len(nums) #排序 for m in range(l-1): ...

2018-12-13 22:07:58 181

原创 GAN网络走过的坑

复现代码时出现ERROR如下:Trying to backward through the graph a second time, but the buffers have already been freed. Specify retain_graph=True when calling backward the first time.后在所有的loss中添加retain_graph=Tr...

2018-12-02 17:24:29 899

原创 VGG笔记

VGG的网络参数 VGG与AlexNet对比VGG基于AlexNet发展而来,特点在于使用的卷积核大小均为3*3,并将网络深度加深。网络不同之处----相同之处-AlexNet多种大小的卷积核深度为83层3*3最大池化层,stride=2,重叠池化参数量60M-激活函数ReLu,softmax分类VGG卷积核多为3 * 3 ,C引入...

2018-10-25 16:00:11 4573

原创 AlexNet笔记

AlexNet的一些参数:卷积层:5层全连接层:3层深度:8层参数个数:60M神经元个数:650k分类数目:1000类由于当时的显卡容量问题,AlexNet 的60M个参数无法全部放在一张显卡上操作,所以采用了两张显卡分开操作的形式,其中在C3,R1,R2,R3层上出现交互,所谓的交互就是通道的合并,是一种串接操作。AlexNet的结构图:AlexNet 网络参数计算按照公式...

2018-10-18 15:56:19 1172

原创 Python ,利用cv2批量缩放图像

先将图像文件名称读取保存为csv文件,以下为读取文件夹下后缀为.py的文件名称的代码#print(root) #当前目录路径 #print(dirs) #当前路径下所有子目录 #print(files) #当前路径下所有非目录子文件 import osimport csvL=[] file_dir ='.'i=0with open('predict.csv','w...

2018-04-15 22:35:29 1485

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除