- 博客(47)
- 收藏
- 关注
原创 【框架】简化多卡训练——huggingface accelerate使用方法介绍
HuggingFace 的 accelerate 库可以实现只需要修改几行代码就可以实现ddp训练,且支持混合精度训练和TPU训练。(甚至支持deepspeed。accelerate支持的训练方式为CPU/单GPU (TPU)/多GPU(TPU) DDP模式/fp32/fp16等。
2024-05-20 12:17:52
4605
原创 【Git】git常见问题
这时如果确认不需要回退,可以将.git问价初始化为一开始的样子以减少空间的占用。需要注意的是,强制覆盖本地的git冲突将会丢失本地的所有修改,包括未提交的更改。主要的思路是首先复制目标分支到一个新的分支,删除旧的分支后将复制的分支名修改为原来的名称。当本地和github上的仓库冲突的时候,且确认本地的仓库需要更新为远端仓库,此时如果本地和远端有冲突,如何强制覆盖本地仓库?命令来查看工作区的状态,确保没有未提交的更改。这个命令的作用是将本地分支的指针指向远程分支的最新提交。首先,确认您当前的工作区是干净的。
2024-05-15 21:38:59
142
原创 【Linux】Ubuntu内存管理
简单介绍下Ubuntu中关于内存的相关操作。起因是当服务器运行久了之后,感觉内存、缓存、swap分区有很多垃圾,影响运行。
2024-02-24 11:05:57
315
原创 【Anaconda】jupyter notebook 报错
使用 anaconda 时,当 base 环境的 jupyter 可以用而自己创建的虚拟环境报出以下错误时import win32apiImportError: DLL load failed while importing win32api: 找不到指定的模块。很有可能是 pywin32 版本过高。这时在 anaconda 中输入pip install --upgrade pywin32==225降低pywin32版本即可。...
2023-11-30 21:18:09
107
原创 【Linux】终端复用与会话管理工具——tmux
Tmux 是 Terminal Multiplexer 的简称,它是一款优秀的终端复用软件,类似 GNU screen,但比screen更出色。tmux来自于OpenBSD,采用BSD授权。使用它最直观的好处就是, 通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机, 还有一个好处就是当终端关闭后该shell里面运行的任务进程也会随之中断,通过使用tmux就能很容易的解决这个问题。Tmux 可用于在一个终端窗口中运行多个终端会话。
2023-11-20 20:15:22
125
原创 【Linux】使用shell占用空间
表示读写 1000次,这样就指定了生成文件的大小为1000M=1G。上述为占用500G空间的代码。表示每一次读写1M数据。
2023-06-02 10:34:40
221
原创 【Python】数据结构——集合set
集合set是一个类list的数据结构,但是保证具有集合的特性,即不能有重复元素。往集合中添加重复元素不会改变集合。
2023-03-19 12:09:44
165
原创 【安装】Windows10安装Chocolatey并使用其安装ffmpeg
windows10安装chocolatey,并使用chocolatey安装ffmpeg
2022-09-27 20:32:02
718
2
原创 【Java进阶】08-反射和代理
Java 反射机制Java 类型信息获取 Java 运行时的类型信息有两种方式RTTI (Run-Time Type Identification)Java 反射机制RTTI在运行时,可恶意识别一个对象的类型从数组中取出元素时,会自动转为各个元素的公共基类使用。而且 Java 中所有的类型转换都是在运行的时候检查正确性的。大部分代码尽量少地了解对象的具体类型,而是只与对象家族中的一个通用基类打交道Java 反射机制Java 反射机制是在运行状态中,对于任意一个类,都可以知道这个类
2021-05-08 12:16:43
236
原创 【Java进阶】07-Java集合类进阶
概述首先看一下集合类的继承关系ArrayListList接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。非线程安全底层使用的数据结构为数组适合查改,弱于增删方法介绍set()public E set(int index, E element)将下标为 index 的元素替代为 element,并返回旧值add()public boolean add(E e)在末尾添加新的成员 e,速度较快,返回是否成功public void add(in
2021-05-07 21:18:32
79
原创 【Java进阶】06-JVM简介
java 中不需要像 c++ 一样显式地 deletegcroot garbage collection root释放引用,使用设置这个引用为 null。使用 get 方法就可以得到对象system.gc() 方法会影响系统性能位图算法
2021-05-07 15:47:14
77
原创 【Java基础】07-图形用户界面(上)
绘图Graphics 类图形环境和图形对象:坐标:GUI 组件的左上角为(0, 0),水平坐标 x 从左向右增加,垂直坐标 y 从上到下增加。(这里和图片的坐标一致,如 OpenCV 里面图片坐标的表示方法,而和数组、矩阵、张量的行列方式表示相反。)x 和 y 为整数值,以像素为单位。Graphics 对象:Graphics 是专门管理图形环境的一个抽象类,在 java.awt 包下面,提供了一套与平台无关的绘图接口。各个平台上实现的其实是 Java 系统创建的 Graphics 类的一个子类,用
2021-04-28 20:22:24
240
原创 【Java进阶】04-网络编程(上)
基础概念网络编程操作的方便是 Java 的一个特性,或者说 Java 是一门面向网络的编程语言。JDK提供的 java.net 包里面提供了许多工具,可以满足我们很多基于网络通讯开发的要求。复习一下网络的概念这里只重新说一下端口号的概念。保留端口号为 1 - 1024,主要功能是标定一些公认的应用层协议,如 80 端口对应 http 协议,21 - ftp,23 - telnet,25 - smtp(smtp是一种发送邮件的协议)。实际上,一个端口就对应一个进程,一个进程对应一种服务,我们请求网络资源
2021-04-26 17:26:18
209
原创 【Java进阶】03-线程(下)
线程安全的概念线程安全指的不是线程是否安全,而是指整个程序运行的正确性和安全性。当多个线程访问同一个对象的时候,如果不用考虑这些线程在运行环境下的调度和交替执行,也不用进行额外的同步,也不用调用方进行任何其他的协调操作,调用这个对象的行为也可以获得正确的结果,那么这个对象是线程安全的。 —— Brian Goetz <Java Concurrency in Parctice>简而言之就是结果的正确性不受多个线程调度顺序的影响,在任何地方中断也没事。线程安全分为如下几个类型:不可变、
2021-04-25 12:20:48
120
原创 【Java多线程】多线程判断一个数是否为完全数
题目完全数(Perfect Number)的定义:如果一个正整数 N 的所有因数(把包括 N 本身)的和还是 N,则 N 是一个完全数。如:6,28,496,8128等。现在要程序读取 N 和 P,要求创建 P 个线程,判断 N 是否为 完全数。我们可以使用 P 个线程判断 1 到 N-1 是否为 N 的因数,然后输出是否为完全数代码如下:import java.util.Scanner;import java.util.concurrent.CountDownLatch;class Numb
2021-04-24 16:42:33
688
原创 【Java进阶】02-线程(中)
线程同步同步和互斥线程的同步分为互斥和同步互斥:同时运行的几个线程需要共享一些数据,而这些共享的数据在一个时刻只允许一个线程对其进行操作,否则就可能出错。如对某个数据的读和写操作,如果不严格控制,可能发生读写错误。同步:有时线程之间需要相互配合,一个线程的运行以另一个线程的结果为前提。如生产者——消费者问题。生产——售票问题这里结合上一篇文章的售票过程,模拟类似生产者——消费者问题的过程。【前提】假定两个线程模拟存票、售票的过程;开始售票时售票处没有票,一个线程往里面存票,另一个线程售出票
2021-04-24 10:41:23
231
原创 【Java进阶】01-线程(上)
线程的基本概念一个线程是一个程序内部的顺序控制流。和进程的比较每个进程有独立的代码和数据的空间(进程上下文),进程间切换的开销比较大线程是轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。多进程: OS 中有多个任务能够同时运行多线程:同一个应用程序中有多个顺序流同时执行,即一个程序的多个代码段同时执行。线程的概念模型线程需要有虚拟的 CPU,封装在 java.lang.Thread 类中,使得线程得到 CPU 资源CPU 所
2021-04-22 20:40:18
222
原创 【Java基础】05-输入输出(上)
异常在Java中根据错误严重程度的不同,可以将其分为错误和异常。错误是程序无法处理的,所有错误继承自Error类;异常是程序可以捕获和处理的,所有异常继承自Exception类。异常分为两种:非检查型异常:继承自RuntimeException不希望程序捕获,在方法体之中也不需要处理,编译器也不进行检查。例如引用为空异常,如果使用引用的时候都认为写代码检查是否为空,代码就会变得很繁琐和冗长。检查型异常这是我们需要捕获处理的,编译器也必须进行检查。非检查型异常举例Arit
2021-04-12 16:33:26
322
1
原创 【Java基础】04-接口与多态
接口Java中类只能单继承,但是可以实现多个接口。接口相当于一个纯的抽象类,里面规定的方法只能声明原型,不能实现。接口中可以包含数据成员,但是都默认为static+final,所以基本数据类型的成员需要初始化,对象成员需要立刻调用构造方法。接口的机制可以将不同的功能方法放入不同的接口中,从而条理清晰地实现各种组合的功能;接口可以实现不同类之间的常量共享。声明:[接口修饰符] interface 接口名称 [extends 父接口名称]{\quad方法原型声明或者静态数据;}接口中的数据默认是不
2021-04-10 17:32:05
313
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人