自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 time标准库

time标准库

2022-06-17 16:42:30 187 1

原创 os、sys、random标准库主要功能

os、sys、random标准库

2022-06-17 16:08:37 168

原创 Python 文件目录操作

Python 文件目录操作

2022-06-17 15:16:01 245

原创 Unittest单元测试(六)

一、批量生成自动化的测试报告1.txt文本格式 unittest.TextTestRunner(verbosity=2).run(suite)2.html格式第一步下载HTMLTestRunner.py文件并且修改。下载教程传送门然后放到C:\Program Files\Python37\libs目录下if __name__ == '__main__': # 读取用例 suite = unittest.defaultTestLoader.discover(

2022-04-22 20:28:47 712

原创 Unittest单元测试(五)

一、测试夹具(固件,钩子函数,前后置)TestFixtrue详解setUp/tearDown 在测试用例之前和之后执行setUpClass/tearDownClass 在测试类之前和之后执行(必须要加@classmethod装饰器)setUpModule/tearDownModule 在测试模块之前和之后执行夹具封装:自动化测试框架必备思想(有很多重复的代码时)二、忽略测试用例class TestUnittest(MyUint): a = 18 ...

2022-04-19 22:36:52 171

原创 Unittest单元测试(四)

(续上一节)底层逻辑代码TestCase测试用例:最小单元,业务逻辑TestSuite测试套件:一组测试用例的集合,或者测试套件的集合 def createTests(self, from_discovery=False, Loader=None): if self.testNamePatterns: self.testLoader.testNamePatterns = self.testNamePatterns if from_d

2022-04-19 19:51:31 74

原创 Unittest单元测试(三)

六、unittest的测试用例运行结果. 代表成功F代表失败E 代表错误S 代表用例跳过不能通过 -v 的方式运行。因为这是详细的报错方式,而不是简洁的报错方式七、unittest测试用例的执行顺序规则以ASCII的编码的大小排序。【0-9,A-Z,a-z】通过ord('a)查看ASCII码八、多种unittest的加载和运行测试用例的方式1、mian方法2、通过测试套件来加载和运行addTest# 创建一个测试套件if __name__ == '_.

2022-04-19 19:44:59 342

原创 Unittest单元测试(二)

三、单元测试框架的作用1.发现测试用例2.执行测试用例3.判断测试结果4.生成测试报告

2022-04-18 21:21:22 436

原创 Unittest单元测试(一)

传送门:花9.5k买的一整套unittest自动化测试,全程干货,详细讲解_哔哩哔哩_bilibili一、框架详解1.什么是框架?开发大佬封装好的半成品,它已经对基础的代码进行了封装并提供了相应的接口,其他的开发者只需要去调用封装好的接口即可。举例:Selenium框架。driver = webdriver.Chrome()driver.get()2.unittest单元测试框架单元测试框架:指的是在编程当中,针对程序的最小单元(函数,方法)进行正确的测试框架3.自动化测

2022-04-18 20:42:33 96

原创 图像分类的训练基本过程——以MobileNet_v3为例

经验总结自b站up主——7.2.2 使用Pytorch搭建MobileNetV3并基于迁移学习训练_哔哩哔哩_bilibili1.判断使用gpu还是cpu进行处理device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")2.定义数据预处理的方法data_transform = { "train": transforms.Compose([transforms.RandomResized

2021-11-20 12:09:55 3218

原创 深度学习与图像识别:原理与实践 笔记Day_18(目标检测)续

SSDSSD同时借鉴了YOLO网络的思想和Faster R-CNN的anchor机制,使SSD可以在进行快速预测的同时又可以相对准确地获取目标的位置。(b)和(c)分别代表不同的特征层,图c相对于图b离最终的预测结果较近,因此其跨越同样像素个数能检测的目标就更大。如b所示,在特征层的每个结点上都将产生4个不同大小的anchor(1:1两个,1:2两个),如c所示,在特征层上也是如此。根据真是目标矩形框与每个anchor的IOU大小计算可知,b中包含2个anchor为正样本,c中只有1个。S.

2021-10-22 20:45:50 983

原创 深度学习与图像识别:原理与实践 笔记Day_18(目标检测)

定位 + 分类定义+分类问题是分类到目标检测的一个过度问题,从单纯的图片分类到分类后给出目标所处的位置,再到多目标的类别和位置。定位问题需要模型返回目标所在的外界矩形框,即目标的(x,y,w,h)四元组。接下来介绍一种比较容易想到的实现思路,将定位当作回归问题,具体步骤如下。训练(或下载) 一个分类模型,例如,AlexNet、VGGNet或ResNet 在分类网络最后一个卷积层的特征层(feature map) 上添加“regression head",如下图所示 同时训练”classifica

2021-10-22 20:26:05 427

原创 深度学习与图像识别:原理与实践 笔记Day_17

卷积神经网络基础1. 全连接层全连接层可以简单地理解为神经网络的一个隐藏层,它包含权重向量W和激活函数。具体来说,对于一张32*32*3的照片(宽和高均为32个像素,由RGB三个通道,可以理解为一个32*32*3的矩阵),要通过全连接层,首先要将其拉伸为3072*1的向量作为神经网络隐藏层的输入,然后该向量与权重向量W做点乘操作,再将点乘后的结果作为激活函数的输入,最终,激活函数输出的结果便是全连接层的最终结果。2. 卷积层它保留了输入图像的空间特征,即对于一张32*32*3的图片而言,卷积

2021-10-21 14:52:42 774

原创 常见卷积神经网络结构

1. AlexNet AlexNet网络结构input layer kernel kernel_num stride pad output parameters 227*227*3 CONV1 11*11*3 96 4 0 55*55*96 11*11*3*96=35k 55*55*9...

2021-10-21 14:04:58 1374

原创 深度学习与图像识别:原理与实践 笔记Day_16

损失函数1. 均方误差损失函数调用方法如下:torch.nn.MSELoss(size_average=None, reduce=None, reduction='mean')参数说明如下:size_average(bool,optional):基本弃用。默认情况下,损失是批次中每个损失元素的平均值。如果将字段size_average设置为False,则需要将每个batch的损失相加。当reduce设置为Fasle时忽略。默认值为True reduce(bool,optional):

2021-10-19 20:17:38 151

原创 深度学习与图像识别:原理与实践 笔记Day_15

TensorTensor与numpy之间如何互相转换:import numpy as npimport torchnp_data = np.arange(8).reshape((2,4)) # 定义一个二维数组torch_data = torch.from_numpy(np_data)print(np_data)print(torch_data)np2_data = torch_data.numpy()print(np2_data)运行结果:Variable..

2021-10-19 19:42:07 99

原创 深度学习与图像识别:原理与实践 笔记Day_14

重要的优化方式——正则化惩罚我们希望对一些特定的权重W添加一些偏好,对其他权重则不添加,以此来消除模糊性。即向损失函数增加一个正则化惩罚(regularization penalty),最常用的正则化惩罚是L2范式,L2范式通过对所有参数进行逐元素的平方惩罚来抑制大数值的权重。 ​​​​​​​​​​​​​​​​​​​​​​​​​​​​假设输入向量x=[1,1,1,1].两个权重向量,w1...

2021-10-19 19:10:48 111

原创 通过反向传播来实现MNIST识别

代码如下from collections import OrderedDictimport numpy as npimport torchvision.datasets as dsetsimport torchvision.transforms as transformsimport torch# 导入数据train_datasets = dsets.MNIST('data', train=True,

2021-10-19 18:41:11 566

原创 基于数值微分和误差反向传播的比较

对于数值微分来说,它的计算非常耗费时间,但是实现起来非常简单,不容易出错。而误差反向传播法的实现就非常复杂,且容易出错,所以经常会比较数值微分和误差反向传播的结果,以确认我们书写的方向传播逻辑是正确的。这样的操作就称为梯度确认(gradientcheck)实现代码如下:from collections import OrderedDictimport numpy as npimport torchvision.datasets as dsetsimport torchvision.trans

2021-10-19 16:49:01 592

原创 深度学习与图像识别:原理与实践 笔记Day_13

误差反向传播1、激活函数层的实现1.1 Relu反向传播实现代码如下:class Relu(): def __init__(self): self.x = None def forward(self, x): self.x = np.maximum(0,x) out = self.x return out # dout 为上一层传过来的导数 def backward(self, dout)

2021-10-19 16:10:15 206

原创 深度学习与图像识别:原理与实践 笔记Day_12

基于测试集的评价过拟合概念:基于训练集的数据,神经网络可以正确识别,但是对于训练数据集以外的数据,就无法识别了。epoch概念:当一个完整的数据集通过了神经网络一次并且返回了一次时,这个过程称为一个epoch。batchsize: 批大小。在深度学习中,一般采用SGD训练,即每次训练都在训练集中提取batchsize个样本进行训练 iteration:一个iteration等于使用batchsize个样本训练一次 epoch:1个epoch等于使用训练集中的全部样本训练一次下面修改下之前的

2021-10-19 15:36:24 542

原创 深度学习与图像识别:原理与实践 笔记Day_11

基于数值微分的反向传播在本节中,我们尝试使用基于数值微分的方式实现手写数字的识别,并且是使用mini_batch来提升计算性能,使用的优化方法是随机梯度下降法,随机是指:“随机选择数据源中的小批次”的意思,随机梯度下降的英文名SGD。第一步、激活函数的定义。主要是使用softmax和Relu,代码如下:...

2021-10-19 15:26:18 178

原创 小案例的实现

案例背景:输入一个X(人工识别这个X的图像为狗)让机器自动判断该图像的分类,其中,图像为三分类(类别为鸡、猫、狗),真实标签的分类为y=[0,0,1](已经转换为one-hot类型,代表是狗)假设我们有一个数据集X,X赋值为[[0.6,0.9]],X的形状为(1,2)代表1行2列实现代码如下:import numpy as npclass SimpleNet: def __init__(self): # 确保每次随机的W都是一致的 np.random.

2021-10-18 22:58:25 111

原创 深度学习与图像识别:原理与实践 笔记Day_10

最优化最优化的目标:找到能够使损失函数值最小化的一系列权重w随机初始化import torchfrom torch.utils.data import DataLoaderimport torchvision.datasets as dsetsimport torchvision.transforms as transformsimport numpy as npclass_num = 10batch_size = 4label = torch.LongTensor(batch

2021-10-18 21:31:25 115

原创 深度学习与图像识别:原理与实践 笔记Day_09

一、损失函数1.均方误差均方误差是各数据偏离真实值的距离平方和的平均数,也即误差平方和的平均数,用σ表示。​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​这里表示的是神经网络的输出,表示的是真实值,i表示每个数据。用Python代码实现,具体如下:def mean_squared_error(p,y): return np.sum((p-y)...

2021-10-18 20:47:52 194

原创 深度学习与图像识别:原理与实践 笔记Day_08

回顾MNIST的前向传播,输入虽然是一个形状为(10000,784)的数据集,但是每次计算都是一张一张图地计算批处理使用批处理来打包100张图片将其作为一个批次,需要将

2021-10-18 14:31:03 248

原创 深度学习与图像识别:原理与实践 笔记Day_07

输出层Softmax解决多分类问题函数表达式为:Vi表示的是分类器前级输出单元的输出,i表示类别索引,总的类别个数为C。Si表示的是当前元素的指数与所有元素的指数的比值。代码实现为:import numpy as npdef _softmax(x): exp_x = np.exp(x) return exp_x / np.sum(exp_x)在这个公式中,我们使用数值较小的数据进行运算是没有问题的,但是当数值过大时,将会得到正无穷(inf)和负无穷两种结果(-

2021-10-18 13:05:39 148

原创 深度学习与图像识别:原理与实践 笔记Day_06

前向传播示例代码:import numpy as npdef _sigmoid(in_data): return 1 / (1+ np.exp(-in_data))def init_netword(): network={} network['W1'] = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]]) network['b1'] = np.array([0.1,0.2,0.3]) network['W2'] = np.

2021-10-17 22:35:45 71

原创 深度学习与图像识别:原理与实践 笔记Day_05

神经网络基础激活函数:1、Sigmoid函数数学表达式为 代码实现:import numpy as npimport matplotlib.pyplot as pltdef Sigmoid(x): y = 1.0 / (1.0 + np.exp(-x)) return yplot_x = np.linspace(-10,10,100)plot_y = Sigmoid(plot_x)plt.plot(plot_x,plot_y)plt...

2021-10-17 22:16:47 104

原创 深度学习与图像识别:原理与实践 笔记Day_04

1.4 梯度下降法(GradientDescent Optimization)代码如下:import numpy as npimport matplotlib.pyplot as pltif __name__ == '__main__': plot_x = np.linspace(-1, 6, 141) # 在-1到6之间取141个点 plot_y = (plot_x - 2.5) **2 -1 # 二次方程的损失函数 plt.scatter(plot

2021-10-17 14:50:45 209

原创 深度学习与图像识别:原理与实践 笔记Day_03

1.3 逻辑回归模型(非线性模型)就是在线性回归的基础上加上一个Sigmoid函数对线性回归的结果进行压缩,令其预测值y在一个范围内逻辑模型通常用来处理二分类问题Sigmoid函数 P表示概率,在[0,1]之间我们可以使用Python的Numpy以及Matplotlib来把它画出来,代码如下:import numpy as npimport matplotlib.pyplot as pltdef Sigmo...

2021-10-17 14:10:28 183

原创 深度学习与图像识别:原理与实践 笔记Day_02

1.2 多元线性回归1.1节中,自变量或者说特征只有一个,而在现实中,一种现象常常是与多个自变量相联系,由多个自变量的最优组合共同来预测或者估计因变量。例如房子售价预测的关系中,房子的售价往往与贩子的住房面积、房间数量、与市中心的距离等因素息息相关。表达公式如下: 多元线性回与一元线性回归类似,都是使得尽可能的小。多元线性回归也使用最小二乘法计算,最终得到θ0、θ1、θ2的值。多元线性回归的算法实现思路...

2021-10-17 13:55:56 190

原创 深度学习与图像识别:原理与实践 笔记Day_01

1、线性回归1.1 一元线性回归一元线性回归是用来描述自变量和因变量都只有一个的情况,可以用y=a*x+b.学习一元线性模型的过程就是通过训练数据集得到最合适的a和b的过程,也就是说该一元线性模型的参数即a和b。如何判断一个模型的好与不好看我们的预测值和真实值之间的差距我们使用平均值 来表示可以通过最小二乘法(又称最小平方法)来寻找最优的参数a和b ...

2021-10-17 12:09:37 131

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除