- 博客(31)
- 收藏
- 关注
原创 常用Dos命令
Dos常用命令盘符切换:盘名 + :查看当前文件夹下所有文件(目录):dir跳转:当前盘中跳转:cd + 路径跨盘跳转:cd + /d + 路径跳转到上一级目录:cd …跳转到当前文件夹下的某一文件夹:cd + 文件夹名创建:文件夹:md + 文件夹名文件:md + 文件名(带后缀)删除文件:文件夹:rd + 文件夹名文件:del + 文件名(带后缀)清屏:cls退出终端:exit查看电脑IP:ipconfig打开计算器:calc画图工具:
2022-04-25 14:54:44
157
1
原创 Markdown常用快捷键
Markdown常用快捷键Markdown字体Ctrl + B(**加粗**):加粗Ctrl + I(*斜体*):斜体Ctrl + U:下划线Ctrl+Shift+`(`代码`):代码Alt+Shift+5(~~删除线~~):删除线Ctrl + K:超链接Ctrl+Shift+I:段落Ctrl+Shift+Q :引用此处是引用:引用:引用:引用:引用此处是引用Ctrl + U:表格
2022-04-25 13:55:54
819
原创 关于膨胀卷积
膨胀卷积(空洞卷积)膨胀卷积和普通卷积区别普通卷积:膨胀卷积:增加感受野的几种方式使用更大卷积核通过池化层减小特征图尺寸,从而增大感受野增加网络深度膨胀卷积膨胀卷积优势在哪相比于更大尺寸的卷积核,膨胀卷积的运算量明显更少池化层会减小图像尺寸,从而丢失图像的部分细节,使用膨胀卷积则可以避免网络加深效率很低,要增加更多的网络层,增加很多计算量...
2022-03-16 09:25:27
523
原创 关于转置卷积
转置卷积首先:转置卷积不是卷积的逆运算,转置卷积也是卷积操作,不同的是进行转置卷积后图像尺寸变大而不是变小转置卷积主要用于将图像还原回原本的尺寸如何能做到卷积后图像反而变大?主要通过填充空白像素块来增大被卷积图像的尺寸,在尺寸增大后的新图像上做卷积操作,可以得到比被卷积图像更大的特征图。如图:空白像素填充方式由变量s,p,k控制在输入特征图元素间填充s-1行、列在输入特征图四周填充k-p-1行、列例如:转置卷积运算步骤填充空白像素将下采样所用卷积核上下、左右翻转
2022-03-15 18:03:14
556
原创 Self-Attention(笔记,自用)
Self-AttentionSelf-Attention本文为观看哔哩哔哩up主霹雳吧啦Wz深度学习教程记得笔记,图片为视频截图,自用,侵删。Wq,Wk,Wv所有ai共享q:query,用来match其他aik:key,用于被其他match匹配v:value,从ai当中提取得到的信息将所有ai连接成为一组向量A,则:Q = A*Wq,K = A*Wk,V = A*WvAttention公式Q*KT:用矩阵的计算方法计算全部所有每一组ai和aj的关联度上一步
2022-02-20 22:06:18
706
原创 上采样和下采样(笔记,自用)
上采样和下采样问题:图像分割为什么要采样?传统的方法是在原有的图像上直接进行处理,会保留很多图片的细节,为什么现在的方法要先下采样再上采样,是否多此一举?个人理解:如果像传统方法一样在原图像上对每个像素进行操作,那么会受到图像上面很多噪声的干扰,而下采样则是提取图片特征的手段,在下采样的过程中图片尺寸会越来越小,图片变成类似“热图”一样,这个过程中就将噪声过滤掉了,所以我们需要下采样。下采样过后我们需要输出一个和原本图片相同大小的图片,所以需要上采样才做来恢复图片尺寸。把抽象出来的特征图还原放大。另外
2022-02-20 17:34:34
3926
1
原创 C++STL中string
stringstring其实很像vectorstring s的输出可以直接cout << s;s.append(n,字符)或s.append(字符串):在s字符串末尾添加n个字符或一个字符串#include<bits/stdc++.h>using namespace std;int main(){ string s(10,'#'); cout << s << endl; s.append(3,'*'); s.append("+
2022-02-19 16:36:23
164
原创 C++STL中vector容器
vector容器可以理解为长度可变的数组,数组容量会随着添加和删除动态改变#include<bits/stdc++.h>using namespace std;int main(){ vector<int> a; for(int i = 0;i < 10;i++){ a.push_back(i); cout << " 元素个数:" << a.size() << " 数组容量:" << a.capaci
2022-02-19 16:33:18
145
原创 C++STL中二分查找(笔记,自用)
二分查找前提:二分查找的所有函数必须保证数组有序升序数组lower_bound()函数:**>**目标值的第一个元素upper_bound()函数:**>=**目标值的第一个元素#include<bits/stdc++.h>using namespace std;int main(){ int a[] = {1,2,3,4,5,6,7,8,9}; cout << lower_bound(a,a+10,2) - a << endl; c
2022-02-19 16:30:54
476
2
原创 C++STL中unique函数(笔记,自用)
unique函数该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素,将重复的元素放到容器的末尾,返回值是去重之后的尾地址unique针对的是相邻元素,所以对于数组的去重排序,可以先用srot函数排序,然后用unique函数去重unique函数返回值是**去重之后的尾地址 **#include<bits/stdc++.h>using namespace std;int main(){ int a[10] = {1,5,3,2,2,3,1,3,4,5}; for(in
2022-02-19 16:29:08
521
原创 C++STL中sort函数(笔记,自用)
sort函数#include<bits/stdc++.h> using namespace std;int main(){ int a[10]; for(int i = 1;i < 10;i++){ a[i] = rand() % 100; cout << a[i] << ' '; } cout << endl; sort(a,a+10); for(int i = 1;i < 10;i++){ cout <
2022-02-19 16:24:43
280
原创 关于结构体(笔记,自用)
结构体结构体允许类似定义构造函数的操作,如下:#include<bits/stdc++.h>using namespace std;struct node{ int key; node(int k){ this->key = k; } }; int main(){ node a(999); cout << a.key; return 0;}也可以在构造器中设置默认值using namespace std;struct node{
2022-02-19 16:22:39
139
原创 关于指针(笔记,自用)
比如交换ab两个数的值#include<iostream>using namespace std;int main(){ int a = 1; int b = 2; int c = a; a = b; b = c; cout << a << ' ' << b ; return 0;}如果将交换部分代码封装成函数,放到主函数外,如何实现?#include<iostream>using namespace std
2022-02-19 16:19:04
332
原创 卷积神经网络(笔记,自用)
卷积神经网络(笔记,自用)相对于普通全连接神经网络,卷积神经网络更擅长处理图像问题。主要原因在于全连接神经网络的输入是一个长条的一维向量,我们如果想将图片信息输入,就只能将二维的图像打成一维的长条再输入,这样不仅导致计算量很大,也忽略了图像中像素与像素之间的空间位置关联性。卷积神经网络支持输入二维图像信息,同时滑动窗口的卷积操作也可以很好地保留像素与像素之间的位置关系。卷积神经网络工作原理卷积层如图,设置3*3的卷积核,内部的9个值分别为1,0,1,0,1,0,1,0,1卷积核从左上角起始,
2022-02-19 16:13:39
1351
原创 神经网络基础(笔记,自用)
神经网络基础(笔记,自用)神经元结构n个输入X1 - Xn,分别*各自的权值W1 - Wn后,加和,再加上一个偏置b得到一个数(其实是线性计算)将这个数输入到一个激活函数中,输出一个结果,结果再传递到下一个神经元当中(是一个非线性计算)如上图所示,最终是X1 - Xn做一次线性运算 + 一次非线性运算,最终会得到一个非线性运算的效果。可以想象,如果将一组数据输入一个由成千上万个这样的神经元构成的神经网络,就相当于做很多很多次非线性运算,这些运算就可以近似组成一个非常非常复杂的函数(就跟泰勒展
2022-02-19 16:11:59
454
原创 YOLOv1(训练过程)
YOLOv1训练阶段YOLOv1在训练时,权重朝着什么方向更新呢?上篇文章提到每个grid cell能预测两个bounding box,那么,训练的目的其实是使标签中画出的标准框所属的grid cell,这个grid cell能预测出两个bounding box,我们选择一个和标准框IOU大的bounding box,使它朝着和标准框重合的方向更新梯度,另一个IOU小的bounding box我们使它的置信度尽量小,从而在预测时更容易被淘汰YOLOv1损失函数如下:坐标损失: 包含2项负责检
2021-08-20 00:29:24
1902
原创 YOLOv1(预测过程)
YOLOv1(预测过程)输入:448 * 448 * 3图像输出:7 * 7 * 30 张量具体步骤:输入:一、图向分为7 * 7网格,每个小格称为一个grid cell二、每个grid cell 能预测出如下:2个bounding box,即2个预测框,这B个预测框的中心点都落在生成这个预测框的grid cell里(所以每张图片会生成7 * 7 * 2 = 98个bounding box)对应每种类别的条件概率,即在这个grid cell生成的bounding box框住的是一个物体的前
2021-08-18 00:43:49
2796
3
原创 关于向量范数
关于向量范数1-范数:也就是向量各个元素的绝对值之和。2-范数:也就是向量各个元素的平方和再开方p-范数:上面两个范数的一般形式,也就是向量各个元素绝对值的p次方和 的1/p次幂∞ 范数:也就是向量各个元素绝对值的最大值-∞ 范数:也就是向量各个元素绝对值的最小值...
2021-05-22 20:51:28
512
原创 jupyter notebook文件存储位置
在文件中输入import osprint(os.path.abspath('.'))即可输出文件位置
2021-04-25 22:51:49
449
原创 关于anaconda安装pycocotools出现error: Unable to find vcvarsall.bat错误的解决方法
关于anaconda安装pycocotools出现error: Unable to find vcvarsall.bat错误的解决方法这里我的VS版本是2017这里error: Unable to find vcvarsall.bat这行报错是在python环境下的\Lib\distutils中的_msvccompiler.py文件第120-130左右的一段代码输出的,如下:阅读代码之后发现原因是根据代码中写的方法找不到vcvarsall.bat的位置这就很好办了,我们直接告诉他vcvarsal
2021-04-23 11:46:45
586
3
转载 关于CentOS7设置打开终端快捷键
上角的用户名,选择设置>>键盘>>快捷键,然后点+,名称自己写,命令是"/usr/bin/gnome-terminal",这个是不能改的,再点应用,这时这个快捷键是禁用的,点击禁用,再按下你要的快捷键,就可以用了,注意快捷键要避免冲突。关掉窗口,按下刚刚设置的快捷键,终端打开了。...
2020-08-22 11:54:46
202
原创 Linux常用(一)
普通用户所操作的目录是home目录管理员所操作的目录是root目录软件安装到usr目录/ 代表根目录命令pwd 显示当前目录ls 显示文件列表 ,蓝色是目录,白色是文件ls -a 显示所有文件,包括隐藏文件ls -l 或 ll 显示所有文件及其详细信息cd 目录名 打开目录如果目录名字过长,可以输入前几个字母,按Tab可以提示补全cd … 退回上一级目录cd - 返回上一次工作的目录(注意cd … 和 cd - 的区别)cd / 退回根目录
2020-08-22 11:32:06
152
原创 Linux打包和压缩的区别
打包是指将一大堆文件或目录变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。Linux中的很多压缩程序只能针对一个文件进行压缩,这样当想要压缩很多文件时,需要先将这些文件打包,再进行压缩。...
2020-08-22 11:18:13
746
原创 关于搭建多节点Linux环境
准备CentOS7镜像文件Vmware安装Linux虚拟机1.用VMware安装Linux系统2.这里有个软件选择,点进去在里面的 “开发及生成工作站” 里一些自己用的到的,实在不行就全选3.安装过程中记得设置root密码,用户可以先不创建4.设置用户名,密码配置网络安装好了会发现上不了网,而且ping主机也ping不到,所以需要配置网络1.VMware左侧栏找到对应虚拟机,右键,设置,网络适配器,选择桥接模式,勾选 “复制物理网络连接状态”2.终端输入 “ifconfig
2020-08-14 15:11:39
547
原创 关于VMware设置桥接模式时的“复制物理网络连接状态”选项
移动设备上需要勾选,如果勾选这个选项,主机从在有线网络和无线网络之间切换时,虚拟机的IP地址不变,否则可能会改变
2020-08-11 13:05:04
972
原创 测试利用cmd发送邮件并抓包
1.安装DBMail,SMTP端口设置成252.注册dbmail新用户3.控制面板 -> 程序 -> 启动或关闭Windows功能把Talnet Client勾上4.打开wireshark,点击圈住部分进行抓包5.Win+R打开cmd,输入telnet 127.0.0.1 25,回车6.按照下图进行输入,其中xxx@163.com为发送方,xxx@test.com是在dbmail上新建的用户,为接收方。subject:后面的内容是邮件主题。主题下方空一行之后的是正文。正文
2020-06-17 15:39:32
1108
原创 关于指针
给指针变量赋的值必须是地址常量或变量,不是普通整数(除了0)。如:*p = 100; 就是错的0可以赋值给指针,表示空指针如:*p = 0;表示p为空指针。可以定义void类型的指针,该指针可以被赋予任何类型的对象的地址。如: void *p; int i = 5 ; p = &i ; //合法可以定义指向常量的指针,通过在指针前加const关键字的形式。如:int a ; const int *p = &a ; *p = 1 ; 会报错,因为p是指向常量的指针,所以不能.
2020-05-24 15:26:53
81
转载 关于C++枚举与枚举类
转载地址:https://blog.csdn.net/bruce_0712/article/details/54984371众所周知,C/C++语言可以使用#define和const创建符号常量,而使用enum工具不仅能够创建符号常量,还能定义新的数据类型,但是必须按照一定的规则进行,下面我们一起看下enum的使用方法。(一)枚举量的声明和定义(1)首先,请看下面的语句:enum enumType { Monday, Tuesday, Wednesday, Thursday, Friday, Sa
2020-05-23 14:48:44
852
2
转载 通过指向的指针访问C++类的私有成员
通过指向的指针访问C++类的私有成员C++对象的私有成员是禁止类外的访问的。但是我们仍然可以通过指针访问C++对象的私有成员。#include <iostream>using namespace std;class A{public: A(int i = 0) :m_i(i) {} void print() { cout << "m_i" << this->m_i << end
2020-05-16 11:52:56
2030
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人