- 博客(146)
- 资源 (5)
- 问答 (2)
- 收藏
- 关注

原创 手把手教你 SSM 整合(非常非常非常非常非常详细)
SSM 整合 整合的思路是: Spring管理持久层的mapper。 Spring管理业务层的service,service可以调用mapper接口。Spring进行事物控制。 Spring管理表现层的Handler,handler可以调用service接口。工程创建 创建Maven工程–>create for archtype–>webapp创建项目结...
2019-10-29 09:41:22
30474
22
原创 合并排序-分治策略
基本思想:将待排序元素分成大小大致相同的两个子集合,分别对两个子集合进行排序,最终将排好序的子集合并为要求的排好序的集合时间复杂度:O(nlogn)def merge_Sort(arr, left, right): if left < right: # 不是一个元素时 # 向下递归多层 mid = (left + right) // 2 merge_Sort(arr, left, mid) merge_Sor
2022-01-14 08:30:30
298
原创 单元最短路径
给定带权有向图G-(V ,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其他各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。Dijkstra基本思想:设置顶点集合S,并不断的做贪心选择来扩充集合S运行过程:初始化三个数组,分别是:集合S(初始点0),距离数组(inf),前面点(空)将0的距离标记为0,搜索距离数组中最短的距离,将0加入集合S1.每次从未标记的节点中选择距离出发点最近的节点,标记,收录到最优路径集合中
2022-01-14 08:28:25
625
原创 活动安排问题
尽可能多的活动能兼容的使用公共资源**基本思路:**一个活动的结束时间小于另一个活动的起始时间则两个活动相容。运算过程:从前往后依次遍历,当i的结束时间小于j的开始时间,活动j加入集合,直至全部活动扫描完成。时间复杂度:o(n)def GreedySelector(n, s, f, a): # n 事件总数 # s 事件开始时间 # f 事件结束时间 # a 是否加入事件 a[0] = True j = 0 for i in range
2022-01-14 08:27:34
422
原创 最长公共子序列
最长公共子序列问题:给定两个序列.X= {x1,x2,…xm}和Y{y1,y2,…yn}.找出X和Y的最长公共子序列。子序列:一个给定序列的子序列是该序列中删除若干个元素后得到的序列eg.序列Z{B,C,D,B}是序列X{A,B,C,B,D,A,B} 的子序列,相应的递增下标序列为{2,3,5,7}解题步骤:具有最优子结构性质递归结构c[i][j]={0i,j=0c[i−1][j−1]+1i,j>0;xi=yjmax{c[i][j−1],c[i−1][j]}i,j>0;xi!
2022-01-14 08:24:35
200
原创 布线问题-分支限界法
from collections import dequegrid = [ [0, 0, 1, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 1, 0, 0], [1, 0, 0, 0, 1, 0, 0], [1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0],]def findPath(start, fin
2021-12-21 16:21:31
179
原创 布线问题--分支限界
from collections import dequegrid = [ [0, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 1, 0, 0, 0], [0, 0, 0, 0, 0],]def findPath(start, finish, grid): m, n, newx, newy, l = len(grid), len(grid[0]), 0, 0, 0 # 起始点 ==
2021-12-21 15:18:56
325
原创 旅行售货员--回溯法
在递归算法Backtrack 中,当i=n时,当前扩展结点是排列树的叶结点的父结点。此时算法检测图G是否存在一条从顶点x[n-1]到顶点x[n]的边和一条从顶点x[n]到顶点1的边。如果这两条边都存在,则找到一.条旅行售货员回路。算法还需判断这条回路的费用是否优于已找到的当前最优回路的费用bestc。如果是,则必须更新当前最优值bestc和当前最优解bestx。解空间:排列树时间复杂度:O(n!)matrix = [ [0, 1, 2, 3], [1, 0, 6, 8],.
2021-12-21 14:37:22
872
原创 ResNet 深入理解
ResNet问题一:在反向传播过程中梯度 x > 1 梯度爆炸,梯度x < 1 梯度消失解决方案1.权重初始化2.数据标准化bn3.batch norm问题二:累加Conv后,并不是网络越深,效果越好解决方案1.残差结构残差结构1.左侧的残差结构适用于浅层网络,ResNet342.右侧的残差结构适用于深层网络,ResNet50/101等下采样残差结构针对ResNet34针对ResNet50batch normalization[外链图片
2021-09-15 11:12:34
623
原创 FPN个人理解小结
FPN特征金字塔是目标检测识别系统中的一个基础组件,但是最近深度目标检测器避免使用金字塔的表示方式,部分原因是因为特征金字塔是强计算和强内存的,计算非常昂贵。原有的目标检测算法通常都是只采用顶层特征做检测,原因是网络顶层特征的语义信息比较丰富。然而,虽顶层特征的语义信息丰富,但其中的目标位置信息却比较粗略,不利于目标包围框的准确定位;相反,虽然底层特征的语义信息比较少,但其中目标的位置信息却非常准确。再次背景下,作者利用深度卷积神经网络固有的多尺度、多层级的金字塔结构去构建特征金字塔网络FPN构建
2021-09-10 15:02:52
581
原创 NIN,Googlenet,ResNet具体实现
NIN●无全连接层●交替使用NiN块和步幅为2的最大池化层逐步减小高宽和增大通道数●最后使用全局平均池化层得到输出其输入通道数是类别数三卷121最池,n块,全平均from torch import nndef NIN_block(in_channel, out_channel, kernel_size, stride, padding): return nn.Sequential( nn.Conv2d(in_channel, out_channel, ker
2021-06-16 09:08:27
216
1
原创 LeNet,AlexNet,VGG实现
LeNet5x5 Conv(6),pad 2:意为 5x5的卷积核,输出通道为6,填充为2,由(f-1)/2 == 2可知,为same填充,即输入输出大小不变速记:两卷平,三接class Reshape(torch.nn.Module): def forward(self, x): return x.reshape(-1, 1, 28, 28)net = torch.nn.Sequential( Reshape(), nn.Conv2d(1, 6,
2021-06-16 09:05:53
187
1
原创 pytorch 安装 conda
pytorch 安装1.安装minicoda2.更换国内源# 中科大镜像源conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.ustc.edu.cn/anacond
2021-05-29 20:16:44
260
原创 卷积神经网络之垂直边缘检测
边缘检测假设我们现在又6x6的2d图片,通过一个3x3的滤波器实现边缘检测,计算后的结果是边缘部分高亮(即rgb的值更高)0为灰,-1为黑,大于0为白现有6x6的图片,图像可理解为左白,右灰1010100001010100001010100001010100001010100001010100003x3的滤波器,图像可理解为白灰黑10-110-110-
2021-05-29 10:11:51
1574
原创 深度学习入门
深度学习神经网络:affine(dot,sigmoid) ,softmax,loss激活函数众所周知,用作激活函数的函数最好具有关于原点对称的性质。tanh函数是关于原点(0, 0)对称的S型曲曲线。Sigmoid函数连续,sigmoid函数是关于(x, y)=(0, 0.5)对称的S型曲曲线import numpy as npdef sigmoid(x): return 1/1+np.exp(-x)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
2021-05-28 22:21:24
821
5
原创 JAVA面试
仅供参考!!!Java面试JAVA. JRE (Java Runtime Environment):是Java程序的运行时环境,包含JVM和运行时所需要的核心类库。. JDK (Java Developmeil Kit): 是Java程序开发工具包,包含JRE和开发人员使用的工具。基础知识:关键字(保留字)标识符(变量,常量)数据类型转换自动转换(数据范围由小转大)强制转换(数据范围由大转小)eg:int a = (int)12.5byte/short/char 在进行运算时会先转换为
2021-05-15 08:53:52
327
原创 考研操作系统
仅供参考!!!第一章操作系统特性并发多个任务的同时执行(微观上还是顺序执行)。并行:一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。共享共享是指系统中的资源可以被多个并发进程共同使用。有两种共享方式:互斥共享和同时共享。互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。虚拟虚拟技术把一个物理实体转换为多个逻辑实体。主要有两种虚拟技术:时(时间)分复用技术和空(空间)分复用技术。多个进程能在同一个处理器上并发执行使用
2021-05-15 08:45:22
280
原创 考研计算机网络
概念速率tcp:面向连接,稳定的,有拥塞控制,流量控制,全双工通信,面向字节流udp:面向无连接,尽最大可能进行传输数据,没有拥塞控制,传输报文。网络体系概述七层模型(物链网传会示用):物理层,数据链路层,网络层,传输层,会话层,表示层,应用层五层模型:物理层,数据链路层,网络层,传输层,应用层。四层模型:网络接口层,网络层,传输层,应用层网络性能指标速率:数据的传输速率时延:发送时延+传播时延+排队时延+处理时延时延带宽积:传播时延*带宽往返时间RTT:信息双向交互所需要的
2021-05-15 08:38:31
356
原创 考研数据结构汇总
必背知识点数据结构 是相互之间存在一种或多种特定关系的数据元素的集合数据结构的三要素:逻辑结构,存储结构,数据的运算(定义(逻辑结构的,运算的功能)和实现(物理结构的,运算的具体操作步骤))逻辑结构:数据元素之间的逻辑关系,与数据的存储无关,独立于计算机,线性结构和非线性结构存储结构:数据结构在计算机中的表示顺序存储:逻辑上相邻,物理上也相邻链式存储:逻辑上相邻,物理上可以不相邻索引表:在存储信息时,还需要建立附加的索引表哈希表:根据关键字,直接计算出该元素的存储地址。算法:对特定问题求
2021-05-15 08:36:02
4008
原创 考研数据库理论
语法创建索引 create unique/cluster index table on 属性drop index 索引名create view as (sql查询语句)drop view 视图名ctrate table name(name type);drop table restrict(删除有限制,不能被引用)/cascade(删除无限制,相应依赖和视图都被删除)select * from table 单表查询distinct 消除重复值where 满足条件的元组_ 表示单个字符
2021-05-15 08:29:37
184
原创 软件模型简单对比
瀑布模型:将生命周期中的各个阶段按照顺序执行易于管理,简单,必须明确用户需求,如果某一阶段出现不可控,那么开发周期和成本将大大提高增量模型:每一次的增量都是一个可用的产品,结合了原型模型和瀑布模型的优点d开发成本少,系统承担风险低,减少用户需求的变更如果没有对用户的需求变更进行规划,那么后来的增量可能会不稳定,若后续的增量没有像之前的增量那样考虑,那么增量可能会不稳定,导致增量的重新发布。增量有可能会超过组织的能力原型模型:适用于用户需求不清,经常需要变更需求的情况,当系统不大也不太复杂是,采用该模型较
2021-05-15 08:25:08
98
原创 花呗计算
闲来无事,写一个花呗分期计算器,可以去我的资源里直接下载#include <stdio.h>int main(){ int stage; int end = 1; float money, gapAllP; float gapMP, GAPMPP; //分期还款每期应还本金= 可分期还款本金总额÷分期期数; //分期还款每期手续费 = 可分期还款本金总额×分期总费率÷分期期数; while (end) { p
2021-05-02 14:08:32
520
原创 深度学习实现过程
mini batch从训练集中随机选择指定大小的数据计算梯度为减少mini batch的损失函数的值,求出各个权重参数的梯度更新参数将权重参数沿梯度方向微小跟新重复重复 前三步
2021-04-30 13:42:35
285
原创 gradient descent 梯度下降法
import matplotlib.pyplot as pltimport numpy as np# gradient descent# 全部变量的偏导数汇总而成的向量称为梯度def num_diff(f, x): # 求单变量数值微分(偏导数),差分求导方式 h = 1e-4 grad = np.zeros_like(x) for i in range(x.size): tmp = x[i] # 差分求导 == 求微分 计算公式:
2021-04-29 17:21:05
117
原创 mini batch,cross entorpy error
import numpy as np# cross entropy error mini batch, if t is one hotdef mini_batch_cee(y, t): batch_size = y.shape[0] return -np.sum(t * np.log(y + 1e-7))/batch_size# cross entropy error mini batch, if t is not one hot, is labledef mini_batch
2021-04-29 10:10:22
115
原创 损失函数,mse,cee
import numpy as np# mse,rmse == sqrt(mse) 均方差def mse(y, t): return 0.5 * np.sum((y - t)**2)# cross entropy errordef cee(y, t): return -np.sum(t * np.log(y + 1e-7)) # 1e7防止log(0)出现y = np.array([0.1, 0.2, 0.6, 0.1]) # 模拟神经网络输出t = np.arr
2021-04-28 16:38:58
242
原创 恒等函数,阶跃函数,sigmoid函数,softmax使用及其特点
import matplotlib.pyplot as pltimport numpy as np# 神经网络激活函数# 阶跃函数def step_function(x): return np.array(x > 0, dtype=np.int)# sigmoid函数 --二元分类问题def sigmoid(x): return 1 / (1 + np.exp(-x))# relu函数def ReLU(x): return np.maximum
2021-04-28 10:02:32
527
1
原创 括号匹配
#include <stdio.h>int Collocation(char a[]){ char tmp; char stack[8]; for (int i = 0, j = 0; i < 8; i++) { switch (a[i]) { case '[': stack[j++] = a[i]; break; case '{':
2021-03-16 19:19:30
75
原创 平衡二叉树,二叉排序树的优化
平衡二叉树的插入LL:节点A左孩子的左节点上插入节点。todo:右旋,A左孩子的右子树为A的左孩子RR:节点A右孩子的右节点上插入节点。todo:左旋,A右孩子的左孩子为A的右孩子LR:节点A左孩子的右孩子上插入节点。todo:先左旋转后右旋转,插入点为C,C的左孩子为B,右孩子为A。C的左孩子放到调整后节点的左边下,右孩子放到右边。RL:节点A右孩子的左孩子上插入节点。todo:先右旋后左旋,插入点为C,C的左孩子为A,右孩子为B。C的左孩子放到调整后节点的左边下,右孩子放到右边。..
2021-03-11 13:13:30
195
原创 图的存储结构(邻接矩阵,邻接表,广度优先,深度优先)
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>//邻接矩阵#define Max_Size 100typedef int VertexType;typedef int EdgeType;typdef struct{ VertexType vert[Max_Size]; EdgeType edge[Max_Size][Max_S
2021-03-08 12:14:33
281
原创 判断是否是最小堆
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>int IsSmallHeap(int x[], int n){ int i, c1, c2; for (i = 0; i < n / 2; i++) { c1 = i * 2 + 1; c2 = 2 * i + 2; if (
2021-03-07 15:39:39
276
原创 归并排序
void MergeSort(int a[],int low,int high){ if(low<high){ int mid = (low + high)/2; MergeSort(a,low,mid); MergeSort(a,mid+1,high); Merge(a,low,mid,high); }}int *b = (int *)malloc(sizeof(int) * (n+1));void Merge(.
2021-03-07 11:51:46
83
原创 奇数在前,偶数在后,时间复杂度,空间复杂度最小
int method(int x[], int n){ int low = 0, high = n - 1; while (low < high) { while (x[high] % 2 != 0) high--; while (x[low] % 2 != 1) { low++; } if (low < high) {
2021-03-07 09:45:50
237
原创 双向冒泡排序
int double_bubble(int x[], int n){ int i, low = 0, high = n - 1; int flag = 1; while (low < high && flag) { for (i = low; i < high; i++) { if (x[i] > x[i + 1]) { swap
2021-03-07 09:36:25
83
原创 在数组中找出第K个最小值
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>int K_Search(int x[], int n, int k){ int i, j, flag; for (i = 0; i < n - 1; i++) { flag = 0; for (j = n - 1; j >= i; j-
2021-03-07 09:04:46
175
原创 二维数组删除重复元素
let t=[[1,3,5],[1,2,4],[2,6,5],[1,3,5]];let x = [];let q = [];let k=0,w=0;//转换为一维数组for(let i=0;i<t.length;i++){ for(let j = 0;j<t[i].length;j++){ x[k++]= t[i][j]; }}console.log(x);//删除重复元素,将出现的重复元素加入数组for(let i=0;i<x.length;i++
2021-03-06 19:59:48
854
原创 折半查找,递归非递归
int halfSearch(Seqlist list, int key){ int low = 0, mid, high = list.len - 1; while (low <= high) { mid = high / 2; if (list.elem[mid] == key) { return mid; } else if (key > list.elem[m
2021-03-04 10:00:31
113
1
原创 输出二叉树中大于x的所以值,由大到小
typedef struct node{ int data; struct node *lc, *rc;} LNode, *BiTree;LNode *p = NULL;void printValue(BiTree b, int x){ if (b == NULL) { return; } if (b->rc != NULL) { printValue(b->rc, x); } if
2021-03-03 11:04:29
1116
原创 查找二叉树中x的值在第几层,非递归
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>typedef struct node{ int data; struct node *lc, *rc;} LNode, *BiTree;int findLevel(BiTree b, int x){ int n = 0; if (b != NULL) {
2021-03-03 10:49:00
259
原创 判断二叉树是否为有序二叉树
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>typedef struct node{ int data; struct node *lc, *rc;} LNode, *BiTree;int preData = -9999;int isBst(BiTree b){ int b1, b2; if (b == NU
2021-03-03 10:39:47
1172
Country.mmdb
2020-03-21
PHPWord中文手册.docx
2019-06-11
DoucliUnlock
2019-03-12
深度学习-图片分类-数据预处理
2021-06-23
求解密,Md5,aes-256-cbc
2020-04-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人