自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刚子的博客

一只菜鸟的心得

  • 博客(94)
  • 收藏
  • 关注

原创 02.springBoot配置easyExcel

简单使用测试 pom.xml添加依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.0.5</version> </dependency> 对于简单的导入导出封装了一个XlxsTool工具类 package com.wg.easyexcel; import

2022-01-20 14:46:36 1161

原创 01.springboot配置mybatis

两种配置方式 xml配置 注解配置 xml配置 自查 注解配置 配置pom.xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.1</version> </dependency> &lt

2022-01-20 14:43:21 760

原创 目标完成后的失落

当你的目标完成后,会不会有一种失落感油然而生

2022-01-20 14:40:37 741

原创 如何看待第二职业

如何看待程序员的第二职业

2022-01-20 14:38:20 4888

原创 08.文章SEO

vuepress博客对文章进行搜索引擎优化seo

2022-01-20 14:29:28 279

原创 07.Github Action自动部署:百度推送

使用GitHub Actions 持续集成/持续部署工具的定时运行代码功能来实现百度推送

2022-01-20 14:28:39 900

原创 05.配置域名

阿里云购买域名配置到Github Pages

2022-01-20 14:27:15 1660

原创 06.百度收录

使自己的网站被百度收录

2022-01-20 14:25:59 780

原创 04.配置vuepress插件

一个具有强大功能的 vuepress 主题仓库✨​ 在vuepress或者vdoing主题项目中,其实已经内置了一些第三方插件,比如百度统计,第三方搜索,代码块一件复制,评论区等等。想看用了什么插件,看package.json就可以。以下是我的安装的一些依赖 "devDependencies": { "dayjs": "^1.9.7", "inquirer": "^7.1.0", "json2yaml": "^1.1.0", "vuepress": "1.8.0",

2022-01-19 22:21:38 3962 1

原创 03.创建-编译-部署Vuepress博客

创建 vuepress官方文档原生vuepress上手很简单,根据文档操作即可 npm init npm install -D vuepress mkdir docs && echo '# Hello VuePress' > docs/README.md npm run docs:dev 这里推荐一个主题:vuepress-theme-vdoing文档 | vuepress-theme-vdoing仓库vdoing主题已经搭配好了很多插件,下载下来,执行即可 # 克隆项目 git c

2022-01-19 22:19:23 633

原创 02.配置免费图床Gitee/Github

前言 前提: 个人瞎玩,不考虑付费的oss存储 考虑通过「github」或者「gitee」搭建免费图床 为什么要使用图床呢?什么是图床? 写文章时,图片的上传和存放是一个问题,有的朋友可能会把图片放到和博客同一个仓库当中,使用相对路径来引用,这样后期维护起来会比较麻烦。还有的朋友会在不同的平台发布同一篇文章,这样一来每个平台都要上传图片。为了解决这些问题,比较推荐的做法是把图片统一上传到一个在线的第三方静态资源库中,我们把这个资源库称为图床,其返回一个图片的URL,使用markdown+图片url的方式

2022-01-19 22:17:02 1654

原创 01.「概述」全平台文章同步搭配方案

使用的方案搭配在最后 纠结症患者 喜欢语雀的编辑体验 喜欢vuepress的界面 喜欢CSDN的SEO 喜欢掘金的专业 喜欢知乎的流量 一直纠结于以上 以上大家可以去自行体会各自的优点 ???? 我们要明确一点 写文章是为了分享和交流,一切都要围绕这个目的来选型 你的受众是谁,他们在哪个平台 编辑体验,不要打扰我,让我专注的写我所写 对比知乎 语雀的编辑体验一流 语雀支持协作,可以多人编辑,团队协作 语雀的目录结构,对知识的组织很方便,适合用来写书 语雀的流量和用户群,比知乎少很多,但未来

2022-01-19 22:13:23 1408

原创 java泛型的理解

泛型的意思是说类型可以在以后指定,但是这仍然需要告诉编译器,我需要某个类型作为占位符,比如T public List<T> fuck(T shit){ 。。。 } 然后编译器并不知道这个T是什么 所以需要在前面显示的声明一下(这就是为什么不能省略) 是申明T为泛型,以区别于类名。 public <T> List<T> fuck(T shit){ ... } 共出现了三个T 第一个是定义一个范型名为T来声明类型参数的,也可以为任何一个或多个字母 后两个T是泛型的实

2022-01-19 21:58:00 632

原创 注解@Data与@EqualsAndHashCode的爱恨情仇

@Data与@EqualsAndHashCode的爱恨情仇

2022-01-19 21:53:02 3346 1

原创 为什么重写equals一定要重写hashcode

在原始的Object类中 默认equals比较规则是通过“==”来进行判断,这样比较的是两个对象的内存地址,默认的hashcode方法返回的是对象的内存地址由哈希算法转换成的一个整数,实际上指的的也是内存。哈希算法具有一定的偶然性,不同的内存地址可能计算出相同的哈希值。 对于原始的hashCode()和equals() 方法来说,通过equals() 比较两个对象相等,说明这两个对象的内存地址相同,进而知hashcode也是相同的。 ​ 在实际使用中,大多数场景下,如HashMap中存放自定义对象类作为ke

2022-01-19 21:47:31 5496 3

原创 分布式事务小结

随着互联网技术的不断发展,系统越来越复杂,几乎所有 IT 公司的系统都已经完成从单体架构到分布式架构的转变,分布式系统几乎无处不在。谈到分布式系统,特别是微服务架构,不得不谈分布式事务 01|基础理论 在讲解具体方案之前,有必要了解一些分布式事务所涉及到的基础理论知识。 事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务应该具有 4 个属性:原子性、一致性、隔离性、持久性。

2022-01-19 12:17:22 236

原创 一次线上线程池任务事故

前言 线上出现线程池提交任务抛出 RejectedExecutionException 异常 即任务提交执行了拒绝策略的操作。查看业务情况和线程池配置,发现并行执行的任务数是小于线程池最大线程数的。以下是排查过程 一、业务场景 1.1. 任务描述 每次执行一组任务,一组任务最多有 15 个,多线程执行,每个线程处理一个任务;每次执行完一组任务后,再执行下一组,不存在上一组的任务和下一组一起执行的情况。 1.2. 任务提交流程 ① 任务开始 ➠ ② 获取一组任务 ➠ ③ 将任务提交到线程池 ➠ ④ Futu

2022-01-19 12:16:21 455

原创 线程池的线程复用原理

前言 线程池有核心线程和非核心线程之分: 核心线程是一直存活在线程池中的 非核心线程是在执行完任务之后超时销毁的 当Thread执行完Runnable任务之后就会销毁,而且就算执行完任务之后把线程挂起也没有办法再去执行其他任务,**那线程池是如何做到核心线程复用的呢?**​ 首先来看一下执行线程任务的方法,实际上就是根据工作线程数量去执行不同的策略 execute() public void execute(Runnable command) { if (command == null)

2022-01-19 12:14:10 1104 1

原创 leetcode1143-最长公共子序列

题目连接 示例 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 ​ 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 ​ 例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。 两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。 ​ ​ 示例

2021-11-20 15:58:08 110

原创 String 三剑客

探索String、StringBuilder以及StringBuffer String string源码剖析 String类的实现是在\jdk1.8.0_131\src\java\lang\String.java 文件中。 打开这个类文件就会发现String类是被final修饰的: 在 Java 8 中,String 内部使用 char 数组存储数据 public final class String implements java.io.Serializable, Compar...

2021-03-11 11:16:59 456 2

原创 设计模式之单例模式

设计模式之单例模式 单例模式的意思就是只有一个实例。 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 在应用这个模式时,单例对象的类必须保证只有一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。 单例模式属于创建型模式.

2021-01-30 16:44:27 1798 2

原创 pytorch随机生成图像修复和扩展的mask

图像修复 import random import cv2 import numpy as np import time t = time.time() # 用时间戳来唯一命名 def create_mask(width, height, mask_width, mask_height, x=None, y=None): # 黑色是0 白色缺失部分是255 实际使用时,需要将255变为1。 因为需要和原图做加减运算 mask = np.zeros((height, width))

2021-01-27 17:04:05 3306 1

原创 pytorch中tensor、list、numpy之间的转换

list转tensor tensor=torch.Tensor(list) list转numpy ndarray = np.array(list) numpy转list list = ndarray.tolist() numpy转tensor tensor = torch.from_numpy(ndarray) tensor转list # 先转numpy,后转list list = tensor.numpy().tolist() tensor转numpy nd..

2021-01-19 15:41:06 5316

原创 pytorch与numpy中维度顺序转换的比较

pytorch tensor.permute(dims) 将tensor的维度换位。 参数:参数是一系列的整数,代表原来张量的维度。比如三维就有0,1,2这些dimension。 例: import torch a = torch.rand(8,256,256,3) #---> n,h,w,c print(a.shape) b = a.permute(0,3,1,2) # ---> n,c,h,w print(b.shape) 输出: torch.Size([8.

2021-01-19 15:29:41 5618 1

原创 pytorch与numpy生成随机数比较

pytorch numpy numpy中用来产生随机数的模块为random模块 numpy.random.rand(d0, d1, ..., dn) --------产生一个给定形状的数组,数组中的值服从[0, 1)之间的均匀分布 numpy.random.uniform(low=0.0, high=1.0, size=None) ...

2021-01-19 14:50:22 698

原创 pytorch 中 __getitem__ ()和DataLoader

在构建DataLoader时,需要传入参数dataset,这里可以是自己自定义数据集类,比如上图myDataset 在DataLoader 送入torch中进行训练时,会自动调用数据集类的__getitem__()方法 class myDataset(Dataset): def __init__(self, csv_file, txt_file, root_dir, other_file): self.csv_data = pd.read_csv(csv_fi...

2021-01-08 21:01:52 20152 5

原创 PyTorch中关于backward、grad、autograd的相关理解

讲的极好 Pytorch的backward()相关理解 PyTorch中关于backward、grad、autograd的计算原理的深度剖析

2021-01-08 20:41:42 798

原创 Backward过程中排除子图

auto gradient 本片博文主要是对http://pytorch.org/docs/notes/autograd.html的部分翻译以及自己的理解,如有错误,欢迎指正! Backward过程中排除子图 pytorch的BP过程是由一个函数决定的,loss.backward(), 可以看到backward()函数里并没有传要求谁的梯度。那么我们可以大胆猜测,在BP的过程中,pytorch是将所有影响loss的Variable都求了一次梯度。但是有时候,我们并不想求所有Variable的梯度。那就

2021-01-08 17:03:02 236

原创 pytorch中required_grad和detach

代码中的detach和required_grad的引入是减少了计算量,required_grad=false会计算误差,不计算wb的梯度(原因在于一个网路如果是ABC层这样的连接方式,B不求梯度,但是A还是会获得梯度,这就需要计算B的误差,从而传播到A,而计算B中参数的梯度就没有必要了),而detach会切断反向传播,不计算误差也不计算梯度。之所以之前会认为加不加required_grad=false和detach不影响效果,是因为只看到了输出结果的不变,没有意识到计算时间和空间需求的变化,而这两点的确是不

2021-01-08 16:52:27 1525

原创 Pytorch中requires_grad_(), detach(), torch.no_grad()的区别

1. 基本概念 Tensor是一个多维矩阵,其中包含所有的元素为同一数据类型。默认数据类型为torch.float32。 示例一 >>> a = torch.tensor([1.0]) >>> a.data tensor([1.]) >>> a.grad >>> a.requires_grad False >>> a.dtype torch.float32 >>> a.item() 1.0 &g

2021-01-08 16:33:03 3655

原创 多GPU 并行训练

wait...

2020-12-26 14:44:12 365

原创 拉取的docker镜像中更换python以及pip版本

场景: 需要tensorflow1.10python3.6的环境,但是拉取的tf1.10镜像中,默认python版本是3.5 ,此时我们需要安装python3.6版本,将python命令的软连接删除,并且指向新安装的3.6,且pip的连接也应该指向python3.6版本 参考相关连接 https://blog.csdn.net/th_num/article/details/82804392 https://blog.csdn.net/weixin_43802384/article/detail...

2020-11-16 16:31:31 12760 4

原创 docker容器内安装opencv-contrib-python

安装opencv-contrib-python pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python 若出现 ImportError: libGL.so.1: cannot open shared object file: No such file or directory 则 apt-get update apt-get install -y libgl1-mesa-dev Im...

2020-11-16 16:11:31 638

原创 更换conda源和pip源

更换conda源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/an.

2020-11-16 16:06:51 551

原创 python 实现打印输出日志文件

打印日志 在集群中跑代码时,ctrl+p+q退出容器,通过attach进入该线程时,会加载过大而卡死掉。通过exec进入容器,是给容器开了一个新bash而不是回到退出时的状态 那么这时,如何查看当前训练的状态呢? 没错,通过打印日志 首先创建logs.py日志文件 具体用法,其中都有注释 懒人用法------直接复制粘贴此代码即可 # -*- coding: utf-8 -*-# #-------------------------------------------------...

2020-11-16 15:54:08 1979 1

原创 python实现批量将图像裁剪为指定像素

功能: 裁剪完后,可以保存到指定路径 裁剪到指定像素 可以保存为灰度图 from skimage import data_dir, io, transform, color import numpy as np def convert_gray(f): rgb = io.imread(f) # 依次读取rgb图片 # gray = color.rgb2gray(rgb) # 将rgb图片转换成灰度图 dst = transform.resize(rgb, (256.

2020-10-23 11:16:39 2821

原创 python实现删除一半数量图像

import os import random num = 0; for image_name in os.listdir("./train_images"): feed = random.randint(0, 10) print(feed) if feed <= 5: os.remove(os.path.join("./train_images", image_name)); print(feed) print(os.pa..

2020-10-23 10:57:38 354

原创 python实现文件夹内文件重命名

import os path = r'E:\PycharmProjects\reptileImage\images' files = os.listdir(path) for i, file in enumerate(files): NewName = os.path.join(path, str(i+1)+".jpg") OldName = os.path.join(path, file) os.rename(OldName, NewName) print("over") ...

2020-10-23 10:46:33 386

原创 python实现从一个层级树状结构的目录中选择性迁移需要的文件到新的文件夹下,同时改名,且所有文件处于同一层级,

由于下载的数据集目录格式是按照分类的目录创建,现在需要不分类,将所有文件拿出来,迁移到新文件夹下,且所有文件处于同一层级。 实现功能: 将所有文件迁移到新目录 不区分层级树状结构,有无都可以 可以按文件后缀类型进行选择性迁移 重命名 import os from shutil import copyfile path = 'F:/wg' path_read = [] newRoot = 'F:/wgg/' n = 0 def check_if_dir(file_path): t.

2020-10-23 10:41:45 432 1

原创 python实现从一个文件夹下随机抽取一定数量的图片并移动到另一个文件夹

import os, random, shutil def moveFile(fileDir, tarDir): pathDir = os.listdir(fileDir) # 取图片的原始路径 filenumber = len(pathDir) rate = 0.01 # 自定义抽取图片的比例,比方说100张抽10张,那就是0.1 picknumber = int(filenumber * rate) # 按照rate比例从文件夹中取一定数量图片 ...

2020-10-23 10:30:44 1901

空空如也

空空如也

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

TA关注的人

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