Python
DaYinYi
凡有所学,皆成性格
展开
-
AutoDL跑pycharm代码
参考文献:AutoDL帮助文档Pycharm连接远程GPU服务器跑深度学习_哔哩哔哩_bilibili安装包在linux环境下载非常方便!!详解Apex的安装和使用教程_花开山岗红艳艳的博客-CSDN博客_apex安装原创 2022-05-17 09:21:08 · 7362 阅读 · 3 评论 -
对图片进行膨胀与腐蚀
操作前的图片:操作后:代码实现:import cv2import numpy as npfrom PIL import Imageimport osimport matplotlib.pyplot as plt# 生成文件夹def makedir(path): folder = os.path.exists(path) if not folder: os.makedirs(path) print("...Ne...原创 2022-04-11 19:48:54 · 1534 阅读 · 1 评论 -
将一个文件中的部分图片进行合并
读取路径下的文件,生成列表A(不一定是有序的) while()循环,判断列表A是否为空 取列表A的数值,每次取第一个,取完就删,所以每次取的值是不一样的。取第一个数值为a 获取数值a的前四位(观察发现,每张图片的前四位是一样的则合并),并从列表A中获取与a相同前四位的值生成列表B 遍历列表B,从列表B中取值b,将a与b进行相加,累加得到new_image,取完就删除b的值 将new_image矩阵转为image,进行保存此文件夹下的图片可以合并为一张:效果:代码...原创 2022-04-11 13:40:17 · 620 阅读 · 0 评论 -
JSON文件读取,获取图片标签名的最多值
# 找到颜色最多的且是人的图片,然后识别该图片的颜色类别 找到类别最多的图片以及有多少类别import csvimport jsonimport csvimport osimport pandas as pdfrom PIL import Imageimport matplotlib.pyplot as pltimport numpy as np# 读取数据data = pd.read_csv("data1.csv") # DataFrame结构d_data = np.arr.原创 2022-04-11 13:20:55 · 531 阅读 · 0 评论 -
JSON文件的读取特定标签名,生成CVS文档
# 读取json文件里面存在person的文件名,并存入data1.csv中import csvimport jsonfi = 'C:\\FeigeDownload\\YouTube_vos\\train\\train\\meta.json' # 源文件地址fo = open('C:\\FeigeDownload\\YouTube_vos\\train\\train\\output.txt', 'a+', encoding='utf-8') #提取后的txt文件存放地址data1 = .原创 2022-04-11 13:16:17 · 564 阅读 · 0 评论 -
json文件的读取,以及更改特定标签特定标签名的对应像素值更改
获取所需标签名“person”所对应的文件名,csv文档 获取文档名,一个读取该文件名下的标签图片Annotations,一个读取json文件所对应的标签,每一个标签下的数值生成列表 读取列表下key所对应Annotations下的图片,另外,生成一个全零矩阵,以及新的文件夹,用来存放同文档名同图片名,并创建一个矩阵用来存放新图片的数值 如果该图片已经在该路径下存在,读取该图片的值(只修改对应位置的像素值),如果不存在,则将该矩阵保存为图片 将标签名下的数值保存为列表,依次读取列表中键值,将标签名.原创 2022-04-11 13:08:09 · 3676 阅读 · 0 评论 -
F.pad的图文透彻理解
1. F.pad函数定义F.pad是pytorch内置的tensor扩充函数,便于对数据集图像或中间层特征进行维度扩充,下面是pytorch官方给出的函数定义。torch.nn.functional.pad(input, pad, mode='constant', value=0)函数变量说明:input:需要扩充的tensor,可以是图像数据,抑或是特征矩阵数据 pad:扩充维度,用于预先定义出某维度上的扩充参数 mode:扩充方法,’constant‘, ‘reflect’ o..转载 2022-03-24 09:37:16 · 1564 阅读 · 0 评论 -
PyTorch里面的torch.nn.Parameter()
torch.nn.parameter是一个被用作神经网络模块参数的tensor。这是一种tensor的子类。parameters是张量的子类,当与模块s一起使用时,它们有一个非常特殊的属性——当它们被重新分配为模块属性时,它们会自动地添加到它的参数列表中,并且会出现在Parameters()迭代器中。分配一个张量没有这样的效果。这是因为可能希望在模型中缓存一些临时状态,比如RNN的最后一个隐藏状态。如果没有Parameter这样的类,这些临时人员也会被注册。import torchimport .原创 2022-03-24 09:27:08 · 948 阅读 · 0 评论 -
torch.max()、expand()、expand_as()使用讲解
在分类问题中,通常需要使用max()函数对softmax函数的输出值进行操作,求出预测值索引,然后与标签进行比对,计算准确率。下面讲解一下torch.max()函数的输入及输出值都是什么,便于我们理解该函数。1. torch.max(input, dim) 函数output = torch.max(input, dim)输入input是softmax函数输出的一个tensor dim是max函数索引的维度0/1,0是每列的最大值,1是每行的最大值输出函数会返回两个tensor原创 2022-03-16 19:35:59 · 7887 阅读 · 3 评论 -
pytorch中 .view()函数讲解
一、普通用法 (手动调整size)view()相当于reshape、resize,重新调整Tensor的形状。import torcha1 = torch.arange(0,16)print(a1)# tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])a2 = a1.view(8, 2)a3 = a1.view(2, 8)a4 = a1.view(4, 4)print(a2)#tens原创 2022-03-16 16:09:47 · 2563 阅读 · 0 评论 -
交叉熵损失函数
什么是交叉熵?交叉熵主要是用来判定实际的输出与期望的输出的接近程度,为什么这么说呢,举个例子:在做分类的训练的时候,如果一个样本属于第K类,那么这个类别所对应的的输出节点的输出值应该为1,而其他节点的输出都为0,即[0,0,1,0,….0,0],这个数组也就是样本的Label,是神经网络最期望的输出结果。也就是说用它来衡量网络的输出与标签的差异,利用这种差异经过反向传播去更新网络参数。Pytorch中的CrossEntropyLoss()函数Pytorch中计算的交叉熵并不是采用.原创 2022-03-10 10:02:25 · 1542 阅读 · 0 评论 -
动量(momentum),学习率衰减
1、动量(momentum)简述一,优化器中的Momentum主要是在训练网络时,最开始会对网络进行权值初始化,但是这个初始化不可能是最合适的;因此可能就会出现损失函数在训练的过程中出现局部最小值的情况,而没有达到全局最优的状态。momentum的出现可以在一定程度上解决这个问题。动量来源于物理学,当momentum越大时,转换为势能的能量就越大,就越有可能摆脱局部凹区域,从而进入全局凹区域。momentum主要是用于权值优化。二,bn层中的Momentum⚠️这个momentum参原创 2022-03-09 22:08:57 · 4252 阅读 · 0 评论 -
PyTorch的torch.cat
1. 字面理解:torch.cat是将两个张量(tensor)拼接在一起,cat是concatenate的意思,即拼接,联系在一起。2. 例子理解import torchA = torch.ones(2,3)A#tensor([[1., 1., 1.],# [1., 1., 1.]])B=2*torch.ones(4,3)B#tensor([[2., 2., 2.],# [2., 2., 2.],# [2., 2., 2.],#原创 2022-03-09 15:12:54 · 1207 阅读 · 0 评论 -
cv2 interpolate插值-align_corners
torch interpolatetorch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None)input (Tensor):输入数据 size (int or Tuple[int] or Tuple[int, int] or Tuple[int, int, int]):输出数据的尺寸原创 2022-03-07 16:39:17 · 5896 阅读 · 0 评论 -
nn.Conv2d卷积
1、二维卷积可以处理二维数据nn.Conv2d(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True))参数:in_channel: 输入数据的通道数,例RGB图片通道数为3;out_channel: 输出数据的通道数,这个根据模型调整;kennel_size: 卷积核大小,可以是int,或tup...转载 2022-03-04 10:43:15 · 4024 阅读 · 0 评论 -
pytorch中nn模块的BatchNorm2d()函数
基本原理class torch.nn.BatchNorm2d(num_features,eps=1e-5,momentum=0.1,affine=Ture)在卷积神经网络的卷积层之后总会添加BatchNorm2d进行数据的归一化处理,这使得数据在进行Relu之前不会因为数据过大而导致网络性能的不稳定,BatchNorm2d()函数数学原理如下:BatchNorm2d()内部的参数如下:1.num_features:一般输入参数为batch_size*num_features.转载 2022-03-02 14:57:31 · 600 阅读 · 0 评论 -
图片一:单通道、三通道、灰度图、黑白图、三通道转灰度图(单通道)
1、图片:通常指的是数字图片,数据结构通常是数组2、像素:最小的图像单元,一张图像由好多的像素点组成。就是一个方形的小区域,下图是博主用numpy随机生出的20*10单通道图片,数一数,刚好每行10个小方格,共20行。即图片的高度和宽度分别为20,10import torchimport randomimport numpy as npimport osimport matplotlib.pyplot as pltimge = np.random.randint(0,256,siz原创 2022-02-28 16:21:11 · 11458 阅读 · 1 评论 -
最近邻插值、双线性插值
1.最近邻插值越是简单的模型越适合用来举例子,我们就举个简单的图像:3X3 的256级灰度图,也就是高为3个象素,宽也是3个象素的图像,每个象素的取值可以是 0-255,代表该像素的亮度,255代表最亮,也就是白色,0代表最暗,即黑色。假如图像的象素矩阵如下图所示(这个原始图把它叫做源图,Source):234 38 2267 44 1289 65 63这个矩阵中,元素坐标(x,y)是这样确定的,x从左到右,从0开始,y从上到下,也是从零开始,这是图象处理...原创 2022-02-28 09:32:10 · 1941 阅读 · 1 评论 -
图像从 tensor 转换为 np.array
首先,利用numpy读取的图像储存格式为 [h,w,c],即图像高度、图像宽度、图像通道数。而在 PyTorch 中图像的保存形式为 [n,c,h,w],即 batch size,图像通道数,图像高度、图像宽度。在没有理解这两种形式如何转换的情况下,我竟然直接用 reshape 进行转换!用numpy表示图像先用PIL打开一张图像,用.conver('RGB')将其转换为 RGB 形式,再用 np.array将其转换为np.ndarray格式:# 导入需要的包impor...原创 2022-02-27 16:39:33 · 3277 阅读 · 1 评论 -
图片存放形式 hwc
高度为4 宽度为7 通道为3先通过切割的算法,将图片的大小一步步缩小为小数字,以便观察from PIL import Imagefilename = r'01.png'img = Image.open(filename)size = img.sizeprint(size) #(1920, 1200)# 准备将图片切割成9张小图片weight = int(size[0] // 3)height = int(size[1] // 3)# 切割后的小图的...原创 2022-02-27 16:15:00 · 4432 阅读 · 0 评论 -
归一化Normalizer.normalize()方法
from PIL import Imageimport numpy as npfilename = r'F:\研二\壁纸\花.jfif'img = Image.open(filename)size = img.sizeprint(size) #(1920, 1200)mean = (0.485, 0.456, 0.406)std = (0.229, 0.224, 0.225)img = np.array(img).astype(np.float32)print(img.size)im.原创 2022-02-27 15:26:59 · 1241 阅读 · 0 评论 -
pillow模块Image.crop()函数切割图片方法,参数说明
使用Image.crop()方法对图片进行切割。参数:Image.crop(left, up, right, below)left:与左边界的距离up:与上边界的距离right:还是与左边界的距离below:还是与上边界的距离简而言之就是,左上右下。例子:将一张花图片切分成9张(3*3)图片:from PIL import Imagefilename = r'F:\研二\壁纸\花.jfif'img = Image.open(filename)size =原创 2022-02-25 16:22:18 · 8069 阅读 · 2 评论 -
图片格式的转换
这个是一段学过的简单程序,可以改变图像的大小,jpg,png都可以的:#encoding=utf-8#function: 更改图片尺寸大小 from PIL import Image'''filein: 输入图片fileout: 输出图片width: 输出图片宽度height:输出图片高度type:输出图片类型(png, gif, jpeg...)'''def ResizeImage(filein, fileout, width, height, type): img = I原创 2022-02-25 14:03:47 · 132 阅读 · 0 评论 -
Python中最常见括号()、[]、{}的区别
Python中最常见括号的区别:在Python语言中最常见的括号有三种,分别是:小括号()、中括号[]、花括号{};其作用也不相同,分别用来代表不同的Python基本内置数据类型。Python中的小括号():代表tuple元祖数据类型,元祖是一种不可变序列。创建方法很简单,大多数时候都是小括号括起来的。tup = (1, 2, 3)#(1, 2, 3)() #空元组#()55, #一个值的元组#(55,)Python中的中括号[]:代表list列表数据类型,列表是一种原创 2022-02-22 17:04:59 · 1924 阅读 · 0 评论 -
图像读取的Image.open()和cv2.imread()的区别
文章目录1 导入库 2 图像读取 3 读入图片类型 4 通道 5 显示方法 6 相互转换Image.open()和ci2.imread()都是用来读取的图像,但在使用过程中存在一些差别。具体,可以从以下几个角度进行分析:1 导入库导入的包不同。img = cv2.imread(path),这是opencv中的处理图片的函数,使用时需 import cv2img = Image.open(path),这是PIL中的一个处理图片的函数,使用时需 from PIL import Ima原创 2022-02-22 10:39:06 · 4806 阅读 · 1 评论 -
python中random.seed()
random.seed()俗称为随机数种子。不设置随机数种子,你每次随机抽样得到的数据都是不一样的。设置了随机数种子,能够确保每次抽样的结果一样。而random.seed()括号里的数字,相当于一把钥匙,对应一扇门,同样的数值能够使得抽样的结果一致。import randomdef randomess(): #未设置随机种子 rum = random.randint(1, 100) print(rum)randomess()# 59randomess()# 27def原创 2022-02-21 15:05:53 · 9562 阅读 · 0 评论 -
代码运行时没有动用gpu
将default设为false。原创 2022-02-21 09:44:11 · 606 阅读 · 0 评论 -
IndexError: Target 7 is out of bounds.
检查了一下数据集,发现其中有黑色,但标签上面没有标注,因此,我就将Num_class=8。便正常运行了。原创 2022-02-19 20:21:51 · 1825 阅读 · 0 评论 -
pycharm高级功能 (debug调试)
断点调试是在开发过程中常用的功能,能清楚看到代码运行的过程,有利于代码问题跟踪。对我这个小白开发来说,还有一个作用是快速熟悉代码,拿到别人写的代码,有时看不太懂或看的很吃力,光这样看很无感,但是通过断点调试,可以很清楚的看到代码是怎么走的,每一步的参数的值等,驱动代码熟悉。pycharm打断点很简单,在代码行号后空白槽点击一下,出现红球,就可以了。当Pycharm运行到该行代码时会将程序暂时挂起,通过debug相关功能就可以进行调试了。下面介绍调试过程中用到的命令。debug相关功能:在pycha原创 2022-02-17 10:54:28 · 1326 阅读 · 0 评论 -
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接
我的程序是由于下载权重文件过程中出现错误解决方案:直接根据所给的网址去浏览器中下载,并将文件放入指定路径下面。原创 2022-02-15 17:42:45 · 701 阅读 · 0 评论 -
批量将.png .bmp .jpeg 格式图片转换为.jpg格式图片
import osimport cv2 as cvimage_path = 'G:/LoveDA/JPEGImages1/'save_path = 'G:/LoveDA/JPEGImages/'if not os.path.exists(save_path): os.makedirs(save_path)image_file = os.listdir(image_path)for image in image_file: if image.split('.')[-1] .原创 2022-02-15 14:24:03 · 1826 阅读 · 0 评论 -
将黑色mask图片转为彩色标注文件
import osroot_dir = "G:\\Train\\Urban"target_dir = "images_png"img_path = os.listdir(os.path.join(root_dir, target_dir))label = target_dir.split('_')[0]out_dir = "urban_label"for i in img_path: file_name = i.split('.png')[0] with open(os.pa.原创 2022-02-15 11:18:18 · 2238 阅读 · 2 评论 -
python读取文件名称生成list
经常需要读取某个文件夹下所有的图像文件。使用python写了个简单的代码,读取某个文件夹下某个后缀的文件,将文件名生成为文本(csv格式)import fnmatchimport osimport pandas as pdimport numpy as np import sysInputStra = 'LoveDA/Train/Urban/masks_png' #相对路径InputStrb = '*.png'def ReadSaveAddr(Stra,Strb):原创 2022-02-14 19:48:35 · 1159 阅读 · 0 评论 -
Python中的isinstance()函数
1. 描述Python中的 isinstance() 函数,是Python中的一个内置函数,用来判断一个函数是否是一个已知的类型,类似 type()。2. 语法isinstance(object,classinfo)参数:object : 实例对象。 classinfo : 可以是直接或者间接类名、基本类型或者由它们组成的元组。返回值:如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。3. 实例以下是使用isinstance()原创 2022-01-25 11:57:32 · 32581 阅读 · 0 评论 -
爬虫时遇到的chromedriver问题
一、‘chromedriver‘ executable needs to be in PATH的问题参考博客:小白解决:‘chromedriver‘ executable needs to be in PATH的问题1、首先需要对应直接的Chrome版本,下载对应的ChromedriverChrome的版本就在 “帮助->关于Chrome”查看详细参考:详细参考:怎么查看chrome浏览器版本号 chrome版本如何看2、然后就是通过chromedriver与chrome版本原创 2022-01-22 21:22:19 · 1744 阅读 · 0 评论 -
cannot import name ‘_registerMatType‘ from
网络建议:cannot import name ‘_registerMatType‘ 错误_weixin_42037607的博客-CSDN博客cannot import name '_registerMatType’错误,是因为同时安装了opencv-python和opencv-contrib-python 版本之间不匹配造成的,删除opencv-contrib-python后opencv-python也会出错,就把两个都删除后安装opencv-python及相匹配的版本的opencv-contr原创 2022-01-14 17:39:56 · 2682 阅读 · 0 评论 -
python3 pip安装第三方库失败,WARNING: You are using pip version 20.2.3; however, version 21.1.2 is available.
在安装包时报错:WARNING: You are using pip version 21.1.2; however, version 21.3.1 is available.You should consider upgrading via the '/home/yj/桌面/LoveDA-master/Semantic_Segmentation/venv/bin/python -m pip install --upgradeip' command.原因是因为pip版本过低导致,所以只需要原创 2022-01-14 17:33:11 · 6260 阅读 · 0 评论 -
多行注释快捷键
1.选中你要加注释的区域,用ctrl+shift+C或者ctrl+/会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/会加上/* */注释3.以上快捷在重复按一下就会去掉加上的注释原创 2022-01-13 16:00:42 · 14254 阅读 · 0 评论 -
Pycharm教程--断点调试
pycharm怎么debug单步调试?首先,打开一个的pycharm的界面当中,需要选中编辑器中的 左侧。 然后pycharm的菜单中的 run 的菜单。点击了run的菜单之后,选中debug 的选项。 就可以看到是在编辑器当中的 选中一个断点。然后就可以对于当前中的点击下一步中按钮。可以看到是代码就会移动到下一行的代码上了。或者使用快捷键的方式来移动下一步....原创 2022-01-10 22:32:46 · 7023 阅读 · 0 评论 -
关于FCN源码中训练集的图像预处理的理解
class SegmentationPresetTrain: #训练过程中图像预处理方法 def __init__(self, base_size, crop_size, hflip_prob=0.5, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)): min_size = int(0.5 * base_size) #520*0.5=260 max_size = int(2.0 * base_size.原创 2022-01-07 12:05:02 · 2341 阅读 · 1 评论