- 博客(60)
- 收藏
- 关注
原创 理解Java集合的基本用法—Collection:List、Set 和 Queue,Map
List 是按索引顺序访问的长度可变的有序表,优先使用 ArrayList 而不是 LinkedList;可以直接使用 for each 遍历 List;List 可以和 Array 相互转换。Deque实现了一个双端队列(Double Ended Queue),它可以:将元素添加到队尾或队首:addLast()/offerLast()/addFirst()/offerFirst();
2024-11-27 20:54:55
1026
原创 NotImplementedError: Using RTX 4000 series doesn‘t support faster communication broadband via P2P or
and。
2024-10-15 16:00:50
1291
原创 可能解决方案:WARNING:Retrying (Retry(total=4...after connection broken by ‘SSLError...|Could not fetch URL
可能解决方案:WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1131)'))': /simple/transformers/
2023-11-22 16:34:44
1790
原创 终止进程后,GPU显存仍被占用问题: kill -9彻底杀死进程 | ps aux|grep python | 怎么确认僵尸进程?
问题描述:在Linux终端把进程终止后,发现显存没有被释放出来!
2023-11-12 17:23:13
4555
2
原创 TMUX命令的基本操作和使用
(tmux)假如你需要跑大模型或者数据集特别大的AI任务时,它往往需要花较长时间才能跑完,在跑的过程中,不能断电断网,一旦断电断网则之前跑的epoch全部作废,要重新开始跑。这样的经历往往是刻骨铭心的,这时候tmux的重要作用就完美体现出来了!
2023-11-11 19:39:24
627
原创 Linux服务器下装anaconda | 配置深度学习环境 | Pycharm连接远程服务器-经验总结
Linux服务器下装anaconda | 配置深度学习环境 | Pycharm连接远程服务器-经验总结
2023-10-20 10:33:40
670
原创 深度学习环境安装|PyCharm,Anaconda,PyTorch,CUDA,cuDNN等
PyCharm,Anaconda,PyTorch,CUDA
2023-07-15 16:04:10
2764
1
原创 tensorboard:No dashboards are active for the current data set. Probable causes: You haven’t written
在已训练好的YOLOv5模型上用tensorboard查看模型相关信息时,使用到了命令会出现错误,详见如下所示!
2023-05-09 15:43:02
2622
3
原创 C++统计方形
内存限制:256 MB时间限制:1 S有一个n*m方格的棋盘,求其方格包含多少正方形、长方形(此处长方形不包含正方形)输入存在多组测试数据。每组测试数据输入两个整数n,m,数字不超过5000对于每组数据输出一行包含两个整数,分别表示正方形数目和长方形数目2 38 10。
2023-02-26 16:17:34
1102
原创 C++把十进制转换为其他进制的方法
说明1、头文件是#include 。但可以直接使用万能头文件#include <bits/stdc++.h>。2、itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是存储的目的字符串,第三个参数是转移数字时所用的基数(通常是我们熟知的进制,如二进制的基数就是2,八进制基数就是8)。用例代码#include <bits/stdc++.h>//#include <iostream>//#include <bitset>using na
2022-01-21 22:27:42
3687
原创 n+1/n = 1/x1 + 1/x2 + 1/x3,n为质数,1<=x1,x2,x3<=1000,求整数x1,x2,x3
需求描述已知等式n+1/n = 1/x1 + 1/x2 + 1/x3,n为质数,1<=x1,x2,x3<=1000求整数x1,x2,x3的值并按从小到大的顺序输出。#include<iostream>using namespace std;int s[1000];int flag=0;bool isrepeat(int a,int b,int c)//判断a,b,c是否已重复存在于s[]中 { int fly=0; for( int i=0; i<flag;
2021-11-11 07:56:24
425
原创 字符串加一处理
要求描述一串包含小写字母和数字的混合字符串进行n次加一操作。例:“zz”+1 = “111”、“aa”+1 = “ab”、“az”+1 = “b1”、“a9”+1 = “ba”C++程序清单#include<iostream>#include<string>using namespace std;int main(){ string str,s;//str包含小写字母和数字 int n;//n次+1 int flag=0;//有进位情况为1 int fla
2021-11-10 18:57:56
4863
原创 Android Studio怎么打开我们所创建的SQLite数据库
当我们已经创建好一个SQLite数据库的时候,你需要找到它所在的位置时。路径为 View -> Tool Windows -> Device File Explorer 。如下图所示这时你会看到这个界面一共有两个设备,其中一个是虚拟手机,另一个是使用USB线连接电脑的手机。这两个设备里面都有一个一模一样的数据库,不同的是数据不一样。以手机为例找到第一个data文件,之后再找下一个data文件,最后再找你的项目名文件itcase就是我所创建的数据库,可以把它保存下来在使用SQLi
2021-11-02 20:02:56
3514
原创 编写一个简单的汇编程序(DOSBox 0.74和MASM 6.15)
一、配置环境环境模拟器:DOSBox 0.74挂载的DOS程序:汇编编译程序 MASM 6.15(建议下载6.15的)MASM 6.15大家可自行去网上找资源下载。安装DOSBox 0.74和MASM 6.15成功后(注意MASM 6.15的路径,我安装的路径是H:\MASM)在DOSBox环境下输入命令mount C: H:\MASM语句mount C: H:\MASM表示使用mount命令将实际存放在Windows下H:\MASM的文件映射到DOSBox环境下的C:,该过程也称为挂载
2021-10-29 21:33:49
2960
1
原创 malloc和new的区别
malloc/free(标准库函数)是C语言中一对配合使用的申请/释放内存函数malloc函数原型:void* malloc(unsigned int size)使用示例:data* k = ( data*)malloc(sizeof( data)); malloc左边地括号是类型转换。1、如果malloc开辟内存失败时,返回NULL指针。2、使用malloc函数时要声明分配内存的大小(sizeof( data))。malloc函数从堆上动态分配内存。它开辟一块长度为size的连续内存空间,返回
2021-08-16 17:43:26
528
原创 读者写者问题(读者优先)
一、读者/写者问题定义存在一个多个进程共享的数据区,该数据区可以是一个文件或一块内存空间,甚至可以是一组寄存器:有些进程(reader)只读取这个数据区中的数据,有些进程(writer)只往数据区中写数据。此外,还必须满足以下条件1、任意数量的读进程可同时读这个文件。2、一次只有一个写进程可以写文件。3、若存在一个写进程正在写文件,则禁止任何读进程读文件。4、若存在读进程正在读文件,则任何写进程需等待。直至读进程当前的读进程全部执行完毕!也就是说,读进程不需要排斥其他读进程,而写进程需要排
2021-08-15 10:15:53
4380
原创 Linux下关于进程的简单理解(C语言)
环境:ubuntu18.04一、什么是进程进程是系统中正在运行的一个程序,程序一旦运行就是一个进程。于程序猿而言,进程是我们熟知的运行一个程序。于计算机而言,进程是一个程序的执行/启动。Linux下一个进程在内存中由三部分数据组成,即代码段、堆栈段、数据段。代码段:存放程序代码。堆栈段:存放程序的返回地址、参数、局部变量等。数据段:存放程序的全局变量、常数、动态数据分配的数据空间等。二、终端命令说明ps:查看当前终端进程ps -ef:查看系统全部进程ps - ef |more 同样是
2021-08-13 10:53:38
220
原创 C++迭代器(iterator)
什么是迭代器迭代器是一种可以遍历容器元素的数据类型。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。C++更趋向于使用迭代器而不是数组下标操作,因为标准库为每一种标准容器(如vector、map和list等)定义了一种迭代器类型,而只有少数容器(如vector)支持数组下标操作访问容器元素。可以通过迭代器指向你想访问容器的元素地址,通过*x打印出元素值。这和我们所熟知的指针极其类似。C语言有指针,指针用起来十分灵活高效。C++语言有迭代器,迭代器相对于指针而言功能更为丰富。vector,是数
2021-07-30 20:20:53
52422
17
原创 串的模式匹配算法之KMP算法
了解各种关于串的存储结构信息欢迎点击此处,这里就不做赘述,直奔主题。KMP算法这种改进算法是由Knuth、Morris和Pratt同时设计完成的,因此简称为KMP算法。此算法可以在O(n+m)的时间数量上完成串的模式匹配操作。其改进在于:每当一趟匹配过程中出现字符比较不等时不需回溯 i 指针,而是利用得到的“部分匹配”的结果将模式向右“滑动”尽可能远的一段距离后,继续进行比较。下图为KMP算法的匹配过程下图是利用模式的next函数进行匹配的过程示例C++代码#include<iostr
2021-07-22 23:47:13
1053
原创 串的模式匹配算法之BF算法
与线性表相似,串也有两种基本存储结构,顺序存储和链式存储。但考虑到存储效率和算法的方便性,串多采用顺序存储结构。1、串的顺序存储1)串的定长顺序存储结构类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列按照预定义的大小,为每个定义的串变量分配一个固定长度的存储区。合理这种定义方式是静态的,在编译时刻就确定了串空间的大小。而大多数情况下,串的操作是以串的整体形式参与的,串变量之间的长度相差较大,在操作中串值长度的变化也较大,这样为串变量设定固定大小的空间不尽合理。因此最好是根据实际
2021-07-22 23:28:30
4559
1
原创 循环队列(链式表示和实现)
链队是指采用链式存储结构实现的队列。通常链队用单链表来表示,如下图所示。一个链队显然需要两个分别指向队头和队尾的指针(分别称为头指针和尾指针)才能唯一确定。这里和线性表的单链表一样。为了操作方便起见,给链队添加一个头节点,并令头指针始终指向头结点。下面是队列操作的指针变化状况C++代码#include<iostream>using namespace std;typedef struct qNode{ int data; struct qNode *next;}qNode,
2021-07-21 19:02:38
2773
3
原创 循环队列(顺序表示和实现)
队列有两种存储表示,顺序表示和链式表示。98和顺序栈相类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,尚需附设两个整型变量front和rear分别指向队列头元素和队列尾元素的位置(即称为头指针和尾指针)。为了在C语言中描述方便起见,在此约定:初始化创建空队列时,令front=rear=0,每当插入新的队列尾元素时,尾指针rear增1:每当删除队列头元素时,头指针front增1。因此,在非空队列中,头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个
2021-07-21 00:27:37
695
原创 链栈
链栈是指采用链式存储结构实现的栈。链栈示意图C++代码#include<iostream>#define MAX 6using namespace std;typedef struct StackNode{ int data; struct StackNode *next; }stackNode,*Linkstack;bool initStack(Linkstack &s){ s = NULL; return true;}bool push(stack
2021-07-20 08:49:11
138
原创 顺序栈
顺序栈的表示和实现顺序栈是指利用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。通常习惯的做法是:以top=0表示空栈,鉴于C语言中数组的下标约定从0开始,则当以C语言作描述语言时,如此设定会带来很大不便,因此另设指针base指示栈底元素在顺序栈中的位置。当top和base的值相等时,表示空栈。顺序栈中数据元素和栈元素之间的对应关系如下图所示C++代码#include<iostream>#define
2021-07-20 00:16:43
2575
原创 双向链表的前插法和后插法创建
根据结点插入位置的不同,链表的创建方法可分为前插法和后插法前插法前插法是通过将新节点逐个插入链表的头部(头节点之后)来创建链表,每次申请一个新节点,读入相应的数据元素值,然后将新节点插入到头节点之后。后插法后插法是通过将新节点逐个插入到链表的尾部来创建链表。同前插法一样,每次申请一个新节点,读入相应的数据元素值。不同的是,为了使新节点能够插入到表尾,需要增加一个尾指针 r 指向链表的尾结点。前插法和后插法过程示意图与单链表的创建类似,只不过是多了个prior前驱指针C++代码#include&
2021-07-17 23:06:33
4273
2
原创 单链表的前插法和后插法创建
根据结点插入位置的不同,链表的创建方法可分为前插法和后插法前插法前插法是通过将新节点逐个插入链表的头部(头节点之后)来创建链表,每次申请一个新节点,读入相应的数据元素值,然后将新节点插入到头节点之后。后插法后插法是通过将新节点逐个插入到链表的尾部来创建链表。同前插法一样,每次申请一个新节点,读入相应的数据元素值。不同的是,为了使新节点能够插入到表尾,需要增加一个尾指针 r 指向链表的尾结点。前插法创建单链表过程示意图后插法创建单链表过程示意图C++代码#include<iostre
2021-07-17 22:57:30
9848
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人