自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用python将excel中的数据画为曲线图(x_y)

如上图所示,使用epoch作为横坐标,dice做纵坐标画曲线图。其中一个sheet画一条曲线,将多个sheet的曲线画到一张图中。import xlrdimport numpy as npimport matplotlib.pyplot as plt'''xlrd中单元格的数据类型数字一律按浮点型输出,日期输出成一串小数,布尔型输出0或1,所以我们必须在程序中做判断处理转换成我们想要的数据类型0 empty,1 string, 2 number, 3 date, 4 boolean, 5.

2022-04-05 16:55:24 7486

原创 MathType有一些字符无法显示

在写论文时发现刚装的mathtype有一些字符无法显示出来,如下图的字符。重装mathtype也没用。后来在用mathtype时出现了这样的弹窗提示:原来是mathtype中的字符只包含一些正常使用的字符,而我们的电脑中有更多的字符,可使用用Edit菜单里的inset插入这一些字符。当按照他的这么做之后就可以正常使用了。...

2022-03-08 21:29:54 2122

原创 使用python读取tensorboard文件中的数据并写入到excel当中去

读取tensorboard生成文件中的数据,并写入到excel当中去 .

2022-02-28 13:45:42 3100 3

原创 处理数据集的python代码

缩放一个文件夹中的所有图片

2022-01-16 21:55:24 2377

原创 语义分割计算label图的边缘

"""摘自GSCNNCopyright (C) 2019 NVIDIA Corporation. All rights reserved.Licensed under the CC BY-NC-SA 4.0 license (https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode)."""import osimport cv2import numpy as npfrom PIL import Imagefrom scip

2022-01-16 21:52:29 1161

原创 将文件夹中红色的标签图转为白色的标签图

对于单类别语义分割,有的标签图是下面这样子类型的:虽然显示出来是红色,其实它只有一个通道,并不是RGB图,并且其灰度值为1。我们要做的是将其灰度值变为255,也就是将其变为白色,代码如下:import numpy as npimport osfrom PIL import Imagenp.set_printoptions(threshold=np.inf)#这个函数用于将红色标签图转为白的的标签(其实红色的标签表示灰度值为1(也是只有一个通道)),但不知道为何会显示出红色def RedT

2021-12-20 11:46:18 491 1

原创 mmsegmentation进行隧道渗漏水的分割

若是使用自己的数据集,现在mmseg/datasets下建立自己的数据集文件water_leakage.py ,# Copyright (c) OpenMMLab. All rights reserved.import os.path as ospfrom .builder import DATASETSfrom .custom import [email protected]_module()class LeakageDataset(CustomDatas.

2021-12-17 11:38:04 374 1

原创 计算算法复杂度FLOPs

搜遍全网,流传的在网上的能方便计算FLOPs的有3个小工具。THOP: PyTorch-OpCountertorchstatptflops一个不行的话多试两个。我的程序用2、3报错,最终用的1

2021-12-10 18:12:40 620

原创 在安装mmsegmentation的过程中出现OSError : symbolic link privilege not held

这里写自定义目录标题在windows命令行汇中安装mmsegmentation即所需环境的所有过程如下:conda create -n open-mmlab python=3.7 -yconda activate open-mmlabconda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorchset PATH=full\path\to\your\cpp\compiler;%PATH%pip install mmcvg

2021-11-11 16:26:42 764

原创 操作系统重点知识

进程与线程进程:是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程:其是进程的一个实体,是程序执行的基本单位。它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中

2021-10-15 22:35:01 79

原创 数据库重点

概念:数据库: 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了 具有特定格式的数据。数据库管理系统: DataBaseManagement,简称DBMS。 数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以 对数据库当中的数据进行增删改查。常见的数据库管理系统: MySQL、Oracle、MS SqlServer、DB2、sybase等…事务: 一个事务其实就是一个完整的业务逻辑。是一个

2021-10-13 10:22:30 162

原创 Latex在图片与\caption中间加入文字

Latex在图片与\caption中间加入文字,效果如下:弄了一天,终于弄出来了。由于是新手,并没有教程教如何做,我以为插入图片后只能写\caption{。。。}。为了达到这个目的想了很多别的办法。我上面给的图片是一整张图,并不是5张子图,所以代码如下:% 原本是这样的\begin{figure*}[t!]\centering \includegraphics[width=0.75\textwidth]{fig4.jpg} \caption{Visualization of

2021-10-05 20:31:31 6133

原创 Latex中表格中固定表格宽度时出现错误“LaTeX Error: Illegal character in array arg.”

Latex中表格中固定表格宽度时出现错误“LaTeX Error: Illegal character in array arg.”,如下:\documentclass{article}\begin{document}\begin{center}\begin{tabular}{ | m{5em} | m{1cm}| m{1cm} | } \hline cell1 dummy text dummy text dummy text& cell2 & cell3 \\ \h

2021-10-05 11:05:10 8705

原创 LATEX使用教程

这个是我看了官方文档30分钟学LaTex后写的总结。LATEX的最大特点在于它的内容文件与它的格式是分开的。其格式保存在模板中。我们可以直接使用编辑器Overleaf来编辑和即时编译。并且可以多人共同编辑一个文档。\documentclass{article} : 表示引入类article,article是最常用的LaTex类,也有其它的类如book或 report. 也可以是引入其它模板如ieeeaccess。Adding a title, author and date(添加题目、作者和日期)

2021-09-29 11:14:58 29000 4

原创 一文让懂计算机网络

概述主机之间的通信方式客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。对等(P2P):不区分客户和服务器。

2021-09-25 10:56:25 841

原创 Springboot之请求映射

@GetMapping、@PostMapping、@PutMapping等:他们相当于RequestMapping(value = “/xxx” , method = RequestMethod.GET)或 RequestMapping(value = “/xxx” , method = RequestMethod.POST),即限定请求方法的简写。请求映射原理什么是请求映射?个人理解:首先在浏览器搜索一个URL会向程序发送请求,程序会对其进行处理,找到对应的页面。或 当提交表单时也会对程序发送pos

2021-08-16 11:28:08 662

原创 Springboot之静态资源的访问

静态资源目录只要将静态资源resources文件夹下的 /static (或/public 或/resources 或/META-INF/resources) 目录下,项目运行后,可以直接在浏览器上通过:当前项目根目录路径/+静态资源名 来访问(http://localhost:端口号/静态资源名)但是,请求进来程序是先去找Controller,看能不能处理。不能处理的所有请求又都交给静态资源处理器。静态资源也找不到则响应404页面。可在配置文件中改变默认的静态资源路径:spring: mvc:

2021-08-15 20:51:02 2451

原创 SpringBoot之3开发小技巧——Lombok、dev-tools、Spring Initailizar

LombokLombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的java方法,通过注解来代替这些方法,然后在编译时帮我们生成这些方法。首先需要引入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dep

2021-08-15 11:29:34 157

原创 SpringBoot之容器

文章目录容器功能1.1 组件添加1.2 原生配置文件引入1.3 配置绑定容器功能1.1 组件添加法一: @Configuration/** * 1、配置类里面使用@Bean标注在方法上给容器注册组件,默认也是单实例的 * 2、配置类本身也是组件 * 3、proxyBeanMethods:代理bean的方法 (这是SpringBoot2对SpringBoot很大的不同) * Full(proxyBeanMethods = true)、【保证每个@Bean方法被调用

2021-08-14 20:46:48 855 1

原创 训练结果不稳定

一般情况下,同一个网络跑多次,结果是不可能一样的。想要复现结果首先可以试试随机种子,固定住网络的大部分随机性。随机种子,设置如下:if manual_seed is not None: logger.info(f'Seed the RNG for all devices with {manual_seed}') os.environ['PYTHONHASHSEED'] = str(manual_seed) torch.manual_s

2021-07-18 17:16:59 1096 1

原创 Python-opencv实现OTUS(属于自适应阈值分割法)

import cv2import os#OTUS阈值分割法def OTUS(img_path,save_path): imgs_path = os.listdir(img_path) for r in imgs_path: img=os.path.join(img_path,r) img = cv2.imread(img) gray=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #BGR图(cv2读取的是B

2021-07-14 16:44:37 858

原创 Python实现区域生长算法(RGA),并且使用鼠标选取初始坐标点

RGA的原理区域生长算法的基本思想是将有相似性质的像素点合并到一起。对每一个区域要先指定一个种子点作为生长的起点,然后将种子点周围领域的像素点和种子点进行对比,将具有相似性质的点合并起来继续向外生长,直到没有满足条件的像素被包括进来为止。这样一个区域的生长就完成了。实现该算法的一个关键问题是给定种子点(种子点如何选取?)可以手动输入坐标作为种子点。也可根据自己划分的阈值自动生成种子。当然我感觉最好还是使用选取种子点。算法步骤 :a> 创建一个空白的图像(全黑);b> 将种子

2021-06-16 12:19:29 3484

原创 同样的随机种子,前几次可以复现,但不知道动了哪里,复现不了以前的结果了

同样的随机种子,前几次可以复现,但昨天突然就复现不了了。可以按照以下步骤检查一下:1.首先检查各种设置,如batch size , learning rate、优化器等等。如果以上各种设置都没问题那么问题极大概率还是出在模型里面了。2.然后如果使用的是pytoch框架的话可以检查forwad()函数中模型整体的网路结构和以前是否一样(不能有一丝偏差)。3.最后检查在forwad()中使用的模块、层在__init__()中是否有偏差。在这里需要特别注意一个问题,我的问题就是出现在这里。因为我昨天在_

2021-06-09 16:43:04 1662

原创 torchvision.transforms.ToTensor

transforms.ToTensor() 将numpy的ndarray或PIL.Image读的图片转换成形状为(C,H, W)的Tensor格式,且/255归一化到[0,1.0]之间.当然,需要特别注意的是,当使用ToTensor() 将numpy转为Tensor格式时,numpy中的元素必须时uint类型时才会将[0,255]归一化到[0,1.0]之间,否则不作映射。另外transforms.Normalize需要跟在ToTensor后面...

2021-05-10 16:10:48 1865

原创 使用summary时遇到AttributeError: ‘list‘ object has no attribute ‘size‘的错误

出现改错时,意思就是本来因该是tensor的地方你写的是list,所以出现了这个错误。对我个人而言,我的错误出现在模型的forword函数中,我的模型有多个输入,而我是以list的形式传入了多个输入,即将多个输入作为了一个整体传给了模型。而在summary中会计算模型的输入形状,即其会使用到输入的.size属性,而当我传入的是list时,由于list没有.size属性,所以报了这个错。正确的的做法是将这多个输入作为多个tensor分开传入,而不是作为一个list整体。如下: def forward

2021-05-07 18:31:21 5501

原创 计算损失函数时RuntimeError: expected device cpu and dtype Float but got device cuda:0 and dtype Float

我用pytorch计算损失函数时出现了RuntimeError: expected device cpu and dtype Float but got device cuda:0 and dtype Float。当时想法是,无论是训练的数据还是定义的模型都通过xx.to(device=device) 放到GPU中去了,所以所有的计算应该是在GPU上进行,因而不应该出现这种错误。然后去网上查了一下说是pytorch版本不对,然后我更换了分别更换了高、低pytorch版本,发现这问题依旧存在。其实这问题是

2021-04-21 19:26:20 721

原创 pytorch 的 DataLoader中的shuffer与随机种子

好多博客都只说简单shuffer与随机种子,没有说清楚他们具体作用,这次我来具体说说。DataLoader用于加载数据到模型中在pytorch 中的数据加载到模型的操作顺序是这样的:① 创建一个 Dataset 对象 (自己去实现以下这个类,内部使用yeild返回一组数据数据)② 创建一个 DataLoader 对象③ 循环这个 DataLoader 对象,将img, label加载到模型中进行训练DataLoader中的shuffer=False表示不打乱数据的顺序,然后以batch为单位从

2021-04-16 21:11:54 20756 12

原创 Java集合之Collections工具类

Collections 是一个操作 Set、 List 和 Map 等集合的工具类(类似于Array是操作数组的一个工具类)。Collections常用方法方法(都是Static方法)描述reverse(List)反转 List 中元素的顺序shuffle(List)对 List 集合元素进行随机排序sort(List)根据元素的自然顺序对指定 List 集合元素按升序排序sort(List,Comparator)根据指定的 Comparator 产生的顺序

2021-01-29 18:40:53 167

原创 Java集合值Map接口

概述:Map与Collection并列存在。用于保存具有映射关系的数据:key-valueMap 中的 key 和 value 都可以是任何引用类型的数据Map 中的 key 用Set来存放, 不允许重复,即同一个 Map 对象所对应的类,须重写hashCode()和equals()方法常用String类作为Map的“键”key 和 value 之间存在单向一对一关系,即通过指定的 key 总能找到唯一的、确定的 valueMap接口的常用实现类: HashMap、 TreeMap、Link

2021-01-29 18:40:03 98

原创 Java集合之Set接口

概述:Set接口是Collection的子接口之一,set接口没有提供额外的方法,所以用的全是Collection接口中的方法。Collection中的方法可见:Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个Set 集合中,则添加操作失败。(List接口中允许包含相同元素).Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals() 方法|----Set接口:存储无序的、不可重复的数据 -->高中讲的“集合”|----HashSet:作为

2021-01-28 19:00:40 209

原创 Java 集合之Collection接口

在Java 集合可分为 Collection 和 Map 两种体系。一:Collection 体系是以Collection 接口为基础,其是定义了存取一组对象的方法的集合。Collection 体系用于存储单列数组。二:Map 体系是以Map接口为基础。其是保存具有映射关系“key-value对”的集合。Map 体系用于存储双列数据。Collection接口继承树可以看到,主要有两个接口List与Set继承自Collection接口:|----List接口:存储有序的、可重复的数据。 有3个类

2021-01-28 18:59:58 217 2

原创 Java 集合之List接口

List接口是Collection的子接口之一,通常用List代替数组(一般指的是ArrayList)。概述:List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引。List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。JDK API中List接口的实现类常用的有: ArrayList、 LinkedList和Vector(基本用不到)。List除了从Collection集合继承的方法外, List 集合里添加了一些根据索引来操作集合元

2021-01-28 18:58:35 158

原创 Java枚举类

1.自定义枚举类声明用final修饰的的私有属性私有化构造器

2021-01-26 23:40:29 164

原创 Java比较器

当设计到对象数组的排序问题,那么就涉及到对象之间的比较问题。而实现对象间的比较问题通常就需要比较对象的大小。 一般通过使用两个接口中的任何一个:Comparable(自然排序) 或 Comparator(定制排序)来实现。实现接口后可通过调用数组或集合中的排序方法对象数组或集合进行排序了。自然排序:Comparable实现 Comparable 的类必须实现 compareTo(Object obj) 方法,两个对象即通过 compareTo(Object obj) 方法的返回值来比较大小。 如果当前

2021-01-25 23:01:45 59

原创 Java中常用的日期时间API

一般最常用到的时间日期的包就是下面这两个:java.time – 包含值对象的基础包java.time.format – 格式化和解析时间和日期在java.time 中常用的类LocalDate代表IOS格式(yyyy-MM-dd)的日期,可以存储 生日、纪念日等日期。LocalTime表示一个时间,而不是日期。LocalDateTime是用来表示日期和时间的, 这是一个最常用的类之一(比上面两个类使用频率高)。方法描述now() / * now(ZoneId zo

2021-01-25 21:14:35 194

原创 Java中String类及其相关的类

public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence {/** The value is used for character storage. */private final char value[];/** Cache the hash code for the string */private int hash; // Default to 0

2021-01-24 16:37:16 153

原创 Java 多线程

并行与并发并行:多个CPU执行多个任务并发:一个CPU“同时”(采取时间片的方式)执行一个任务多线程:为何要用多线程:程序需要同时执行两个或多个任务。程序需要实现一些需要等待的任务时,如用户输入、文件读写操作、网络操作、搜索等。需要一些后台运行的程序时。多线程程序的优点:提高应用程序的响应。对图形化界面更有意义,可增强用户体验。提高计算机系统CPU的利用率改善程序结构。将既长又复杂的进程分为多个线程,独立运行,利于理解和修改线程的四种创建方式:方式一:继承于Thread类

2021-01-23 21:12:03 77

原创 Java中的多态、instanceof

对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)。首先Java实现多态有三个必要条件:继承、重写、向上转型。多态中的执行问题用一句话来理解,“成员变量,静态方法看左边;非静态方法:编译看左边,运行看右边。”注意:在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法,但不能调用子类中父类没有定义过的方法。若是想使用子类中特有的方法,可先通过向下强转,变为子类对象后再调用。向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用类型转为子类引用各类型使用格式

2021-01-22 00:00:47 188

原创 java中的toString方法与System,out.println()

toString()用于返回该对象的字符串表示。通常,我们使用toString 方法返回一个“以文本方式表示”此对象的字符串。Object类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:getClass().getName() + ‘@’ + Integer.toHexString(hashCode())而我们的类都直接或间接继承自Object类,所以一般我们想使用t

2021-01-21 23:16:32 1299

原创 Java 中的“==”与“equal()”

在Java中,“==”与equal是一对容易混淆的概念,到底他们有什么区别、什么时候用==,而什么时候又应该用equal()呢?首先说一下,Java中的变量按照数据类型来分可以分为基本数据类型(如:byte,short,char,int,long,float,double等)和引用数据类型(类、接口、数组)。**对于“==”而言**:一般“==”左右两边用的是基本数据类型,实际上其会判断左右两边对应的ASCII值是否相等,相等则返回true. 而equal方法是不能用于这些原始数据类型的。而若“==

2021-01-21 22:57:13 375 2

空空如也

空空如也

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

TA关注的人

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