- 博客(35)
- 收藏
- 关注
原创 [数据预处理]可视化数据增强工具
可视化的数据增强工具一、Imgaug数据增强工具二、自定义的简易数据增强(待完善)一、Imgaug数据增强工具可视化工具,自动导出增强代码安装MirrorMirror pip install MirrorMirror开启MirrorMirrorfrom MirrorMirror import MirrorMirrormm = MirrorMirror()mm.run()# 运行之后,就可以看到界面了这个可视化工具是基于Imgaug+PyQt5进行开发的,可以开发人员
2021-07-14 17:12:03 682
原创 [windows10]2. 记录Windows台式机耳机没有声音了
2. 记录Windows台式机耳机没有声音了一、首先找到这个东东二、找到这个文件夹的标志三、下面箭头指的地方打上勾勾四、扬声器就出现了,现在可以耳机中有声音了
2021-04-20 15:18:04 191
原创 [weights]2. 网络模型和权重的保存wandb(weight and bias) in pytorch
2. 网络模型和权重的保存 wandb(weight and bias) in pytorch一、网络模型或者权重的保存的方式方式一: 只保存网络的权重参数model = MainNet()torch.save(model.state_dict(), "ckpts/params.pth")方式二:保存网络和权重model = MainNet()torch.save(model, "ckpts/params.pth")方式二点五:使用half()对精度进行缩减保存model
2021-03-15 14:48:06 1719 1
原创 [Tools-可视化]4. wandb可视化工具的使用
4. wandb可视化工具的使用一、可视化工具用于神经网络训练的可视化工具有:pytorch和TensorFlow的工具tensorboardwandb(weight and bias)线上的,需要账号国内百度VisualDL(paddlepaddle一套的使用工具)二、wandb的使用登录官网使用谷歌账号或者gitbub账号进行注册登录wandb官网注册成功时候,在训练之前,通过cmd命令(windows系统中)pip install wandbcmd中进行
2021-03-15 14:31:39 3470 3
原创 [激活函数]1.不同函数拟合的能力
1.不同函数拟合的能力一、不同激活函数和一阶导数作为损失函数math+numpy实现import mathimport randomimport torchimport matplotlib.pyplot as plt"""各个激活函数拟合曲线的能力"""def y_eq_x(x): # 不激活 y=x return xdef y_eq_x_loss_dw_b(x, y, w, b): loss = 1 / 2
2021-03-14 20:23:59 368
原创 [Tools]3.Numpy的一些容易忘记的知识点
3.Numpy的一些容易忘记的知识点一、Numpy的基本运算import torchimport numpy as np# 向量的加减法a = np.array([1, 2]) # arrayb = np.array([3, 4]) # arrayprint(a + b) # +print(a - b) # -print(a * b)
2021-03-14 20:17:46 107
原创 [Tools]2.PIL的基本用法
2.PIL的基本用法一、PIL中Image的基本用法from PIL import Imageimport numpy as npimport matplotlib.pyplot as pltclass PILUsing: def __init__(self, path): pass def show_Image_Size(self, image): """ 查看图片的大小 :param image: 图片
2021-03-14 20:08:50 234
原创 [Tools]1.Matplotlib基本使用-未完待续
1.Matplotlib基本使用-未完待续一、显示中文的方式在导包后使用,放在所有Matplotlib代码最上面:import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 微软雅黑plt.rcParams['font.serif'] = ['Microsoft YaHei']放在plt.title()中使用,一般如果想要让标题的文字有中文可以直接这么使用 plt.f
2021-03-14 19:58:25 131
原创 [one-hot]one-hot实现的几种方式
one-hot实现的几种方式方式一:最简单的方式,可以一行代码搞定import numpy as npimport torch'one-hot使用方法:最简单'num_classes = 10arr = [1, 3, 4, 5]one_hots = np.eye(num_classes)[arr]print(one_hots)arr1 = torch.LongTensor(arr)print(arr1)one_hots = torch.eye(num_classes)[arr]p
2021-03-01 16:00:11 1179 1
原创 [数据预处理]2.使用torchvision中的transforms
使用torchvision中的transforms一、数据预处理,在dataset中进行处理,使用提供的包img_transform = transforms.Compose([ transforms.Resize(100), # 将图像的短边resize到100 transforms.RandomHorizontalFlip(), # 随机翻转 transforms.RandomCrop(100, padding=6), # 随机裁剪 transforms.ToT
2021-02-27 22:13:22 588
原创 [数据预处理]1. 加入黑边
给数据加入黑边一、原因有时候由于网络设计的原因,我们需要输入固定尺寸大小的图片,例如比较常见的就是输入正方形的图片到网络中,如:YOLO中输入图片的大小有416x416大小的。但是,我们的数据集中的图片往往不是正方形的,那么我们在一般情况下,需要对图片进行处理,可以加入黑边的操作。这里面加入黑边,一般会有两种情况,这一般与标签的制作方法、处理的问题或者是简单复杂程度来决定的。通常情况有两种 一种情况是回归问题:如画框,一般情况下框的标签已经确定,因此,我们一般为了方便,我们不会修改原始的标签
2021-02-13 23:29:30 245
原创 [CNN-grad]1. 梯度爆炸实操|梯度消失|模型坍塌初识
1. 神经网络梯度爆炸实操在深度学习中,网络常见的问题有两种,一个是梯度消失(也称梯度弥散),另一个是梯度爆炸,其实还有一个就是模型坍塌(这个模型坍塌在网络设计的较为合理的前提下,会在生成模型GAN系列中出现)。一、梯度消失在损失下降的时候,我们希望损失下降到0,但是,神经网络实际上损失下降到0是有问题的, 其一:就是损失到0是一种过拟合的现象; 其二:在训练时,如果损失到0,然后突然出现NAN,那么就意味着,梯度不能更新了,有一种很大的可能就是梯度消失。 解决梯度消失,我们通常会加入BN,加
2021-02-03 21:19:07 2382
原创 [Download-Tools]2.下载torchsummary和使用
下载torchsummary和使用一、下载二、使用from torchsummary import summaryfrom torchvision import modelsnet = models.mobilenet_v2()summary(net.cuda(), input_size=(3, 112, 112))---------------------------------------------------------------- Layer (type)
2021-01-25 22:07:09 3658 3
原创 [Download]2. 下载pytorch1.7.0以上的tensorboard及使用
下载pytorch1.7.0以上的tensorboard及使用一、下载建议下载的时候使用加速地址,如清华源pip install tensorboard下面是下载时的效果图,pytorh1.7.0版本后,tensorboard已经嵌入到pytorch中了,但是需要下载非常多的包,目前不知道是否可以和TensorFlow框架中的一起使用,博主没有亲自尝试。二、使用下面为tensorboard使用的命令,也可以同时打开多个tensorboard,只需要修改port端口号就可以,还是比
2021-01-25 21:37:13 1173
原创 [Download]1. 国内pip下载源
国内pip下载源清华源清华源地址:https://pypi.tuna.tsinghua.edu.cn/simple使用时:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple [工具包名]豆瓣源豆瓣源地址:http://pypi.douban.com/simple/使用时pip install -i http://pypi.douban.com/simple/ [工具包名]注意使用的时候,电脑上pip
2021-01-25 21:24:50 142
原创 [损失设计]4.Center Loss
超强辅助Center Loss一、Center Loss介绍核心思想:扩大类内距公式如下:Lc=12N∑i=1n∣∣xi−cyi∣∣22L_c=\frac{1}{2N}\sum_{i=1}^{n}||x_i-c_{y_i}||^{2}_{2}Lc=2N1i=1∑n∣∣xi−cyi∣∣22反向传播公式:△c=αN∑i=1N(c−xi),α一般取值为0.5△c=\frac{α}{N}\sum_{i=1}^N(c-x_i),α一般取值为0.5△c=Nαi=1∑N(c−xi
2021-01-18 17:18:31 440
原创 [损失设计]3.二元组和三元组 Loss
二元组和三元组 Loss一、孪生神经网络 网络结构:两个输入,两个网络,公用一个权重,得到一个输出 缺点:如果有多个人脸,要么需要多个输入,要么就是每次都输入到两个网络中,方法比较笨,但是技术是一步一步演化的。 总结:一位我比较敬佩的一个老师说过,技术都是有简单到复杂再到简单地过程,最终会就是大道至简。其实一般的规律或者好的想法,往往都是生活中简单地道理,随着慢慢的学习,应该就会发现这些,其实就和我们学习知识一样,或者读书一样,是先要把一本比较薄的书读厚,然后再把这本厚的书读薄的过程(就是自己总结
2021-01-18 17:04:31 645
原创 [windows]1.GPU丢了-纪念
windows10使用时黑屏,GPU丢了一、突然黑屏过程+GPU丢了使用公司电脑突然发生打开某个程序的时候,突然黑屏,然后打开任何二、解决方法
2021-01-18 16:28:23 1014
原创 [损失设计]2.Softmax Loss
Softmax Loss一、Softmax 作用:softmax的目标是尽可能最大化正确分类的概率,它会忽略掉一些比较难分辨的图片;也就是低质量的图片,而优先拟合高质量的图片,因此把特征强行归一化会使得低范数的图片变得高范数,也会获得更多的网络注意力。可以发现,只在相似度上做变化,跟||w||与||f||无关系,所以可以直接将这两者归一化,相当于单位向量。 公式入下:Sj=eaj∑k=1Neak(1)S_j=\frac{e^{a_j}}{\sum_{k=1}^N e^{a_k}}\tag{1}
2021-01-18 15:47:21 697
原创 [损失设计]1.人脸识别损失介绍
人脸识别损失介绍一、人脸识别现在人脸识别已经在人们生活中变得普遍,人们往往以为人脸识别是一个很简单的问题,但是,实际上,简单的用于自己娱乐的人脸识别是比较容易实现的,但是商用级别的人脸识别,无论是从技术上,还是从算法研究上都是存在着一定难度的。从我开始了解人脸识别时,人脸识别可以分成:熟人识别和陌生人识别;熟人识别就是我们使用最为广泛的人人脸识别,而陌生人识别,是一个比较难的课题。后面慢慢的进入大家眼帘的应该就是活体检测,怎么样识别涉嫌头面前的不是一张图片,而是一张真实的人脸,国内目前的做法也有很多
2021-01-18 14:42:45 221
原创 [Pytorch]2.Pytorch 里 nn.AdaptiveAvgPool2d(output_size)二元自适应均值汇聚层(自适应池化)
二元均值自适应均值汇聚层注:本文是参考其他人的博客进行自己的整理和理解,方便形成自己的学习笔记,可以方便自己进行线上查询,如侵权,可联系删除(谢谢)。本文中更喜欢称二元均值自适应均值汇聚层为自适应池化层。但是我们先从二元均值自适应均值汇聚层文字的含义去理解。二 元: 就是只二维的数据格式,主要是对二维的数据进行操作自适应: 自适应这个词是目标侦测中应用的一个词,起初提出是为了处理一张图 片在经过卷积过后,会得到很多筛选好的有物体的框,但是这些框的尺 寸可能HW是不相同的,因此,
2021-01-17 17:13:25 691
原创 [weights]1. 加载权重之加载部分权重
加载部分网络权重一、 加载部分权重的意义可以用于迁移学习。迁移学习就是通过迁移已经训练好的权重继续进行学习,可以加速网络的训练速度,可以在之前的学习的基础上进行学习,但是要注意,优化器的使用,如果是别人的网络,一般都是最后使用SGD优化器的,因此当我们加载别人训练好的权重的时候,一定要注意,不能使用Adam优化器,这个优化器,会破坏之前的权重分布,达不到迁移学习的效果。【注意】:我们使用其他人的网络进行迁移学习的时候,一定要注意是迁移的是特征提取层,可以对其网络进行修改,但是最好是修改最后面的全连接层
2021-01-17 17:09:41 1864
原创 [CNN-BN]1.常见Normal的详解Vlog1
Noramal详解Vlog1BatchNormaly=x−E[x]Var[x]+C∗γ+βy=\frac{x-E[x]}{\sqrt{Var[x]+C}}*γ+βy=Var[x]+Cx−E[x]∗γ+βBatch Normalization(1)BN计算就是把每个通道的NHW单独拿出来进行计算:就是在每一个批次中的第一个通道进行计算,因此,nn.BatchNorm()中填的是通道数,就是将一批次中的每个通道都计算一次(2)针对每个channel我们兜兜一组gamma和beta,所以可以
2021-01-13 17:46:34 656
原创 [MTCNN]3.级联卷积神经网络理解vlog3
MTCNN 级联卷积神经网络的理解Vlog3一、论文复现-问题分析1.问题分析1)怎么侦测多目标?方法一:图像不变,建议框改变,使用多个建议框来框取多个目标-YOLO的思想方法二:建议框不变,图像改变-MTCNN思想2)选取多大的步长?1> 框的大小定了,使用12x12的框(相当于卷积核)从左到右从上到下扫描图片,那么使用多大的步长呢 2> 我们这里通过实验可以得到选择12x12的框,以步长为2在图片上进行扫描3> 这时候会出现一个人脸上会出现多个框,这个问题是可以通
2021-01-13 16:53:44 1884
原创 [MTCNN]2.级联卷积神经网络理解vlog2
MTCNN 级联卷积神经网络的理解Vlog2一、论文复现-样本生成网上对于MTCNN样本的选择,用的比较多的是Celeba和wider face,在看过两个数据集的标签后,果断偷懒选择Celeba数据集(因为标签文件比较简单,同时数据集中都是单个人脸的图片,对于数据的制作比较方便,但是Celeba数据集是存在着一些问题的,博主下面开始介绍)。观察样本-秀儿Celeba:celeba数据集标签框是偏大的,在标注的时候,可能有点手抖,或者是故意增加训练的难度(这些都不是问题,在制作样本数据的时候可以使用
2021-01-13 16:20:41 2379
原创 [MTCNN]1.级联卷积神经网络理解vlog1
MTCNN 级联卷积神经网络的理解Vlog1一、MTCNN用来干什么?1. MTCNN是一个检测框架,最初设计的时候,应用在多人脸检测,其实也可以广泛的使用在单类别多目标的场景下,但是应用的场景与其算法的设计有关,在某些场景下有一定的局限性。2. 普通的人脸识别,主要包含以下几个步骤:(1)人脸检测(2)人脸对齐(3)特征提取(4)特征对比3. 人脸检测的模型也是有很多的,MTCNN只是其中之一。(2016年深圳先进技术研究所乔宇老师组)二、MTCNN论文理解题目理解1)多任
2021-01-13 15:51:13 951 1
原创 [ERROR]2.only one element tensors can be converted to Python scalars列表张量不能转换成np.array()
only one element tensors can be converted to Python scalars列表张量不能转换成np.array()boxes = [tensor([ 0.3170, -0.5204, 1.0137]), tensor([-0.8448, -0.4247, 0.7249]), tensor([-1.1847, 0.9768, 1.1339]), tensor([-1.0586, -0.0341, -0.1651])]不能使用np.array(boxes),
2021-01-13 15:19:36 526
原创 [数据增强]1.使用普通工具包
数据增强[PIL+skimage]增强内容: 数据增强 (1)变暗 (2)变亮 (3)加入噪声 (4)加入高斯模糊 (5)随机两个或三个或四个1. 明暗变化def enh_brightness_dark(img): # 1. 变暗 enh_brightness = ImageEnhance.Brightness(img) # 需要加入明暗度的图片 factor_dark = np.random.uniform(0.4, 0.6)
2021-01-12 17:30:22 148 1
原创 [pytorch]1.pytorch之好用的transforms
torchvision中的transoforms.ToTensor()的作用输入的是一张图片(将图片转换成Tensor) - 将`HWC`的图片转换成pytorch中需要的 `CHW`的tensor形式; - 并将数据进行归一化处理,经数据压缩到[0-1] 之间(像素/255) - 【注意】这里图片在使用的时候,根据通道根据打开的方式: - PIL.Image的图片通道格式为我们熟悉的`RGB`格式; - opencv中为`BGR`形式,与上面的正好是一个倒序。其他使
2021-01-09 14:46:59 223 1
原创 [ERROR]1.Can‘t call numpy() on Variable that requires grad. Use var.detach().numpy() instead.
ERROR系列:Can’t call numpy() on Variable that requires grad. Use var.detach().numpy() instead.无法在需要grad的Variable上调用numpy()。请改用var.detach()。numpy()。[pytorch中] 网络输出的Tensor张量一般都是具有梯度的,因此如果我们想要将其转换成numpy中的数组。第一步:需要将GPU转换成CPU上运行,因为numpy是在CPU上使用的;第二步:网络输出的有梯度的张
2020-12-19 20:39:24 648
原创 [python基础]1.python中list的extend()与append()
python中list的extend()与append()extend()是逐项追加,append()是追加整体boxes = []bboxes = []x1 = torch.randn(2, 3)x2 = torch.randn(2, 3)boxes.append(x1)print(boxes)bboxes.extend(x2)print(bboxes)"""[tensor([[ 1.0313, -1.1874, -0.8979], [ 0.7422, -0.56
2020-12-19 20:37:46 309
原创 4.pytorch1.60 torch.nn在pycharm中无法自动智能提示
pytorch1.60 torch.nn在pycharm中无法自动智能提示一、解决的方法有两个,第一个方法来源于一个博客,第二个方法是根据这个博客产生的启发(目前没有问题)二、原因分析一、解决的方法有两个,第一个方法来源于一个博客,第二个方法是根据这个博客产生的启发(目前没有问题)方法二:导包时,有原来的import torch.nn as nn改为import torch.nn.modules as nn,这样就可以愉快的使用nn.XXX后面的内容了,重新过上有提示的好日子。方法一:从pyt
2020-12-19 20:34:16 408
原创 3.有关于数据集的一些思考
有关于数据集的思考1. 什么样的数据集是比较好的?一般情况在CV领域中,数据集的好坏由数据集的泛化性能来决定。泛化性能:代表数据的特征是否具有多样性。(猫的数据集:数据集中应该包含不同品种的猫,不同品种要有不同花色的猫,不同大小的猫,各种角度猫的照片…, 这样的数据集可以成为比较好的数据集)。泛化性能是没有上限的,一般来说泛化性能越高越好,但是实际的商业项目中,要考虑公司的财力等更方面来考虑。【注意1】:数据集的好坏,严格来说和数据集的数量多少是没有绝对的关系,我们要考虑的重点是数据集的泛化能力。【
2020-12-15 18:59:10 1294
原创 2.pytorch中升维度的操作及需要注意的点
unsqueeze、unsqueeze_和None的使用及注意in_place操作1. unsqueezeunsqueeze没有in_place,就不可以直接对原始张量进行赋值,需要重新对张量进行赋值。 image = torch.randn(3, 13, 13) # 升维,变成NCHW image = image.unsqueeze(dim=0)2. unsqueeze_unsqueeze_有in_place,可以直接对原始张量进行赋值。 image = torch.randn(3, 1
2020-12-15 18:55:16 1464
原创 1.pytorch中常用的数据堆叠stack()、T、transpose()
在目标侦测中比较常用的就是在侦测时对box的坐标的堆叠stack()、T、transpose()这里主要对着三个方法进行介绍stack()对数据进行堆叠,dim=0时,直接就是两个张量的直接拼接,与list的append类似;dim=1时,就是在1维上对数据进行拼接,比较常用的就是讲box的框中的坐标合并到一起。T主要是对张量进行转秩操作,即如果张量形状是(2, 3, 4),转秩之后就是(4, 3, 2)。当维度为张量维度为2时,可以与stack(dim=0)一起使用,等同于stack(dim
2020-12-15 18:40:05 1402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人