GPU版本pytorch安装教程
第一步:下载cuda和cudnn
1.首先要查看自己电脑英伟达gpu的版本从而下载相应的cuda版本,有两种方法查看:
①打开cmd命令行:输入nvcc –version
例如我的版本就是11.6的

②进入控制版面–>硬件和声音–>NVIDIA控制面板–>帮助点系统信息–>点击组件即可看到
2.cuda下载地址:CUDA Toolkit Archive | NVIDIA Developer
下载对应版本的cuda即可

选择要下载的适当版本:
[En]
Select the appropriate version to download:

3.下一步下载cudnn,链接:
cuDNN Archive | NVIDIA Developer
选择对应版本:

点击注册或登录NVIDIA账号即可下载,非常麻烦,在这里可以将下载链接复制到迅雷直接下载更方便
[En]
Click to register or log in to the Nvidia account to download, very troublesome, here you can right copy download link to Xunlei direct download more convenient
第二部:安装CUDA、cudnn和配置环境变量
1.安装cuda:
双击运行下载好的cuda的exe文件,安装时不要乱改路径,一路OK,同意等待就好了
选择自定义安装


后面的路径也不要改,直接安装即可。安装完成后cmd命令行输入”nvcc -V”,查看是否成功
例如这样就可以了:

2.轮到cudnn了
将下载好的压缩包解压后重命名里面的文件名为”cudnn”,然后再复制到该路径下

然后别忘了配置环境变量(我忘了两次)
[En]
Then don’t forget to configure environment variables (I forgot twice)
找到控制面板–>系统和安全–>系统(或进入我的电脑,右键选择属性)选高级系统设置找到环境变量

进入path这个变量

创建一个新路径并添加这两条路径。
[En]
Create a new one and add these two paths.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\cudnn\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\extras\CUPTI\lib64
第三步:下载cudatoolkit和GPU版本的 pytorch 、pytorchvision
1.cudatoolkit下载链接:Start Locally | PyTorch
选择对应版本的,复制命令取cmd里执行即可(第一次有部分包安装失败可以多尝试几次)

下载完在cmd里输入”conda list”查看,有cudatoolkit即可

2.GPU版本的pytorch、pytorchvision的下载链接:https://download.pytorch.org/whl/torch_stable.html
里面的文件是cpu开头的是CPU版本,cu才是我们要下的gpu版本
我的cuda版本比较高,下的是1.9.1的torch版本(cuda版本对应的具体torch版本可以百度);我的python是3.9的,对应的是后面的39;区别win和linux

torchvision也一样

下载好后放在同一个目录下,在cmd下进入这个路径,pip install +”文件名”(注意有引号)
(cmd进入指定目录的方法:①输入”盘符+ : “②输入”cd+空格+指定路径+回车”)
查看检验方法:输入命令:pip list,看到一下就好了


Ture说明成功了。
Original: https://blog.csdn.net/Guoyingyuan/article/details/124497041Author: ~柠檬味~Title: GPU版本pytorch安装教程
相关阅读Title: 【笔记】opencv阈值处理 threshold函数 cv2.THRESH_BINARY ,cv2.THRESH_TRUNC) cv2.adaptiveThreshold()
像素是在模拟图像数字化时对连续空间进行离散化得到的。每个像素具有整数行(高)和列(宽)位置坐标,同时每个像素都具有整数灰度值或颜色值。
threshold函数
返回的第一个参数为阈值,第二个为结果图像ret,dst = cv2.threshold(src,thresh,maxval,type)
二值化阈值处理(cv2.THRESH_BINARY)
二值化阈值处理会将原始图像处理为仅有两个值的二值图像,其针对像素点的处理方式为:在8位图像中,最大值是255。因此,在对8位灰度图像进行二值化时,如果将阈值设定为127,那么: ● 所有大于127的像素点会被处理为255。 ● 其余值会被处理为0。阈值设置为210:
设置为240:
; 反二值化阈值处理(cv2.THRESH_BINARY_INV)
反二值化阈值处理的结果也是仅有两个值的二值图像,与二值化阈值处理的区别在于,二者对像素值的处理方式不同。反二值化阈值处理针对像素点的处理方式为:● 对于灰度值大于阈值的像素点,将其值设定为0。● 对于灰度值小于或等于阈值的像素点,将其值设定为255。上面的图使用反二值化阈值处理之后:
截断阈值化处理(cv2.THRESH_TRUNC))
截断阈值化处理会将图像中大于阈值的像素点的值设定为阈值,小于或等于该阈值的像素点的值保持不变设置上面图片的阈值为210来处理:
发现设置为240时跟原图感觉差不多,说明像素值大于240的很少; 超阈值零处理(cv2.THRESH_TOZERO_INV)
超阈值零处理会将图像中大于阈值的像素点的值处理为0,小于或等于该阈值的像素点的值保持不变。即先选定一个阈值,然后对图像做如下处理:● 对于像素值大于阈值的像素点,其像素值将被处理为0。● 对于像素值小于或等于阈值的像素点,其像素值将保持不变。
低阈值零处理(cv2.THRESH_TOZERO)
低阈值零处理会将图像中小于或等于阈值的像素点的值处理为0,大于阈值的像素点的值保持不变。即先选定一个阈值,然后对图像做如下处理:● 对于像素值大于阈值的像素点,其值将保持不变。● 对于像素值小于或等于阈值的像素点,其值将被处理为0。
自适应阈值处理
对于色彩均衡的图像,直接使用一个阈值就能完成对图像的阈值化处理。但是,有时图像的色彩是不均衡的,此时如果只使用一个阈值,就无法得到清晰有效的阈值分割结果图像。 有一种改进的阈值处理技术,其使用变化的阈值完成对图像的阈值处理,这种技术被称为自适应阈值处理。在进行阈值处理时,自适应阈值处理的方式通过计算每个像素点周围临近区域的加权平均值获得阈值,并使用该阈值对当前像素点进行处理。与普通的阈值处理方法相比,自适应阈值处理能够更好地处理明暗差异较大的图像。 OpenCV提供了函数cv2.adaptiveThreshold()来实现自适应阈值dst=cv.adaptiveThreshold(src,maxValue,adaptiveMethod,thresholdType,blockSize,C)● dst代表自适应阈值处理结果。● src代表要进行处理的原始图像。需要注意的是,该图像必须是8位单通道的图像。● maxValue代表最大值。● adaptiveMethod代表自适应方法。函数包含cv2.ADAPTIVE_THRESH_MEAN_C和cv2.ADAPTIVE_THRESH_GAUSSIAN_C两种不同的方法这两种方法都是逐个像素地计算自适应阈值,自适应阈值等于每个像素由参数blockSize所指定邻域的加权平均值减去常量C。两种不同的方法在计算邻域的加权平均值时所采用的方式不同: 【● cv2.ADAPTIVE_THRESH_MEAN_C:邻域所有像素点的权重值是一致的。● cv2.ADAPTIVE_THRESH_GAUSSIAN_C:与邻域各个像素点到中心点的距离有关,通过高斯方程得到各个点的权重值。】
● thresholdType 代表阈值处理方式,该值必须是 cv2.THRESH_BINARY 或者cv2.THRESH_BINARY_INV中的一个。● blockSize代表块大小。表示一个像素在计算其阈值时所使用的邻域尺寸,通常为3、5、7等。● C是常量。一开始用这个方法的时候由于图片不是单通道的,导致报错,一定要注意。报错:
dst2 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,3)
cv2.error: OpenCV(4.5.1)C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wvn_it83\opencv\modules\imgproc\src\thresh.cpp:1676:error: (-215:Assertion failed) src.type() == CV_8UC1 in function‘cv::adaptiveThreshold’
加上img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)后成功运行。
img = cv2.imread(“p7.jpg”)t,rst = cv2.threshold(img,200,255,cv2.THRESH_BINARY)img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)dst2 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,3)dst = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 5, 3)cv2.imshow(“r”,dst)cv2.imshow(“r2”,dst2)print(img)
OTSU处理
在 OpenCV 中,通过在函数 cv2.threshold()中对参数 type 的类型多传递一个参数”cv2.THRESH_OTSU”,即可实现Otsu方式的阈值分割。 需要说明的是, 在使用Otsu方法时,要把阈值设为0。此时的函数cv2.threshold()会自动寻找最优阈值,并将该阈值返回。例如,下面的语句让函数cv2.threshold()采用Otsu方法进行阈值分割:t,otsu=cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU) 与普通阈值分割的不同之处在于:● 参数type增加了一个参数值”cv2.THRESH_OTSU”。● 设定的阈值为0。● 返回值t是Otsu方法计算得到并使用的最优阈值。 需要注意,如果采用普通的阈值分割,返回的阈值就是设定的阈值。
实例:
img = cv2.imread(“p7.jpg”,0)t,rst = cv2.threshold(img,200,255,cv2.THRESH_BINARY)tt,rst2 = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
tt是获取到的最优阈值img = cv2.imread(“p7.jpg”,0)中的第二个参数不能省略,不然会报错。其中第二个参数可以取值:flag = -1, 8位深度,原通道flag = 0, 8位深度,1通道flag = 1, 8位深度,3通道flag = 2, 原深度, 1通道flag = 3, 原深度, 3通道flag = 4, 8位深度,3通道
如果阈值设置为127,图片一片空白。
Original: https://blog.csdn.net/qq_41358574/article/details/114182308Author: march of TimeTitle: 【笔记】opencv阈值处理 threshold函数 cv2.THRESH_BINARY ,cv2.THRESH_TRUNC) cv2.adaptiveThreshold()
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/273590/
转载文章受原作者版权保护。转载请注明原作者出处!