草庐IT

RuntimeError: CUDA out of memory 已解决

先说下我的电脑环境:win103060titorch10python3.8cuda11.3RuntimeError:CUDAoutofmemory.Triedtoallocate128.00MiB(GPU0;23.70GiBtotalcapacity;7.44GiBalreadyallocated;87.88MiBfree;7.71GiBreservedintotalbyPyTorch)Ifreservedmemoryis>>allocatedmemorytrysettingmax_split_size_mbtoavoidfragmentation.SeedocumentationforMem

opencv进阶19-基于opencv 决策树cv::ml::DTrees 实现demo示例

opencv中创建决策树cv::ml::DTrees类表示单个决策树或决策树集合,它是RTrees和Boost的基类。CART是二叉树,可用于分类或回归。对于分类,每个叶子节点都标有类标签,多个叶子节点可能具有相同的标签。对于回归,每个叶子节点都被分配了常数,因此近似函数是分段常数。创建空决策树cv::ml::DTrees::create函数可使用指定的参数创建空决策树,之后使用cv::ml::StatModel::train函数训练该决策树模型;或者使用Algorithm::load(filename)从文件中加载决策树模型。模型的基本设置以下是构建决策树模型的必要参数,绝大部分参数有默认值

数字图像处理 --- 相机的内参与外参(CV学习笔记)

PinholeCameraModel(针孔相机模型)        针孔相机是一种没有镜头、只有一个小光圈的简单相机。光线穿过光圈并在相机的另一侧呈现倒立的图像。为了建模方便,我们可以把物理成像平面(imageplane)上的图像移到实际场景(3Dobject)和焦点(focalpoint)之间,把他想象成一个和物理成像平面等大小的虚拟图像平面(Virtualimageplane),这样一来就不再是倒立的图像,而是直立图像。         有了相机后,上图中的蓝色盒子就变成了相机,上图中的物理成像平面Imageplane也被数字化到由一个个pixel组成的sensor上,并保存下来。因此,对

cuda、cudnn、英伟达驱动版本对应关系

根据显卡型号、cuda版本确定英伟达驱动版本能够支持某一型号的GPU的英伟达驱动是一定的,我们想使用的tensorflow版本也是已知的,该tensorflow版本依赖的cuda版本也是一定的。所以根据显卡型号和cuda版本可以确定显卡驱动。参考链接:https://www.jianshu.com/p/7f6ae178121chttps://blog.csdn.net/weixin_42545878/article/details/94735192英伟达驱动、cuda、cudnn之间版本的对应关系:https://docs.nvidia.com/cuda/cuda-toolkit-releas

opencv视频截取每一帧并保存为图片python代码CV2实现练习

当涉及到视频处理时,Python中的OpenCV库提供了强大的功能,可以方便地从视频中截取每一帧并将其保存为图片。这是一个很有趣的练习,可以让你更深入地了解图像处理和多媒体操作。使用OpenCV库,你可以轻松地读取视频文件,并在循环中逐帧读取视频的每一帧。随后,你可以将这些帧保存为独立的图片文件,使得你能够以图片的形式呈现视频的每个时间段。以下是一个示例代码,展示了如何实现视频每一帧截取并保存为图片:importcv2importos#创建保存图片的文件夹ifnotos.path.exists('images'):os.mkdir('images')cap=cv2.VideoCapture("

OpenCV中cv2的常见用法

一、读入图像使用函数cv2.imread(filepath,flags)读入一副图片filepath:要读入图片的完整路径flags:读入图片的标志cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道cv2.IMREAD_GRAYSCALE:读入灰度图片cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道importcv2img=cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)二、显示图像使用函数cv2.imshow(wname,img)显示图像,第一个参数是显示图像的窗口的名字,第二个参数是要显示的图

opencv 进阶13-Fisherfaces 人脸识别-函数cv2.face.FisherFaceRecognizer_create()

Fisherfaces人脸识别PCA方法是EigenFaces方法的核心,它找到了最大化数据总方差特征的线性组合。不可否认,EigenFaces是一种非常有效的方法,但是它的缺点在于在操作过程中会损失许多特征信息。因此,在一些情况下,如果损失的信息正好是用于分类的关键信息,必然会导致无法完成分类。Fisherfaces采用LDA(LinearDiscriminantAnalysis,线性判别分析)实现人脸识别。线性判别识别最早由Fisher在1936年提出,是一种经典的线性学习方法,也被称为“Fisher判别分析法”。基本原理线性判别分析在对特征降维的同时考虑类别信息。其思路是:在低维表示下,

Ubuntu22.04安装CUDA11.8和CUDNN

下载CUDA11.8下载CUDA11.8选择对应的系统架构OS版本逐步执行上图命令编辑环境变量文件sudogedit~/.bashrc配置环境变量exportPATH=/usr/local/cuda-11.8/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH重启重启重启重要的事情说三边查看版本nvcc-V结果安装cudnn下载cudnn找到适合你的cudnnhttps://developer.nvidia.com/rdp/cudnn-archive#a-collapse7415-10安装cudn

《CUDA编程:基础与实践》读书笔记(4):CUDA流

1.CUDA流一个CUDA流指的是由主机发出的在一个设备中执行的CUDA操作序列。除主机端发出的流之外,还有设备端发出的流,但本文不考虑后者。一个CUDA流中的各个操作按照主机发布的次序执行;但来自两个不同CUDA流的操作不一定按照某个次序执行,有可能是并发或者交错地执行。任何CUDA操作都存在于某个CUDA流中,如果没有明确指定CUDA流,那么所有CUDA操作都是在默认流中执行的。非默认CUDA流由cudaStream_t类型的变量表示,它由如下CUDA运行时API产生与销毁:cudaError_tcudaStreamCreate(cudaStream_t*pStream);cudaErro

Ubuntu20.04LTS安装CUDA并支持多版本切换

文章目录1.前置知识2.查看显卡驱动版本号3.查看显卡驱动版本号和CUDA版本对应关系4.查看经典的CUDA版本号5.安装CUDA5.1.下载CUDA安装包5.2.执行CUDA安装5.3.配置环境变量5.4.CUDA多版本管理1.前置知识如果Ubuntu系统还没有安装显卡驱动,参考这篇文章:Ubuntu20.04LTS安装RTX-3060显卡驱动2.查看显卡驱动版本号当显卡驱动安装完成后,需要使用nvidia-smi命令查看英伟达显卡驱动版本。nvidia-smi如上图所示,英伟达驱动版本为520.61.05,CUDA最高支持的版本为11.8。3.查看显卡驱动版本号和CUDA版本对应关系点击该