- 博客(39)
- 收藏
- 关注
原创 与二叉树相关的程序题
一、二叉树的中序遍历/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */class Solution {public: void prefind(TreeNode* root, vector<int> &an
2022-05-08 20:02:21
706
原创 3_ACM_字符串排序
一、题目描述二、代码实现思路:将每次输入的单词放到vector容器之中,并将其进行sort排序#include<iostream>#include<map>#include<algorithm>#include<vector>using namespace std;int main(){ int n;cin>>n; vector<string> ans; while(n--) {
2022-04-19 14:25:12
251
原创 2_ACM_合并记录表(map)
一、题目描述二、解题思路1、使用“map”的思路对于输入的记录对(a,b),找到键值a对应的值,并在其上面加上b2、实现代码using namespace std;int main(){ int n;cin>>n; map<int,int> num; while(n--) { int a,b; cin>>a>>b; num[a]+=b; } for(auto it=
2022-04-19 11:02:59
216
原创 将Mathtype中间的公式按LaTeX的格式复制
1、选择工具栏的“预置”按钮2、选择其中的“剪切和复制预置”3、将“剪切和复制预置”的设置为如下图所示 最后,在Mathtype中选中你需要复制的公式,Ctrl+C就可以了。等会粘贴出来就是以LaTeX代码形式的公式表达了。...
2022-03-04 15:26:00
2925
原创 [Overleaf] LaTeX中的斜体、加粗、下划线和简单指令
[Overleaf] LaTeX中的部分使用技巧1、斜体使用 \textit 指令it is an \textit{apple}.运行结果:2、字体加粗使用 \textbf 指令,或者使用 Ctrl+Bit is an \textbf{apple}.运行结果:3、下划线使用 \underline 指令it is an \underline{apple}.运行结果:4、其他简单指令换行 "\\"换行且下行缩进 "\par"段落顶行 "\noinden
2022-02-08 20:04:33
24054
原创 apex——安装方式和避免踩坑
背景:这个库的安装不是像其他的一样的直接使用 pip install XXX的形式,而是使用原始的Git方式1、apex这是NVIDIA开发的基于PyTorch的混合精度训练加速神器,能够增加运算速度,并且减少显存的占用2、安装步骤1、git clone https://github.com/NVIDIA/apex.git2、cd apex3、pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--
2022-01-21 17:18:39
7436
8
原创 RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is Fal
错误描述:这是由于在数据加载的过程中使用了GPU修改方式:修改前位置:torch.load(model)修改后结果:torch.load(model, map_location='cpu')我的代码中修改后的样子:
2022-01-21 17:01:13
1253
转载 论文整体架构和顺序
一、写作建议顺序及注意事项1、 提炼motivationMotivation是重中之重,intro和abstract都基于此最重要的Motivation往往只有一点即可,全文都围绕着一个最尖锐的问题,然后motivation就是基于该最尖锐的问题衍生而来2、 题目关键字提炼题目关键字非常重要,题目的关键字也就是全文的关键字,abstract和intro等都会基于该关键字来展开描述3、 写abstract以1~2个主要矛盾为引导,有力的指出现状中存在的问题,逻辑过度要柔和,不能太生硬4、 写i
2022-01-19 09:31:24
563
原创 ValueError:Expected more than 1 value per channel when training,got input size torch.size([])
首先,遇到的错误是:ValueError:Expected more than 1 value per channel when training…解决方式:1、复制问题,百度。在博客上找到了很多的相关处理方式,大部分都是认为这是一个训练和测试时通道不一致的问题。但是,我仔细检查了我的网络构造,我觉得在这个方面好像没啥问题。2、带着疑问,继续百度。最后,终于发现了问题所在——“在网络训练过程中,我们的batchsize(例如3)的设置,会将数据集(例如10)平均分开。但如若数据集的总数量,不能整.
2021-12-24 15:37:05
1860
原创 制作数据集中的对应图像下标的txt文件
制作数据集中的对应图像下标的txt文件背景:最近在复现模型结果时,需要存在某一数据集【记为:数据集A】的txt文件。因为,只有存在txt文件,才能遍历整个数据集中的图像。1、整体思路:通过使用函数得到数据集A中所有的图像,同时打开一个txt文件,然后在遍历图像的过程中,将图像的名称写入该txt文件之中。2、代码实现import osimport random img_savepath = 'import osimport random img_savepath = '/storage/A
2021-12-21 13:34:58
475
原创 如何在Visio中插入公式符号
在Visio中插入公式符号背景:最近在写论文,在Visio画图时需要插入一些公式,方便更好的表达。但是,找了好半天都没能看到类似Word中一样的公式选择区域。所以,第一次使用的时候就是从Word中进行截图的方式,然后粘贴到Visio之中。就是这样,,,,,,,被老板狠狠嘲笑了一波[苦涩]。1、在Visio遇到内部错误3400操作:菜单栏插入-对象-Microsoft 公式 3.0遇到错误:内部错误3400原因:Visio不提供插入该对象2、“曲线救国”——另找方法方法:菜单栏插入-对象-O
2021-11-27 11:19:12
8898
4
原创 如何在Word文档中制作三线表
在Word文档中制作三线表背景:最近在写论文,在制作数据对比表时遇到了科研论文中常规的三线表的制作问题。主要是表格模板中没有,然后需要自己动手制作。虽然,是一个简单的问题,也想记录一下,防止困扰到一些撰写论文入门的人。1、首先在Word文旦中创建一个表格方法:菜单栏选择插入-表格2、调整表格内容的对齐方式-------中对齐方法:菜单栏表格工具-布局3、去除表格中的所有线方法:菜单栏表格工具-表设计-边框-无框线效果图:4、添加三线表中的上下框线方法:菜单栏表单工具-表设计-边框-
2021-11-26 20:43:20
4772
原创 根据txt文件中图像名称,将图像复制到另一个文件夹中
根据txt文件中图像名称,将图像复制到另一个文件夹中1、txt文件构造tuxiang.txt文件中是每一个图像的名称2、构建新文件夹名称在文件路径下新建一个存放图像复制后的文件名称3、详细代码import shutilimport numpy as npdata = []for line in open("tuxiang.txt", "r"): data.append(line)# print(data) # data中得到了txt文件的所有图像的名称for a i
2021-11-24 14:37:31
680
原创 Pytorch中的model.modules()和model.children()的区别
Pytorch中的model.modules()和model.children()的区别背景:最近在做网络模型中可视化的过程中,需要将网络结构中的某一层的特征进行输出。所以就遇到了这个问题,小小记录一下。重要点首先,model.modules()和model.children()均是迭代器。前者会遍历model中所有子层,而后者仅会遍历当前层。【我认为这个用树的构造比较好理解】。#针对[[1,2],3]的遍历结果## 1、model.modules()是把网络结构中所有组成的可能性都进行输出[[
2021-11-22 10:51:14
1726
原创 ModuleList和Sequential在Pytorch中的区别
ModuleList和Sequential在Pytorch中的区别一、分别简述1、nn.Sequential它里面的模块是按照顺序进行排列的,所以需要保证前一个模块的输出大小和下一个模块的输入大小一致。2、nn.ModuleList它是一个容器,可以储存不同的module,并将每个module添加到网络之中。类比认识的话,他就像是Python中常用到的list一样,就是一些放入和移除的操作。【特别注意:nn.ModuleList可以将module的所有Parameters放入网络之中】class
2021-11-22 09:59:31
904
原创 常见库的安装方式
python中安装库:一、安装yacs库功能:用于定义和管理系统配置,比如那些通常可以在为科学实验设计的软件中找到的配置。这些“配置”通常包括用于训练机器学习模型的超参数安装命令:conda instll yacs二、安装skimage库功能:包含大量处理图片的函数库安装命令:conda instll scikit-imagey注意:不能直接使用conda install skimage,会出现找不到库的情况。三、安装torchvision库功能:主要针对于流行的数据集、模型架构和常见
2021-11-18 16:18:57
1344
原创 上采样之反卷积
上采样(Upsample)实现feature map由小分辨率到大分辨率映射的操作上采样常见有三种方法:(1)双线性插值(bilinear);(2)反卷积(Transposed Convolution);(3)反池化(Unpooling)。反卷积(Transposed Convolution)反卷积是一种特殊的正向卷积,先按照一定比例通过补0来扩大输入图像尺寸,然后旋转卷积核,进行正向卷积。反卷积不是一个预先定义好的插值方式,有一些可以学习的参数(learnable parameters)。应用场
2021-10-06 19:48:54
731
原创 pytroch网络训练中断后,根据断点再次训练!!!
训练集较大,训练过程需要时间过长,但是我们集群环境超级不稳定。常常,训练到部分,又得重新开始训练。
2021-09-14 19:31:30
5466
5
原创 pytorch损失函数详解
目录nn.L1lossnn.CrossEntropyLossnn.MSELossnn.BCELossnn.L1loss:两者绝对值作差,然后求和平均loss(x,y)=1/n∑ \sum∑ |x_i-y_i|crite = torch.nn.L1Loss()loss = crite(output, target)nn.CrossEntropyLoss:这是交叉熵损失函数,常用于分类函数。主要是判断实际输出与期望输出的接近程度。熵: 是用来衡量混乱程度的表示,代表一个样本中信息量的
2021-09-14 11:03:07
351
原创 pytorch常用函数
1、torch.where()参数格式:torch.where(condition, x, y)condition:条件x,y: 是同shape的矩阵函数功能: 针对矩阵中的某个位置的元素,满足条件就返回x,不满足就返回y2、torch.eq(a, b)比较两个矩阵中所有对应位置的元素是否相同3、tensor.gt(a, b)逐元素比较大小(严格大于),a和b为相同size的tensor>>> import torch>>> a=torch.ran
2021-09-13 11:02:59
316
转载 model.train()与model.eval()的用法、Dropout原理、relu,sigmiod,tanh激活函数、nn.Linear浅析
转载:原文地址-传送门1.model.train()与model.eval()的用法看别人的面经时,浏览到一题,问的就是这个。自己刚接触pytorch时套用别人的框架,会在训练开始之前写上model.trian(),在测试时写上model.eval()。然后自己写的时候也就保留了这个习惯,没有去想其中原因。在经过一番查阅之后,总结如下:如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model.train(),在测试时添加model.eval()。其中m
2021-08-23 20:22:43
1019
原创 Pytorch中对于模型的参数量和计算量的统计
背景:接前面的想法,安装thop第三方库后,就要利用它来进行模型参数量和计算量啦!!!!1、安装Thop哈哈哈哈,这一步我就不在这里赘述了,大家可以去看看我的另一篇博客。传送门-------》thop安装避坑,点击即达2、代码使用1)直接输出import thopfrom thop import profile# 定义好的网络模型input = torch.randn(1, 3, 224, 224)flops, params = profile(Model,inputs=(input,.
2021-08-12 15:18:11
993
原创 python中对thop安装问题
背景:自己网络模型的结果不是特别好,然后就想多路径出发。从模型参数和处理速度上去与其他模型进行对比,尝试去找到我的模型存在的必要性。故:接触了thop这个第三方安装库,狠狠的踩了一个雷。今天记录一下,也避免大家重复踩雷。thop的安装问题在python中安装过第三方库的小伙伴都知道,它的安装命令是:pip install XXX。然而针对Thop的安装却有一个大坑。1)直接使用常用命令pip install thop它会默认安装0.0.31.post2005241907的版本。由于我.
2021-08-12 14:52:05
29335
24
原创 Pytorch中的model.train()和model.eval()——虽小但不能忽略
背景【可以忽略】最近,我花了一个月的时间在解决这样一个问题——“在代码的Train部分,每个一个epoch结束,我会使用第三方的数据集【例如:SOD数据集】进行test。而在代码的Test部分,我加载Train得到的模型权重,然后在对同一个第三方数据集进行test。两者结果不一致!!!!!”都说数据是不会骗人的,所以肯定是我的原因造成的。我从代码的加载,预训练。。。。。整个流程进行了一一排查,发现结果竟是因为这个。。。。。。。。。。。。。。。。。model.train()和model.eval()m
2021-08-03 10:26:17
729
原创 vscode好用插件——磨刀不误砍柴工!
1、vscode-icons这个插件给我们在vscode中对于文件类型图标的显示,会让我们对文件类型有个更好的主观上的区分。具体显示如下图所示。2、Better Comment这个插件我也超级喜欢。因为有时候在代码之中,我们会进行很多的注释。但是这些注释颜色的显示都是一致的,并不能区分其“轻重缓急”。对不同类型的注释会附加不同的颜色,更加方便区分!,如下(主要使用!、?、TODO区分):如下图所示。3、Bracket Pair Colorizer这个插件是用来给python代
2021-07-31 22:02:00
201
原创 解决Visio中的交叉线的措施
1、Visio中连接线出现交叉的情况直接使用连接线来进行模型的数据流的传递时,我们经常会碰到这样的情况。但是,这些交叉线是必要的。故我们尝试使其在交叉时不出现突兀状态。2、修改方式1)找到Visio栏中的设计–连接线2)取消显示跨线的√选项,即可3、结果...
2021-06-25 15:04:41
11752
原创 .theanorc文件配置问题——AbstractConv2d theano optimization failed
在复现别人的代码,自己搭指定环境中,遇到了这样的一个问题。因为这是我第一次以Keras和Theano作为后端的代码,所以遇到了阻碍,但是好在经过了两天的搜索,终于解决了,开心!遇到的问题是:出现的原因:是因为该程序是使用了Theano作为后端,但是它没有找到它的默认配置指令。解决方法:1、找到自己电脑的home目录之下,添加配置指令。2、新建一个.theanotc文件【开始搜索了很多资料说,是添加一个.theanotc.txt文件,但是在我自己的过程中,还是得去掉后面的.txt的后缀才能得以运
2021-04-18 17:13:03
381
原创 multiset的使用------计算数组中的重复元素数目
大概题目的述说:给定输入一个指定长度的数组,然后输入一个指定的元素,输出该数组中包含该元素的数值。样例显示:代码思想:简单题目,直接利用一个stl中间的multiset函数即可。#include<iostream>#include<set> using namespace std;multiset<int> s;int num[10100];int main(){ int x,n,k; cin>>n; for(int i=0;i&
2021-04-02 19:03:53
442
原创 图片的侵蚀cv2.erode()和膨胀cv2.dilate()操作
图片的侵蚀和膨胀操作这是cv2中的两个针对图片的简单操作、处理,分别对应函数cv2.erode和cv2.dilate.cv2.erode()腐蚀将前景物体变小,理解成将图像断开裂缝变大cv2.dilate()膨胀cv2.dilate()膨胀:将前景物体变大,理解成将图像断开裂缝变小import cv2 image = cv2.imread(r"23080.jpg")gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)#cv2.imshow("Gra
2021-03-29 09:35:52
3287
原创 ANCONDA+Pytorch在win10环境安装教程
@[TOC]环境搭建首先先安装一个ANCONDAANCONDA是一个简单直接的python安装,直接去官网下载最新版本。我前几天下的时候是3.8的python版本了,图形next傻瓜式操作,贼简单。只是在中间有一步时,需要勾选环境变量修改的选项(就不用自己去修改了,方便很多)2、在ANCONDA中新建一个环境,并在此环境下安装pytroch我是新建了一个py1_2的环境,中间的python版本号为3.6然后就是去pytroch的官网复制、选择你想要安装的版本对应的命令然后,就安装好了,加油
2021-03-17 19:31:24
143
原创 IoU Loss了解总结
IOU Loss前言 :IOU主要是作为目标检测领域的指标。即为:检测目标和GT目标的交集(Intersection) / 检测目标和GT目标的并集(Union)但是,IOU并不能精确的表示两个框的中和度,如下图中,三者的IOU值相等,但是它们的回归效果并不一致。左边回归效果最好,右边最差。所以,随之产生了很多IOU Loss的改进方法,下列进行部分说明:一、GIoU Loss(Generalized Intersection over Union)公式为:C指的是,能够将预测框和gt框最小
2021-03-02 20:42:39
1047
1
原创 RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is Fal
报错信息报错原因开始遇到这个问题是真的有点懵,因为这是到了最后一个test.py的文件了,但是确不能跑通。查了很多博客,终于站在巨人的肩膀上,找到了原因!!!原来的代码模型是使用的多个GPU进行训练的,而当我实现时,只使用了一个,所以报错。原本代码:torch.load(self.cfg.snapshot)修改代码:torch.load(self.cfg.snapshot,map_location = 'cpu' )...
2021-03-02 17:07:43
1195
原创 胶囊网络(Capsule Network)
胶囊网络有意思的解析1、传统的CNN2、胶囊2.1 向量神经元和标量神经元(普通人工神经元)对比2.2 工作原理2.3 动态路由1、传统的CNNCNN中包含一个很重要的概念——池化(pooling)。它的作用是逐渐减低数据的尺寸,减少网络中参数的数量,从而使得计算资源消耗减少、网络收敛加速学习,还会有效控制过拟合。但是,这也使CNN网络包含极大的缺陷。Capsule的提出者Hinton就认为池化在CNN中的好效果是个大错误甚至灾难。池化,这一过程中包含了一个滤波器来减低尺度,但是这会导致重要的信息丢
2021-03-02 16:11:51
4139
原创 add_scalar和add_scalars函数
add_scalar和add_scalars这两个函数是用来保存程序中的数据,然后利用tensorboard工具来进行可视化的。add_scalar sw.add_scalar('lr' , optimizer.param_groups[0]['lr'], global_step=global_step)这行代码的含义就是利用add_scalar函数来生成一个“lr”名称的二维函数,横轴X值为“optimizer.param_groups[0][‘lr’]”,纵轴Y值为global_step。
2021-02-20 10:54:51
6277
3
原创 torch.nn.functional中的interpolate插值函数
今年是农历牛年第一天,在家的生活不快乐,那边博客学习叭。interpolate函数def forward(self, input1, input2=[0,0,0,0]): out0 = F.relu(self.bn0(self.conv0(input1[0]+input2[0])), inplace=True) out0 = F.interpolate(out0, size=input1[1].size()[2:], mode='bilinear') ou
2021-02-12 13:30:14
3129
转载 __call__、__init__和 forward三个函数在python中的调用方法
这三个函数包括了Python中特有的重载函数,以及神经网络中向前传播的重要函数。这是我看到的比较清楚的说明Python中这三个函数功能的博客。转载地址:博客引入来源init: 类的初始化函数,类似于c++的构造函数call_: 使得类对象具有类似函数的功能。__init__比较好理解,现在主要看一下 __call__的功能示例:class A():def call(self):print(‘i can be called like a function’)a = A()a()out:i
2021-02-11 08:59:24
3097
原创 Spatially Attentive Output Layer for Image Classification论文阅读
@Spatially Attentive Output Layer for Image Classification论文阅读笔记目录1、论文思想2、框架实现3、损失设计4、文章总结写在前面的话:这是一篇来自于2020年CVPR的一篇文章,虽然它的引用量不是特别的高,但是这篇文章的角度比较让我感兴趣。起初是想借鉴其最后的一个分类的思想来进行其他领域的一个思想共用,读完以后,还是增加了自己的学识范围的。1、论文思想初涉CV领域的小伙伴应该都有对Mnist手写数据集有所了解,会尝试在这个小型数据集
2021-02-10 10:55:23
270
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人