- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 Pytorch学习笔记之优化器的使用
torch.optim提供了不同算法实现的优化器,在模型训练时用于更新模型参数。torch.optim.Optimizer为基类,所有的优化器都是该类的子类。优化器使用比较简单,以torch.optim.SGD为例,import torch.nn as nnimport torch.optim as optim model = nn.Sequential(OrderedDict({'linear_1' : nn.Linear(10,30),
2021-01-29 06:16:27
296
原创 Pytorch学习笔记之模型的查看,保存及加载
打印模型当我们写好一个model后,可以通过打印来查看这个model的每一层的模块。class Bottle(nn.Module): def __init__(self, in_channel, out_channel, kernel_size): super(Bottle, self).__init__() self.conv = nn.Conv2d(in_channel, out_channel, kernel_size) self.relu
2021-01-28 06:54:35
1953
1
原创 Pytorch学习笔记之模型的创建
Pytorch中所有模型都是基于Module这个类,也就是说无论是自定义的模型,还是Pytorch中已有的模型,都是这个类的子类,并重写了forward方法。Pytorch中创建模型有几种方法。继承Module这是最直接的方法,自己写一个模型继承Module,并重写forward方法。from torch.nn import Moduleimport torch.nn as nnimport torch.nn.functional as Fclass LinearMoudule(Module)
2021-01-24 03:19:54
345
原创 Pytorch学习笔记之tensor的创建和求导
Tensor的创建在pytorch中使用tensor函数创建张量对象。import torcha = torch.tensor([1,2,3])该函数有一个参数:dtype: 表示数据类型,device: 表示tensor保存的位置,在CPU还是在GPU,requires_grad: 表示该张量是否需要自动求导。import torcha = torch.tensor([1,2,3],dtype=torch.int,device='cuda:0',requires_grad=True)
2021-01-23 14:04:18
810
2
原创 git中出现”the requested upstream branch ‘origin/master‘ does not exist“问题的解决
在使用git上传项目到远程仓库时发现的一个问题,在网上搜索到解决办法后觉得这个问题比较典型,所以写个博客记录下来。问题产生在本地有一个git项目,已经提交到本地仓库,现在想把这个项目上传到远程仓库,于是在github上创建远程仓库,然后使用git branch进行关联,结果报错。解决办法输入命令git pull origin master --allow-unrelated-histories这里会要求你输入用户名密码,然后确认提交信息再输入命令git branch --set-ups
2020-12-17 03:59:22
5424
原创 Git学习使用方法总结(7)
几乎所有版本控制工具都有分支的概念,分支可以将你的手上的工作从主线中分离,避免影响了主线的开发工作。特别适合团队的协同开发。Git的分支操作强大且简单。几个简单的命令就可以实现分支的创建和融合,以及与远程仓库分支的交互。git branch这个命令首先可以查看当前本地仓库的分支。git branch [--all|--list](如果想要看远程仓库的分支,可以使用git remote show origin来查看)创建分支也很简单。git branch <branchname>
2020-08-06 02:41:53
175
原创 Git学习使用方法总结(6)
git的优势体现在分布式存储上,使得每台设备上都可以存储项目仓库。在团队协作中,我们往往将一台服务器作为git远程仓库使用,通过本地仓库与远程仓库的连接互动,来实现高效的团队协作。这也是git的一大优势。git clone这个命令十分常见,当已经存在一个远程git仓库时,如果我们想要把它拷贝到本地上来,就可以使用这个命令。git clone [--recursive] <repository> [<directory>]--recursive参数用于递归拷贝目录,<d
2020-08-04 05:15:52
138
原创 Git学习使用方法总结(5)
继续介绍几个有用的git命令。git rm这个命令顾名思义,用于删除版本控制中的某个文件。git rm tmp.txtgit commit -m"delete tmp.txt"该命令会将仓库及工作目录的文件删除。如果误操作,可在commit之前使用git checkout HEAD -- tmp.txt进行恢复。该命令后面也可以跟目录,使用-r参数可以对目录进行递归删除。git mv该命令用于重命名,移动某个文件,目录或者符号链接。git mv tmp.txt readme.txt就
2020-08-03 02:05:16
139
原创 Git学习使用方法总结(4)
继续分享几个很有用的git 命令。git resetgit reset有两个功能,当git reset 带具体文件名时,则是将某次提交的文件拷贝到暂存区(索引)。比如:git reset HEAD^^ main.c这时候暂存区保存的就是前两次提交的main.c文件的快照。当这个命令不跟文件名时,则表示移动HEAD指针,使用该命令时添加不同参数会对HEAD指针、暂存区(索引)和工作目录产生不同的影响。使用的参数主要是–soft/mixed (default)/hard。下面就通过举例来说明这三个参
2020-08-02 10:52:50
166
原创 Git学习使用方法总结(3)
上次讲到如何将文件保存到git仓库中,这次继续分享一些git文件方面的常见操作。git diff这个命令顾名思义,用于查看文件内容的改动。git diff [file name]命令后面可以添加具体文件名,也可以不添加,不添加时则显示工作区内所有文件的改动。图中文档部分白色代表两者相同的部分,红色-的部分代表暂存区的文件才有的内容,绿色+代表工作区文件才有的内容。使用这个命令时需注意,如果暂存区没有还未提交的文件,那么这个命令比较的是当前工作区和暂存区文件的区别,如果暂存区没有任何文件,则是
2020-08-01 03:15:39
191
原创 Git学习使用方法总结(2)
在前面配置完git参数后,就可以创建本地仓库了,在一个项目文件夹下,输入git init即可创建完成,然后便可以在目录下看到.git文件夹。代表创建成功。在继续之前先了解一下git工作区的概念,git项目阶段有三个区域:工作区(working directory)、暂存区(stage area)和git仓库(.git directory),工作区就是我们看到的项目目录,里面仅包含项目当前版本的文件快照。暂存区是git的一个临时区域,用于保存新添加或者修改但还未提交的文件。仓库则用来保存项目的元数据和对象数
2020-07-31 06:38:22
141
原创 Git学习使用方法总结(1)
git是目前程序员最常使用的分布式版本管理控制系统。它不同于早期的本地版本控制系统和诸如SVN等集中化版本管理系统,在使用git时每台电脑都保存了代码仓库所有的内容以及历史记录,而不仅仅只是当前版本的文件快照。有了git,我们不仅可以在本地保存代码仓库,还可以于远程其他服务器的git仓库进行交互,从而实现团队协作。git上手容易,使用简单,在学习过程中为了方便记忆以及日后查询,所以写了这个系列的博文。下面我将从git的几个常用命令开始。git configgit config命令用于修改配置git运行
2020-07-31 04:44:27
222
原创 Ubuntu安装OpenCV及运行光流法工程项目
最近在做计算机视觉项目时需要或许视频的光流图,于是便在github找了一些现成的项目工程,这些项目工程都是使用C++ OpenCV,所以需要在电脑上安装OpenCV,折腾了很久,也踩了很多坑,这里把安装过程及工程运行过程记录下来,方便以后查阅。Linux gcc环境这个是最基本的,编译需要有gcc编译环境,没有的输入一行命令即可解决。sudo apt install build-essential安装CMakeCMake需要着重说明一下,Ubuntu 16.04自带的CMake版本一般不会超过3
2020-07-28 04:00:57
332
原创 Anaconda在Linux的安装及其使用
最近在学习Python,使用Python的话一般都会用到Anaconda这个Python包和环境管理器,它能方便的创建相互独立的开发环境,并在每个独立的环境中自由的安装卸载软件包。使用起来十分的方便。Anaconda安装在官网上我们找到open source Anaconda Distribution的页面Anaconda下载,然后根据自己电脑的操作系统和Python版本选择相应下载链接即可。...
2020-03-10 10:47:35
439
原创 Linux添加头文件和动态库的搜索路径方法总结
1.添加头文件搜索路径Linux默认头文件搜索路径有本地, /usr/include等,如果头文件在别的路径,就需有添加新的头文件路径。有两种方法,一种是在gcc编译是添加 -I 选项,另一种是将新路径添加进C_INCLUDE_PATH和CPLUS_INCLUDE_PATH环境变量中。比如:gcc -I$(HOME)/MyLibrary/includeexport C_INCLUDE_PAT...
2020-01-26 08:05:13
6933
1
原创 Linux下Deb包管理及APT的使用
Ubuntu和Redhat不同,Ubuntu使用dpdk来进性软件包管理,这里将总结Ubuntu下管理软件包的几个命令的使用方法。dpkg安装一个软件包dpkg -i|--install package_name标题卸载软件包dpkg -r|--remove 软件包名这种发放无法完全清除所有文件,比如一些配置文件等,要更彻底清除软件包,则使用下面的命令。dpkg -P|--purge...
2020-01-26 06:03:03
616
原创 Linux下生成动态共享库的方法
Linux上生成动态库的方法比在Windows平台上简单很多。得益于强大的gcc,只需一步就可以生成共享库。##编写源码
2020-01-24 11:51:47
326
原创 Linux下RPM包管理及YUM的使用
在Linux下软件安装有两种方式,一个是dpkg,主要应用在Debian上;另一个就是RPM,主要由Red Hat公司开发,在Fedora,CentOS等上使用。RPM包是在Linux预先编译过的包,所以无需再编译,安装就比较方便。但是RPM包要求安装环境与编译环境一致,否则将无法安装。RPM包的安装等主要通过rpm命令来实现。rpm包安装rpm -ivh package-namei ...
2019-05-13 15:15:33
294
原创 Linux下修改PATH环境变量的几种常见办法
Linux下得系统环境变量PATH十分重要,通过echo命令可以查询当前PATH变量保存的内容,当我们需要添加新路径到PATH,可以直接在后面追加:export PATH=$PATH:$HOME/bin冒号后面便是我们要添加的路径,不过这个新的PATH变量只对当前终端环境及子终端环境有效,当我们打开一个新的终端是,PATH便变回原来的值。如果想要修改的PATH值一直有效,则需要将修改的PAT...
2018-12-27 13:40:59
760
1
原创 CentOS 7下安装Qt5.11
Qt演化到5.10版本时,安装包已经得到了极大的改善,变得更为精简,方便,将以前不同配置的安装包集合在了一起。在CentOS下安装Qt5.11,首先得确保Linux下已经安装了C++编译器、调试器,make工具以及OpenGL。这些工具安装命令如下:sudo yum groupinstall "C Development Tools and Libraries"sudo yum install...
2018-12-27 11:01:45
3665
原创 Linux系统中的链接文件及ln命令使用
链接文件属于Linux文件类型中的一种,以l开头,作用就类似于Windows下的快捷方式。Linux链接文件有两种,Hard Links和Symbolic Links,即硬链接和符号链接。这两种链接方式的本质区别在于inode处理上。Linux通过文件名对应的inode来访问文件内容。硬链接则将链接文件链接到源文件的inode上,这样链接文件便能访问到原文件内容。并且将其中链接文件或源文件删除后...
2018-12-24 15:04:27
859
原创 Linux编程之strdup和strndup函数
strdup和strndup函数用户复制字符串,函数原型如下:#include &lt;string.h&gt;char* strdup(const char* s);char* strndup(const char* s,size_t n);strdup函数复制字符串s内容,并返回拷贝字符串的首地址。strdup函数内部使用malloc函数对新字符串分配内存,使用完后需要使用free函...
2018-12-12 16:34:19
955
原创 Linux编程之index和rindex函数
在linux编程中,index和rindex函数是两个很有用的字符串处理函数。两个函数原型如下:#include &amp;amp;amp;amp;amp;lt;string.h&amp;amp;amp;amp;amp;gt;char* index(const char* s,int c);char* rindex(const char* s,int c);...
2018-12-08 15:22:04
3822
6
原创 C++11中Lambda表达式之捕获
捕获是指一个lambda表达式将局部变量包含在捕获列表,在捕获列表中的参数则可以被lambda函数体使用。举一个最简单的例子:std::string str(&amp;amp;amp;amp;amp;amp;amp;quot;this is captured value&amp;amp;amp;amp;amp;amp;amp;quot;);auto f = [str] {std::cout &amp;amp;amp;amp;amp;amp;amp;am
2018-12-06 21:42:20
17835
3
原创 C++11的Lambda表达式基本介绍
lambda表达式是一种匿名函数,在Java,C#等高级语言中早有实现。在C++11中把lambda表达式纳入了标准中,lambda表达式是C++的一种可调用对象(callable object),可以像调用普通函数一样使用。对于那种只在一两个地方使用的简单操作,lambda表达式非常有用,如果我们需要在很多地方使用相同的操作,则使用普通函数更好。同样的,如果一个操作包含很多操作,也需要使用函数。...
2018-12-02 21:19:37
893
原创 QtConcurrent系列之run函数创建多线程
在Qt多线程编程中,我们一般使用QThread,QRunnable等类来实现多线程。除此之外,QT还提供了一个更高级的实现多线程的方式,那就是QtConcurrent框架,QtConcurrent框架中提供了许多高级的,性能更好的多线程API函数,这些函数非常方便使用。本文重点介绍QtConcurrent:run函数,使用该函数可以方便的创建一个多线程。 使用QTConcurrent之前,需要...
2018-09-27 11:37:13
1524
原创 C/C++宏常见使用方法总结
宏在C/C++程序中的使用非常普遍,在C/C++的各种框架中,经常可以看到宏的使用。灵活的使用宏可以使代码精简强大,发挥意想不到的作用。 在C/C++编译过程中,宏处理是在预处理阶段进行的。宏的核心思想就是简单替换,下面我将对宏的一些用法进行总结,有不对的地方欢迎指正。 宏一般用预处理指令#defined定义,格式如下: #defined 标识符 替换的标识,其中个替换...
2018-04-29 11:38:28
965
原创 Qt解析保存Json
Json是一种在互联网上常用的轻量级的数据交换格式,具有简洁清晰的层次结构。Json与XML类似,但却比后者更小、更快、更容易解析。目前QT也添加了对Json的支持,首先我们来温习一下Json的语法。Json语法 Json是纯文本类型,这样可以保证其独立于各类语言。在Json中有6中基本数据类型,分别是:布尔型(boolean) 浮点型(double)字符串型(string)数组型(...
2018-04-24 16:33:37
1883
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人