自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (4)
  • 收藏
  • 关注

原创 设计模式--总结和对比

设计模式目的框架源码工厂方法模式(Factory Method)封装创建细节单例模式(Singleton)保证独一无二原型模式(Prototype)高效创建对象建造者模式(Builder)开放个性配置步骤代理模式(Proxy)增强职责门面模式(Facade)统一访问入口装饰者模式(Decorator)灵活扩展,同宗同源享元模式(Flyweight)共享资源池组合模式(Composite)统一整体和个体适配器模式(Adaoter)兼容转换桥接模式(Bridge)

2024-02-26 23:08:58 1131

原创 设计模式--策略模式和责任链模式

责任链模式(Chain of Responsibility Pattern)是将链中每一个节点看作是一个对象,每个节点处理的请求不同,且内部自动维护一个下一节点对象。策略模式(Strategy Pattern)又叫做政策模式,它是将定义的算法家族、分别包装起来,让它们之间可以相互替换,从而让算法的变化不会影响到使用算法的用户。责任链模式主要是解耦了请求与处理,客户只需要将请求发送到链上即可,无需关心请求的具体内容和处理细节,请求会自动进行传递直至有节点对象进行处理。

2024-02-26 21:58:21 532

原创 设计模式--委派模式与模板方法模式

它的基本作用就是负责任务的调用和分配任务,是一种特殊的静态代理,可以理解为全权代理,但是代理模式注重过程,而委派模式注重结果。模板方法模式实际上是封装了一个固定流程,该流程由几个步骤组成,具体步骤可以由子类进行不同实现,从而让固定的流程产生不同的结果。优点:通过任务委派能够将一个大型的任务细化,然后通过同一管理这些子任务的完成情况实现任务的跟进,能够加快任务执行的效率。缺点:任务委派方式需要根据任务的复杂程度进行不同的改变,在任务比较复杂的情况下可能需要进行多重委派,容易造成混乱。

2024-02-26 16:46:17 633

原创 设计模式--享元模式和组合模式

其宗旨是共享细粒度对象,将多个对同一对象的访问集中起来,不必为每个访问者创建一个单独的对象,以此来降低内存的消耗,属于结构型模式。透明组合模式的写法:透明组合模式把所有的公共方法都定义在Component中,这样做的好处是客户端无需分辨是叶子节点和树枝节点,它们具备完全一致性的接口;组合模式(Composite Pattern)也称为整体-部分模式,它的宗旨是通过将单个对象和组合对象用相同的接口进行表示,使得客户对单个对象和组合对象的使用具有一致性,属于结构型模式。

2024-02-26 00:19:03 671

原创 设计模式--适配器模式桥接模式

适配器模式又叫做变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法一起工作的两个类能够一起工作,属于结构型设计模式。适配器模式有3种形式:类适配器、对象适配器、接口适配器。

2024-02-25 19:36:45 546

原创 设计模式--代理模式

代理模式(Proxy Pattern)是指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型模式。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式分为静态代理和动态代理。使用代理模式的主要目的是:保护目标对象;增强目标对象。代理模式的通用写法。

2024-02-23 17:09:52 1116

原创 设计模式--原型模式和建造者模式

建造者模式(Builder Pattern)是将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示,属于创建型模式。然而,复制后的克隆对象是的成员复制的不是值,而是引用的地址。上面的复制过程是我们自己完成的,另外,JDK已经帮我们实现了一个现成的API,我们只需要实现Cloneable接口即可。2、创建对象的力度不同,建造者模式创建复杂的对象,由各种复杂的部件组成,工厂模式创建出来的都一样。2、克隆方法位于类的内部,当对已有的类进行改造的时候,需要修改代码,违反了开闭原则。

2024-02-22 18:35:02 909

原创 设计模式--单例模式

单例模式可以保证内存里只有一个实例,减少了内存的开销,还可以避免对资源的多重占用。

2024-02-22 13:05:20 1271

原创 设计模式--工厂模式

以上代码,父类ICourse指向子类JavaCourse的引用,应用层代码需要依赖JavaCourse,如果业务扩展,继续增加PythonCourse甚至更多,那么我们的客户端的依赖会变得越来越臃肿。需要提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖具体实现。是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。

2024-02-21 15:53:25 646

原创 idea --Git Commit Template插件

Git Commit Template是一款免费的IntelliJ IDEA插件,用于提供Git提交模板。ci 持续集成方面的更改。feat 功能feature的意思,也是最常用的。当你的功能有变更的时候,都可以采用这种类型的type。指的是代码结构的调整,比如使用了一些设计模式重新组织了代码。build 影响编译的一些更改,比如更改了maven插件、增加了npm的过程等。style 代码格式调整,比如执行了format、更改了tab显示等。test 这个简单,就是增加了单元测试和自动化相关的代码。

2023-08-29 14:18:07 1627

原创 Apollo安装与配置使用

Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于和开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

2023-08-28 14:31:28 1152

原创 idea2023--maven配置和命令

Maven是一个Java项目管理和构建工具,它可以定义项目结构、项目依赖,并使用统一的方式进行自动化构建,是Java项目不可缺少的工具。Maven不但有标准化的项目结构,而且还有一套标准化的构建流程,可以自动化实现编译,打包,发布,等等。Maven可以有效地管理多个模块,我们只需要把每个模块当作一个独立的Maven项目,它们有各自独立的。maven可以解决版本依赖问题,自己的项目需要一个包时,会自动导入改包的依赖包。这些就是一个Maven项目的标准目录结构。,存放测试源码的目录是。,存放测试资源的目录是。

2023-08-16 14:40:37 1605 1

原创 git 命令

在master分支上修复了bug后,我们要想一想,dev分支是早期从master分支分出来的,所以,这个bug其实在当前dev分支上也存在。使用 git commit告诉Git,把文件提交到仓库(-m,后面输入的是本次提交的说明,一种是已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;命令,把bug提交的修改“复制”到当前分支,避免重复劳动。分支是不稳定的,到某个时候,比如1.0版本发布时,再把。

2023-08-10 14:03:05 89

原创 Java开发面试专题

JAVA面试题

2022-10-07 00:15:41 448 1

原创 数据结构--求某点到所有点最小的距离,题目变种(糖果传递,士兵)

给你一组点的位置,求某个位置到所有点的距离最小是多少,最小值就是(所有点到其中位数的距离之和), 122. 糖果传递 - AcWing题库有 n个小朋友坐成一圈,每人有 a[i]个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为 1。求使所有人获得均等糖果的最小代价。输入格式第一行输入一个正整数 nn,表示小朋友的个数。接下来 nn 行,每行一个整数 a[i]a[i],表示第 ii 个小朋友初始得到的糖果的颗数。输出格式输出一个整数,表示最小代价。数据范围1≤n≤10000001≤

2022-08-07 22:27:51 693

原创 自监督模型---MoCoV3

摘要本文没有描述一种新的方法。相反,考虑到计算机视觉的进展,它研究了一个直接的、增量的、但必须知道的基线:视觉变压器(ViT)的自我监督学习。虽然标准卷积网络的训练配方已经高度成熟和健壮,但ViT的配方还没有构建,特别是在训练变得更具挑战性的自我监督场景中。在这项工作中,我们回到基本知识,并调查几个基本组件对训练自我监督ViT的影响。我们观察到,不稳定性是降低准确性的一个主要问题,而且它可以被明显好的结果所掩盖。我们发现,这些结果确实是部分失败的,当训练更加稳定时,它们可以得到改善。我们在MoCov3和

2022-03-31 16:07:03 8606

原创 自监督模型---MoCov2

摘要文中通过在MoCo框架中实现SimCLR的两个设计改进来验证它们的有效性。通过对MoCo进行简单的修改——即使用MLP投影头和更多的数据增强——我们建立了更强的基线,优于SimCLR,并且不需要大规模的训练批次。介绍最近关于从图像中学习无监督表示的研究正集中在一个被称为对比学习的中心概念上。结果是有希望的:例如,动量对比(MoCo)表明,无监督预训练可以在多个检测和分割任务中超过其图像监督的预训练,而SimCLR进一步减少了无监督和监督预训练表示之间的线性分类器性能差距。我们报告了在Si

2022-03-30 15:51:08 8913

原创 在windows上Docker安装与简单使用

1.安装DockerDocker Desktop 是 Docker 在 Windows 10 和 macOS 操作系统上的官方安装方式。Docker Desktop 官方下载地址:Docker Desktop - Docker安装中的选项默认直接下一步直到安装完成即可。如果报错提示“WSL”,下安装一下WSL(WSL是Windows下的Linux子系统)即可(下载地址:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_up

2022-03-30 12:56:45 9080

原创 数据结构---如何判定链表是否有环

当链表存在环时,通过直接遍历链表无法知道是否存在环。假设我们可以修改链表结构的话,可以在链表里加入访问的标记,当下一个节点已经被访问过就说明存在环。方法一、穷举遍历首先从头节点开始,依次遍历单链表的每一个节点。每遍历到一个新节点,就从头节点重新遍历新节点之前的所有节点,用新节点ID和此节点之前所有节点ID(即重新遍历len-1步)依次作比较。如果发现新节点之前的所有节点当中存在相同节点ID,则说明该节点被遍历过两次,链表有环;如果之前的所有节点当中不存在相同的节点,就继续遍历下一个新节点,继..

2022-03-29 23:34:36 7255

原创 RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle)`

这个报错出现在计算loss的时候,代码原先是正常的。我尝试了很多方法,我把cuda换成在cpu上跑,就正常运行了。原因是显存不够造成的,可以尝试把batch改小或者imagesize改小。

2022-03-29 21:07:12 545

原创 数据结构--线段树

什么是线段树?线段树是一种二叉树,广义上也被归类为二叉搜索树。与区间树类似,将一个区间划分成一些单元区间,每个单元区间(区间长度为1)对应线段树中的一个叶结点。对于区间的修改、维护和查询时间复杂度为O(logN)级别,实际应用时一般还要开4N的数组以免越界。线段树的局限性:必须符合区间加法。区间加法是指对于[l,r]的区间,它的答案可以由[l,m]和[m+1,r]的答案合并求出。符合区间加法的例子: 区间之和——总区间之和 = 左区间之和 + 右区间之和最大公因数(GCD)—

2022-03-27 19:01:59 120

原创 自监督模型---MoCo

论文地址:Momentum Contrast for Unsupervised Visual Representation Learning开源代码:PyTorch implementation of MoCo摘要该论文提出了动量对比度(MoCo)用于无监督的视觉表示学习。构建了一个带有一个队列和一个移动平均编码器的动态字典。这使得建立一个大的和一致的字典的动态,促进对比无监督学习。MoCo在ImageNet分类的通用线性协议下提供了有竞争的结果。更重要的是,MoCo学习到的表示可以很好地转移到

2022-03-16 16:11:37 11187 1

原创 自监督模型---PCL

论文地址:https://openreview.net/pdf?id=KmykpuSrjcq开源代码:Prototypical Contrastive Learning of Unsupervised Representations摘要原型对比学习(PCL),一种连接对比学习和聚类的无监督表示学习方法。PCL不仅学习了实例识别任务中的低级特征,更重要的是,它将通过聚类发现的语义结构编码到学习到的嵌入空间中。引入原型作为潜在变量,以帮助在期望最大化框架中找到网络参数的最大似然估计。通过E-st..

2022-03-15 17:55:43 5097

原创 自监督模型---概述

图像自监督网络结构一般包含两种结构:辨别式(孪生网络),生成式(GAN网络);由于自监督任务没有标签,我们需要基于一定规则去生成标签或还原图像,该过程称为借口任务(Pretext tasks),Unsupervised/self-supervised 借口任务(Pretext tasks)主要包括如下:去噪:原图加一些噪声送入网络输出去噪后的图 上色:将原图变成灰度图送入网络输出上色后的图 旋转图片预测角度 扣除原图的某一个patch,要求网络补出来 将图片切分几块后打乱,要求给出每块正

2022-03-15 13:26:50 8635

原创 自监督模型---HCSC

论文地址HCSC: Hierarchical Contrastive Selective Coding (arxiv.org)开源代码PyTorch implementation of Hierarchical Contrastive Selective Coding (HCSC)1.摘要HCSC 层次语义结构存在于图像数据集中,其中几个语义相关的图像集群可以进一步集成到一个更粗粒度更大的集群中。用图像表示来捕获这样的结构可以极大地促进对各种下游任务的语义理解。HCSC构建了一组层次原型...

2022-03-12 18:29:05 2106

原创 自监督模型---BYOL

zhi论文地址 Bootstrap your own latent: A new approach to self-supervised Learning开源代码deepmind-research/byol at master · deepmind/deepmind-research · GitHub1.摘要BYOL依赖于两个神经网络,即在线网络和目标网络,它们相互作用和相互学习。从一个图像的增强视图出发,我们训练在线网络来预测同一图像在不同的增强视图下的目标网络表示。BYOL作为一种对..

2022-03-11 18:09:37 3841

原创 关于dataset和dataLoader怎样封装数据

使用pytorch进行模型训练时,我们通常会将数据包装成dataLoader,然后放入模型进行训练。dataLoader实质上就是一个数据加载器,必须要传入一个数据集类dataset。pytorch提供的dataset是一个抽象类,需要自己实现该类。继承dataset需要实现getitem和len两个方法,具体如下:class MyDataSet(Dataset): def __init__(self, imgs, labels): self._data = imgs

2021-10-08 22:17:11 1071

原创 在colab使用tensorboard

%load_exttensorboard%tensorboard--logdir='logs'这里的logs填写tensorboard的存储位置,注意--logdir='logs' 的=号左右不能有空格。

2021-10-07 01:30:18 1089 2

原创 docker安装与使用

1、直接拉取天池比赛官方的基础镜像!新建一个文件夹(例如tianchi_submit_demo)用于存放这次任务镜像所需的文件(这个方法二用到)。其中hello_world.py中是各位自己的代码部分,run.sh参考:python hello_world.pyresult.json是自己代码生成的。2、容器转换为镜像:方法一:直接从外部导入,未用Dockerfile1)外部文件导入container里,docker cp 外部文件路径 container_id:/www/ 即/www的目录下。.

2021-09-27 12:36:33 206

原创 分治策略--最大子数组问题

在分治策略中,我们递归地求解一个问题,在每层递归中应用如下三个步骤:分解步骤将问题划分为一些子问题,子问题的形式与原问题一样,只是规模更少。解决步骤递归地求解出子问题。如果子问题的规模足够小,则停止递归,直接求解。合并步骤将子问题的解组合成原问题的解。最大子数组问题问题描述:某家公司的股票价格是不稳定的,你可以在某个时刻买进一股该公司的股票,并在之后将其卖出,买进卖出都是在当天交易结束后进行。你知道股票的将来价格。你的目标是最大化收益。即“低价买进,高价卖出”。 股票价...

2021-01-12 21:29:20 584 1

原创 算法导论--循环不变式

循环不变式与插入排序的正确性关于插入排序,有点类似许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。拿在左手的牌总是排好序的,原来这些牌是桌子上牌堆顶部的牌。我们可以知道一点,当我们用插入排序第j个元素时,前j-1个元素是排好序的,并且这j-1个元素是原先数组前j-1个数组,只是现在已按序排列。循环不变式主要用来帮助我们理解算法的正确性。关于循环不变式,我们

2020-12-27 21:58:53 350

原创 算法导论:算法在计算中的作用

非形式地说,算法就是任何良定义(对于良定义我的理解是给出的定义是清晰,不是模棱两可的)地计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。这样算法就是把输入转换成输出的计算步骤的一个序列。我们也可以把算法看成是用于求解良说明的计算问题的工具。一般来说,问题陈述说明了期望的输入/输出关系。算法则描述一个特定的计算过程来实现该输入/输出关系。关于排序问题的形式定义:输入:n个数的一个序列<a1,a2,...,an>。输出:输入序列的一个排列<b1,b2,

2020-12-26 00:08:52 311

原创 C语言交换两个变量3种方法

我们最常用的方法是:设置一个中间变量,此方法最好用且好理解。#include<stdio.h>int main(){ int a=3,b=5,t; t = a; a = b; b = t;}第二个方法适合定义了加减法的数据类型:#include<stdio.h>int main(){ int a=3,b=5; a = a + b; b = a - b; a = a - b;}上述方法的一个变种是利用异或运算:#includ

2020-09-17 17:34:19 861

转载 sql语句优化

1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如select id from t where num is null最好不要给数据库留NULL,尽可能的使用NOT NULL填充数据库.备注、描述、评论之类的可以设置为NULL,其他的,最好不要使用NULL。不要以为NULL不需要空间,比如:char(100...

2020-05-09 12:50:34 84

原创 springBoot文件下载出现 Cannot call sendError() after the response has been committed异常

出现是因为多次response响应导致的,http协议每次响应完就关闭了socket,所以多次发送response就会出现这个问题@RequestMapping("/download") public int addNav(String name,HttpServletResponse response) { System.out.println(name); File file = new File(LoadNovelFile.staticPath+"/"+name+".txt");

2020-05-09 12:02:31 2001

原创 js,左值和(a++)+a的计算

左值(left value)    左值是一个古老的术语,它是指“表达式只能出现在赋值运算符的左侧”,在js中,变量、对象属性和数组元素均是左值。通俗地说。以赋值符号 = 为界,= 左边的就是左值,= 右边就是右值。int a = b;a为左值,b为右值。更深一层左值a是一个地址,而右值b表示b的值。看看a = b的含义。其实就是 将 "b地址内存里面的数据",放到"a地址内存"中。 ...

2019-02-18 15:47:58 267

原创 原生ajax前后端交互

function ajax(){ if(window.XMLHttpRequest) { var oAjax = new XMLHttpRequest(); } else { var oAjax = new ActiveXObject("Microsoft.XMLHTT...

2019-02-16 16:09:58 135

原创 虚拟机克隆后配置网络

虚拟机克隆后是没有eth0网卡,是不能连接网络的,解决如下:1.直接修改  /etc/sysconfig/network-script/ifcfg-eth0因为虚拟机是克隆过来的,俩台的eth0中UUID是一样的会造成冲突。2. 删除文件70-persistent-net.rules 执行指令 rm -rf /etc/udev/rules.d/70-persistent-net.r...

2018-12-23 10:18:29 165

原创 设计模式--适配器模式

适配器模式适配器模式(Adapter):直观理解就是使原来不能一起相互工作(接口不兼容)的两个功能通过Adapter兼容在一起。类适配器Adapter 类继承Adaptee (被适配类),同时实现Target 接口(因为 Java 不支持多继承,所以只能通过接口的方法来实现多继承),在 Client 类中我们可以根据需要选择并创建任一种符合需求的子类,来实现具体功能(以下类图)。...

2018-12-20 13:06:34 277 1

转载 jsp,EL表达式

JSP的9大内置对象:application:是servletContext的实例,代表JSP所属的web项目本身config:是servletConfig的实例,代表当前JSP的配置信息exception:是java.lang.Throwable的实例,该对象只有在JSP页面中设置了isErrorPage为true时,才能使用out:jspWriter的实例,代表JSP页面的输出...

2018-11-22 09:46:04 155 1

python全本小说爬取

python全本小说爬取

2022-05-04

Linux服务器远端访问工具

Linux服务器远端访问工具

2022-03-18

TensorRT-7.2.2.3.Windows10.x86_64.cuda-11.1.cudnn8.0

TensorRT-7.2.2.3.Windows10.x86_64.cuda-11.1.cudnn8.0

2022-03-15

空空如也

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

TA关注的人

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