自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 神经网络训练的优化方法

01 考虑换一种学习率 schedule学习率 schedule 的选择对模型的收敛速度和泛化能力有很大的影响。Leslie N. Smith 等人在论文《Cyclical Learning Rates for Training Neural Networks》、《Super-Convergence: Very Fast Training of Neural Networks Using Large Learning Rates 》中提出了周期性(Cyclical)学习率以及 1Cycle 学习率 sch

2022-01-05 18:18:40 594

原创 CUDA的编程模型

CUDA 编程模型提供了 GPU 架构的抽象,作为应用程序与其在 GPU 硬件上的可能实现之间的桥梁。这篇文章概述了 CUDA 编程模型的主要概念,概述了它们如何在 C/C++ 等通用编程语言中公开。先介绍一下CUDA编程模型中广泛使用的两个关键字:host和device。主机是系统中可用的 CPU。与 CPU 相关联的系统内存称为主机内存。GPU 称为设备,GPU 内存也称为设备内存。要执行任何 CUDA 程序,有三个主要步骤:将输入数据从主机内存复制到设备内存,也称为主机到设备传输。加载 G.

2021-12-14 23:07:13 1149

原创 CUDA之GPU生态系统

易于编程和性能的巨大飞跃是 CUDA 平台被广泛采用的关键原因之一。CUDA 平台成功的第二大原因是拥有广泛而丰富的生态系统。与任何新平台一样,CUDA 的成功取决于可用于 CUDA 生态系统的工具、库、应用程序和合作伙伴。任何新的计算平台都需要开发人员将应用程序移植到新平台。为此,开发人员需要最先进的工具和开发环境。应用程序开始扩展后,在数据中心级别需要更多工具。NVIDIA 致力于为开发者和企业提供最先进的工具和生态系统服务。图 1:CUDA 生态系统:使 CUDA 平台成为最佳开发者选择的构建

2021-12-14 22:47:29 4454 1

原创 CUDA的基础知识

科学和商业的进步推动了对更多计算资源和工作负载加速的永不满足的需求。并行编程是开发人员加速应用程序的一种深刻方式。然而,它有一些共同的挑战。第一个挑战是简化并行编程,使其易于编程。简单的编程吸引了更多的开发人员,并激励他们在并行处理器上移植更多的应用程序。第二个挑战是开发应用软件,以透明地扩展其并行性,以利用越来越多的带有 GPU 的处理器内核。在这篇文章中,我将讨论 CUDA 如何应对这些挑战。CUDA 简介NVIDIA 发明了 CUDA 编程模型并解决了这些挑战。CUDA 是一种并行计算平台和.

2021-12-14 22:16:39 585

原创 CUDA之GPU计算的起源

科学发现和业务分析推动了对更多计算资源的永不满足的需求。许多应用程序——天气预报、计算流体动力学模拟,以及最近的机器学习和深度学习——需要比当前可用的计算能力高一个数量级,更复杂的算法需要更多的计算能力来运行。计算行业依靠各种方式来提供所需的性能,例如增加晶体管密度、指令级并行、Dennard scaling等正如摩尔定律所预测的那样,晶体管密度的增加推动了计算需求,并使芯片晶体管密度每 18 个月翻一番。指令级并行等技术也有助于提高性能,但从 2001 年左右开始,回报开始下降。直到 2005 .

2021-12-14 21:44:13 3034

原创 CUDA之Stream介绍

一、Stream的概念用到CUDA的程序一般需要处理海量的数据,内存带宽经常会成为主要的瓶颈。在Stream的帮助下,CUDA程序可以有效地将内存读取和数值运算并行,从而提升数据的吞吐量。Cuda stream是指一堆异步的cuda操作,他们按照host代码调用的顺序执行在device上。典型的cuda编程模式我们已经熟知了:· 将输入数据从host转移到device· 在device上执行kernel· 将结果从device上转移回hostCuda Streams所有的cuda操作(包括k

2021-12-10 09:37:29 6085 3

原创 Maven的依赖范围与依赖传递

一、Maven的依赖范围依赖范围就是用来控制依赖与这三种classpath(编译classpath、测试classpath、运行classpath)的关系,Maven有以下几种依赖范围。compile: 编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的maven依赖,对于编译 测试 运行三种的classpath都有效。test:测试依赖范围。使用此依赖范围的Maven依赖,只对于测试的classpath有效,在编译主代码或者运行主代码的时候都无法依赖此类依赖。典型的例子是jUni

2021-12-08 19:08:34 453

原创 Maven的继承及聚合

一、聚合在Maven中,子项目是可以继承父项目中的依赖的,比如说我们有一个父项目parent,该父项目拥有一个子项目sun,如果在父项目中依赖了dom4j,那么在子项目sun中即便是没有引入dom4j的相关jar包,在子项目中仍然能够使用dom4j,因为子项目天然继承了父项目中的依赖关系。首先创建一个父项目parent,package选择pom。对应pom.xml代码如下所示:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs

2021-12-08 19:08:07 194

原创 Maven的生命周期

一、生命周期简介:Maven强大的一个重要的原因是它有一个十分完善的生命周期模型,这个生命周期可以从两方面来理解:运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我们使用Maven变得简单。这个模型是一种标准,在不同的项目中,使用Maven的接口是一样的,这样就不用去仔细理解每个项目的构建了,一般情况下,mvn clean install 这样的命令是通用的。Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点

2021-12-07 20:05:11 1556

原创 IDE工具集成Maven

一、Eclipse中配置Maven打开Eclipse,选择Window菜单中的Preferences,在里弹出的菜单面找到Maven选项,并选择User Settings。然后分别选择配置文件,本地仓库会自动获取。二、创建Maven项目在Eclipse的项目区中右键新建,选择Other。在弹出的窗口中找到Maven,并选择Maven Project点击next。勾选create a simple project(创建一个基本的Maven项目)选项,然后点击next。打开New Maven

2021-12-07 19:57:37 520

原创 Maven的常用命令

一、Maven常用命令及其作用命令描述mvn clean对项目进行清理,删除target目录下编译的内容mvn compile编译项目源代码mvn test对项目进行运行测试mvn package打包文件并存放到项目的target目录下,打包好的文件通常都是编译后的class文件mvn install在本地仓库生成仓库的安装包,可供其他项目引用,同时打包后的文件放到项目的target目录下二、常用命令使用场景举例1. mvn clean pac

2021-12-07 18:42:45 24656

原创 Maven核心概念介绍

一、仓库在 Maven 的术语中,仓库是一个位置(place)。Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。以下是Maven中仓库的概念及关系1、本地仓库放在本地磁盘的maven仓库maven 的本地仓库,在安装 maven 后并不会创建,是在第一次执行 maven 命令的时候才被

2021-12-07 18:33:55 166

原创 Maven的安装与配置

一、下载与安装从官网下载Maven的压缩包,解压到合适的位置为方便使用其提供的命令,可以将bin目录配置到环境变量path验证Maven的安装打开cmd控制台,输入命令:mvn -version验证Maven安装成功。二、修改配置文件修改配置文件conf/settings.xml,主要修改localRepository,mirror,profile1、配置本地化仓库Maven是通过将第三方jar包,自动下载到本地的一个空间(我们称为本地仓库)保存之后使用的。其在默认情况下Maven的本地

2021-12-07 18:13:02 150

原创 Maven的介绍

一、Maven是什么?Maven是Apache推出的一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。

2021-12-07 18:08:51 463

原创 MySQL的E-R图

一、什么是E-R图E-R图,全称:实体-关系模型图,是指通过实体、关系、属性三个基本概念,来概括数据的基本结构,从而描述静态数据结构的概念模式。组成E-R图的3个核心要素:实体,属性,和关系实体一般采用矩形来进行表示,属性使用椭圆来进行表示,而实体与实体的关系则通过菱形来进行表示,例如:在E-R图中,可以通过菱形来描述多种实体关系,例如:1对1,1对多,多对多,自关联等二、构建E-R图的目的构建E-R图,属于软件开发流程中的需求设计阶段。针对甲方所提的问题域,我们将分析其中实体对象的关系,确

2021-12-07 14:26:16 8345 1

原创 MySQL数据库安装

MySQL数据库支持目前主流的几乎所有的操作系统,尤其是Unit/Linux/Windows/MacOS等。也是目前非常流行的数据库管理系统,适用于中小型企业甚至大型企业应用系统。接下来我们在Windows上演示安装MySQL:一、Windows安装MySQL(1)从官网MySQL官网下载MySQL社区版5.7.33,并运行安装程序(2)选择“Custom”进行自定义安装(3)移除所有备选组件,选择MySQL Server 5.7.33 - X64(4)选择继续执行(5)对MySQL进行

2021-12-07 11:31:38 195

原创 MySQL数据库基础

一、什么是数据库?数据库(DataBase),顾名思义,是存储数据的仓库中。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库管理数据有诸多优点,如降低存褚储数据的冗余度,存储的数据可以共享,便于维护数据完整性,能够实现数据的安全性等。数据库的发展经历了萌芽、初级、中级、和高级阶段。(1)第一个阶段使用磁盘文件来存储数据;初级阶段的数据库也就是第一代数据库,出现了网状模型、层次模型数据库;当然,用文件来保存数据是再正常不过的事了,虽然是第一代,但是并不代表就无用武之地。比如我们现在

2021-12-07 10:53:17 261

转载 OpenCL学习入门

1.OpenCL概念OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU、GPU或其他类型的处理器组成。OpenCL由一门用于编写kernels (在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。OpenCL提供了两种层面的并行机制:任务并行与数据并行。名词的概念:Platform (平台):主机加上OpenCL框架管理下的若干设备构成了这个平台,通过这个平台,应用程序可以与设备共享资源并在设备上执行kernel。实际使用中基本上一个厂商对应一个

2021-12-07 09:55:03 7696 2

原创 分析工具 nvprof简介

nvprof 是一个可用于Linux、Windows和OS X的命令行探查器。使用 nvprof ./myApp 运行我的应用程序,我可以快速看到它所使用的所有内核和内存副本的摘要,摘要将对同一内核的所有调用组合在一起,显示每个内核的总时间和总应用程序时间的百分比。除了摘要模式之外, nvprof 还支持 GPU – 跟踪和API跟踪模式 ,它可以让您看到所有内核启动和内存副本的完整列表,在API跟踪模式下,还可以看到所有CUDA API调用的完整列表。下面是一个使用 nvprof --print-g

2021-11-30 11:26:12 6272

原创 Java Object类小结

1 概述java.lang.object类是Java语言的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有指定的父类,那么则默认继承自Object类。例如:public class MyClass /*extends Object*/ { // ...}public String toString(): 返回该对象的字符串表示。 public boolean equals(Object obj): 指示其他某

2020-06-19 11:55:26 113 1

原创 Java多态小结

1.1 概述定义多态:是指同一行为,具有多个不同的表现形式。前提继承或者实现。 方法的重写。 父类引用指向子类对象。2.2 多态的体现多态体现的格式父类类型变量名=new子类对象;变量名.方法名();父类类型:实现的父接口类型。代码如下:Fuf=newZi();f.method();当使用多态调用方法时,首先检查父类中是否有该方法,如果没有则编译错误;如果有,执行的是子类重写后方法。代码如下:定义父类:publicabstra...

2020-06-08 23:45:02 131

原创 Java接口

1.1 概述接口,是Java语言中一种引用类型,是方法的集合,如何说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。接口的定义,它与定义类方式相似,但是使用了interface关键字。它也会被编译成.class文件,与类不同的是它是一种引用数据类型。引用数据类型:数组,类,接口。接口的使用,它不能创建对象,但可以被实现(implements,类似于被继承)。一个实现接口的类

2020-06-07 13:13:16 169

原创 Java内部类

1.概述什么是内部类将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。成员内部类成员内部类:定义在类中方法外的类,定义格式如下:class外部类{class内部类{}}访问特点内部类可以直接访问外部类的成员,包括私有成员。 外部类要访问内部类成员,必须要建立内部类的对象。创建内部类对象格式:外部类名.内部类名对象名=new外部类型().new内部类型();访问演示,代码如下:定义类:publ...

2020-06-07 11:44:45 1255

原创 final关键字小结

1.1 概述final:不可改变,可以用于修饰类,方法和变量类:被修饰的类,不能被继承。 方法:被修饰的方法,不能被重写。 变量:被修饰的变量,不能被重新赋值。1.2 使用方式修饰类:final class 类名{}修饰方法:修饰符 final 返回值类型 方法名(参数列表){ //方法体}修饰变量: 1.局部变量----基本类型基本类型的局部变量,被final修饰后,只能赋值一次,不能再更改。代码如下:publicclassFin...

2020-06-06 23:12:32 155

空空如也

空空如也

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

TA关注的人

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