自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 01-SpringMVC项目构建

梳理了创建基于SpringMVC的项目创建流程和注意点,防止遗忘。

2022-11-22 17:05:11 428 1

原创 MyBatis中的reflection包(一)ObjectFactory,PropertyTokenizer, Invoker, Reflector

reflection是MyBatis关于反射的工具包,是实现其它功能的基石之一。这里我不准备贴上源码然而逐行解释,而是从需求分析的角度来复现。

2022-10-26 17:23:41 486

原创 MyBatis源码分析之SqlSession

详细分析了MyBatis中的SqlSession接口以及它的实现类

2022-10-23 17:07:16 727

原创 Mybatis缓存机制(二)尝试自己构建Cache责任链

本篇博客是在的基础上,自己手写Cache链,会去除Cache内容以外的代码,尽可能的还原MyBatis关于Cache的内容。

2022-10-23 09:19:37 357 1

原创 MyBatis的缓存机制(一)分析Cache责任链的设计以及构建过程

1. 分析了Cache接口类型,以及它使用的责任链设计模式2. 探究Mybatis在初始化时是如何构建这样一条责任链的3. 自己尝试复现它的实现

2022-10-23 09:17:59 485

原创 MyBatis中的StrictMap类

详细分析了Mabtis框架中Configuration中的StrictMap类型

2022-10-21 14:51:41 1017

原创 MyBatis的TypeAliasRegistry

Alias是别名的意思,TypeAliasRegistry的作用就是注册别名,该类存在于org.apache.ibatis.type这个包下。该类持有一个字典,它的作用是将String映射成一个具体类的Class对象,这样就可以通过字符串来获取具体的类别,从而实例化它。别名注册机制类很简单,核心思想是用一个HashMap保存别名和Class对象的映射关系,主要提供了下面的方法。在该类的构造函数中,对基本数据类型,其包装类以及一维数组都先进行了注册。提供了一个方法来返回Map集合的不可修改视图。

2022-10-21 10:03:06 387

原创 关于代理模式

本篇博客是我学习框架中遇到的第一个设计模式,代理模式,主要总结代理模式的作用,静态代理和动态代理分别如何实现。

2022-10-20 15:23:02 335

原创 xml文件归纳总结

1. 我会先总结一下xml文件的格式,了解它的大体结构以及如何使用2. 从xml文件格式来分析总结使用它有哪些好处,以及它的主要用途3. 如何利用Java语言去解析xml文件,解析的方法?方法的优劣?具体怎么使用4. 结合xml以及反射的技术来做一个示例程序

2022-10-18 10:51:20 614

原创 浅谈jar包

jar是Java Archive文件的后缀,它代表的含义是将java的字节码文件以及相关的静态资源进行归档。我们知道通常一个java程序需要包含多个字节码文件,为了方便在网络上进行传输就需要进行压缩,而jar包实际上就是zip压缩文件。

2022-10-16 11:41:55 1016

原创 06-ServletRequest

先看一下官方对ServletRequest的描述它的功能是将客户端的请求信息提供给servlet,servlet容器会创建一个ServletRequest对象,并会将其作为一个参数传给servlet的service方法。ServletRequest对象是在用户发送一个请求时创建的,并在下一个请求到来时销毁,也就是说一个请求对应一个ServletRequest对象。

2022-10-01 10:39:23 715

原创 05-HttpServlet类

在前面我们学习了Servlet和它的5个接口,学习了ServletConfig和ServletContext对象,下面介绍web开发中实际用到的HttpServlet接口。

2022-09-29 16:14:04 190

原创 05-在Idea中编写Servlet程序

截至目前,我们已经总结了,如何配置Tomcat服务器(到官网下载资源,将bin目录配置到Path环境变量中,增加CATALINA_HOME环境变量),将Tomcat lib目录下的servlet-api.jar添加到CLASSPATH环境变量中,这样我们就可以使用JAVA EE的servlet接口。我们还学习了如何编写一个Servlet程序,它需要实现五个接口,知道了Tomcat是通过web.xml文件将路由和servlet程序关联。

2022-09-29 15:41:30 1087

原创 04-连接数据库动态渲染网页

上一节中,我们已经掌握了路径关联Java servlet程序的方法,本节在上节的基础上将要实现,连接数据库并借助数据库中的数据来动态渲染网页。

2022-09-26 20:26:57 604

原创 03-在web服务器下编写第一个Servlet程序

通过前两节的学习,我们已经配置好Tomcat服务器程序,了解了什么是Servlet,并通过一个模拟程序搞清楚Servlet接口的目标是什么。本节介绍Servlet的目录规范,以及如何实现一个Servlet程序。

2022-09-26 17:06:30 269

原创 02-servlet的思想以及简单模拟

javaweb系列第二节

2022-09-26 15:43:59 182

原创 01-Tomcat服务器软件的配置

javaweb系列第一节

2022-09-26 15:43:11 275

原创 JDBC内容整理

本文介绍了JDBC的入门知识

2022-09-24 09:22:21 267

原创 语义分割任务中如何处理label为255的标签

语义分割常用数据集Cityscapes中会将不需要用到的像素标签设置为255,但初学者可能会遇到困惑,我们在训练或者评估的时候遇到255的标签该怎么办呢?我们需要做的是忽略。训练计算loss时的处理import torchfrom torch import nnclass CrossEntropy2d(nn.Module): def __init__(self, ignore_label=255): super().__init__() self.ignor

2022-01-24 11:53:55 4473 6

原创 从PyTorch中的梯度计算出发谈如何避免训练GAN中出现inplace error

one of the variables needed for gradient computation has been modified by an inplace operation这个错误在利用对抗网络时很容易出现,这往往是由于不熟悉PyTorch的计算图和梯度传播机制造成的。叶子结点与非叶子结点import torcha = torch.tensor([1., 2, 3]).requires_grad_(True)b = a * 2loss = b.sum()loss.backward

2022-01-22 11:53:56 2980 5

原创 Unified Deep Supervised Domain Adaptation and Generalization

CCSA对应论文的简要概述。

2022-01-11 19:34:56 1183 3

原创 Distilling the Knownledge in a Neural Network

deep domain adaptation论文专栏中的入门论文。包含了论文的核心思想和PyTorch简易实现

2021-12-25 16:40:43 634

原创 albumentations(深度学习增强库)

本篇博文用于系统记录下albumentation这个cv数据增强库的心得,并会持续更新

2021-09-29 20:10:03 5391

原创 关于Pytorch中gather的一些使用心得

对PyTorch中gather的一些理解。

2021-09-15 12:15:11 381

原创 GANs实现(GAN、DCGAN、WGAN、WGAN-GP,pix2pix)

本篇博文依次用PyTorch代码实现了GAN、DCGAN、WGAN、WGAN-GP、Pix2Pix。完成的任务有手写数字的生成,人脸生成,以及图像风格转换

2021-08-05 10:08:09 1402 3

原创 Object Detection(Yolo)PyTorch实现(一)

本篇博文包含了Object Detection的基础内容,简要概述了YOLOV1论文的相关内容。并对IOU,MAP,non max suppression以及YOLOV1的loss函数进行PyTorch实现。

2021-08-05 09:11:05 523

原创 Pix2Pix(从零实现图像风格转换任务)

本篇博文的内容是利用CGAN从零实现图像风格转换任务

2021-07-31 11:47:14 1094 2

原创 Attention is all you need理解与代码实现(一)

本篇博文是学习attention is all you need这篇论文中的transfomer。探讨了其中的原理并对论文进行了复现

2021-07-24 15:36:27 1872 2

原创 NLP中的BPE(byte pair encoding)分词算法

本篇博客的算法来源的论文是Neural Machine Translation of Rare Words with Subword Units,感兴趣的读者可以自行在Google学术上搜索。算法提出的问题背景2016年左右(改论文发表于2016)Neural machine translation(NMT)中有着一个众所周知的问题——稀有词与未知词的翻译问题。一般来说,神经网络中的词表被限制在30000-50000个词汇,但是对于翻译来说,各种词汇都可能出现(比如英语中的复合词汇,网络新词等),这种限

2021-07-22 11:45:27 3527

原创 正则表达式的零宽断言

今天在学习一篇论文的时候,看到里面有段实例代码包含了令人费解的正则表达式,一番折腾以后终于解决,特此记录。?! 、 ?= 、?<! 、 ?<=上面这四个奇怪的式子被称为零宽断言,与其他的正则表达式不同,它不匹配具体的字符,而是匹配字符串中的位置。这是一个字符串,里面不包含任何空白字符,零宽断言正则表达式所表示的位置,也包括箭头指向的首端和尾端。举一个例子,这里使用了?<! ,<\bold {\large <}<表示的是从字符串的末端可插入的位置开始搜索,检.

2021-07-21 16:01:54 305

原创 show,attend and tell(image caption论文复现总结)

论文中的核心思想研究的问题—Image Caption为图片自动生成caption的任务类似于场景理解,这是cv领域的一个核心问题。要想解决这个问题,不仅要求你的模型能够识别出图片中有什么物体,还得能够将图片中出现的场景与自然语言相联系。问题的核心是模仿人类将大量重要的视觉信息压缩成一句抽象的描述性语言。解决问题的思路2014年左右由于AlexNet,VGGNet等深度卷积神经网络的出现,使得Image Caption成为了一项研究的热点。一种新的解决问题的范式是,利用CNN当作提取图像特征向量的E

2021-07-17 19:03:45 3896 6

原创 权重衰减与L2范数正则化

正则化就是在损失函数后加上一个自定义的正则项,假设我们用线性模型的损失函数均方差为例loss=1n(∑1n(w1x1+w2x2+b−y^)2+λ∣∣w∣∣2)loss = \frac 1 n\big(\sum_1^n(w_1x_1+w_2x_2+b-\hat y)^2 + \lambda ||w||^2 \big)loss=n1​(∑1n​(w1​x1​+w2​x2​+b−y^​)2+λ∣∣w∣∣2)∣∣w∣∣2=12(w12+w22)||w||^2 = \frac 1 2 (w_1^2 + w_2^2

2021-05-17 17:13:17 717

原创 多层感知机实现

激活函数前两节实现的linear model 和 softmax model 但是单层神经网络,只包含一个输入层和一个输出层,因为输入层不对数据进行transformation,所以只算一层输出层。多层感知机(mutilayer preceptron)加入了隐藏层,将神经网络的层级加深,因为线性层的串联结果还是线性层,所以必须在每个隐藏层之后添加激活函数,即增加model的非线性能力,使得model的function set变大。ReLU,Sigmoid, tanh是三个常见的激活函数,分别做出它们的

2021-05-16 16:40:52 432

原创 梯度和Linear Regression实现

梯度PyTorch的数据结构是tensor,它有个属性叫做requires_grad,设置为True以后,就开始track在其上的所有操作,前向计算完成后,可以通过backward来进行梯度回传。评估模型的时候我们并不需要梯度回传,使用with torch.no_grad() 将不需要梯度的代码段包裹起来。每个Tensor都有一个.grad_fn属性,该属性即创建该Tensor的Function,直接用构造的tensor返回None,否则是生成该tensor的操作。tensor(data, *, dt

2021-05-16 15:16:59 188

原创 softmax实现

用PyTorch实现linear模型模拟数据集模拟数据集这块与上节课一致num_inputs = 2 #feature numbernum_examples = 1000 #训练样本个数true_w = torch.tensor([[2],[-3.4]]) #真实的权重值true_b = torch.tensor(4.2) #真实的biassamples = torch.normal(0,1,(num_examples,num_inputs))noise = torch.normal(0,0

2021-05-16 15:15:24 722

原创 Deeplizard pytorch课程学习笔记

本文是学习deeplizard中PyTorch课程做的笔记。

2021-05-10 22:07:48 2031

原创 C语言编程题(七)二分算法

二分查找一个有序顺序表一般来说最有效的查找方式就是二分查找,核心思想就是通过不断的折半区间来最终确定待查值的位置。而查找的时候会出现两种情况,第一种情况是待查值确切在有序顺序表中,那么返回值就是该元素在数组中的下标。而第二种情况是确定一个范围,比如查找比某值大的第一个位置,亦或是查找比某值小的一个第一个位置。上述两种情况的算法实现有些许的差别查找某值的在有序顺序表中的下标int solve(const int A[],int start,int end,int target){ int

2021-02-13 20:33:50 1919

原创 C语言编程题(六)分治算法

敌人太多,我们要学会逐个瓦解                                        .

2021-02-09 13:59:36 2203

原创 C语言编程题(四)-- 进制转换

进制转换的普遍思路;如果需要将一个p进制转换成q进制,需要将该p进制数转换成十进制数,以其为媒介转化成其他进制的数。进制转换一般需要用到取余取低位,除法进行右移的操作。1分析这是一道典型的进制转换类型的题,难点在于读取和输出的可能不是纯数字,会有‘A’,‘B’,‘C’,'D’等字母。可以采用一次用scanf读取一个单词,然后逐字符转换成整型。输出时,需要将整型转换成字符。#include<stdio.h>#include <ctype.h>#include &

2021-02-04 10:52:17 1174

原创 C语言编程题(三)-- 日期问题

关键点判断一个年份是不是闰年,实现日期增长时月份,年份的增加。本篇文章整理一些codeup上的编程问题。1思路分析两个不同日期做差值可能遇到的问题很多,例如中间会遇到多少个闰年,做差的两个月是不是闰年,计算的日期有没有二月份?个人觉得直接让两个日期做差逻辑比较复杂,可以采用的方法是让小的日期逐天相加一直加到大的日期,这样计算差值时就看循环的次数就行了。#include<stdio.h>_Bool isLeap(int year);int main(){ int a[1

2021-02-03 08:51:02 1057

空空如也

空空如也

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

TA关注的人

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