深度学习第五节(计算机视觉基础)
深度学习第五节(计算机视觉基础) 计算机视觉是指通过计算机系统对图像和视频进行处理和分析,利用计算机算法和方法,使计算机能够模拟和理解人类的视觉系统。 1.图像表示 数字图像文件由像素数组成,像素是图像的最小构成元素,在灰度图像中,每个元素都是0-255之间的标量值。0是黑色,255是白色,介于0到255之间的值都是灰色值(像素值越小,像素越暗) 特定颜色可以由红绿蓝值分量合成表示,将像素值表示为RGB三元组(r,g,b) 2.将图像转换为结构化数组2.1灰度图像表示 将灰度图像转换为结构化数组,并进行可视化。 1.导入cv2(用于从磁盘读取图像)和matplotlib(用于绘制加载的图像)库并读取图像: 1234import cv2import matplotlib.pyplot as pltimg = cv2.imread('1.jpeg')#读取图像并将图像转换为像素值数组 2.裁剪第100-600行以及第100-900列之间的图像,将图像转换为灰度图像并进行绘制。 1234img = img[100:600,100:900]img_g...
深度学习第四节(激活函数和损失函数)
深度学习第四节(激活函数和损失函数) 激活函数和损失函数时深度学习模型中的重要组成部分,激活函数和损失函数的选择在很大程度上决定了深度神经网络的的性能和精度 1.常用激活函数 使用激活函数可以实现网络的高度非线性 1.1sigmod激活函数 使用范围最广,取值范围为[0,1],它可以讲一个实数映射到[0,1]的区间,可以将其用于二分类问题。函数形状为s型,称为s型生长曲线。 12def sigmod(x): return 1/(1+np.exp(-x)) 优点:平滑易于求导 缺点:反向传播求导涉及除法,因此计算量大;反向传播时,很容易就会出现梯度消失的情况,限制了深层网络的训练。 1.2Tanh激活函数Tanh是双曲函数的一种,是sigmod函数的改进,以0为中心,取值范围为[-1,1] 12def tanh(x): return (np.exp(x) - np.exp(-x))/(np.exp(x))+np.exp(-x)) 优点:tanh函数是sigmod函数的改进,收敛速度快,不易出现loss值晃动 缺点:无法解决梯度弥散的问题,函数的计算量同样是指数...
深度学习第三节(使用Pytorch构建神经网络)
深度学习第三节(使用Pytorch构建神经网络)神经网络通常包括输入层、隐藏层、输出层、激活函数、损失函数和学习率等基本组件。本节介绍在简单数据集上使用pytorch构建神经网络,利用张量对象操作和梯度值计算更新网络权重。 1.pytroch构建神经网络 解决两个数字的相加问题 1.初始化数据集 123import torchx = [[1,2],[3,4],[5,6],[7,8]]y = [[3],[7],[5],[11]] 2.将输入列表转换为张量对象,并转换为浮点对象,此外将输入X和输出Y数据点注册到device中 123456X = torch.tensor(x).float()Y = torch.tensor(y).float()device = 'cuda' if torch.cuda.is_available else 'cpu'X = X.to(device)Y = Y.to(device) 3.定义神经网络架构,导入torch.nn模块用于构建神经网络模型,创建MyNeuralNet,继承自nn.Module,nn....
深度学习第二节(神经网络与模型训练过程)
深度学习第二节(神经网络与模型训练过程)1.人工神经网络基础 ANN是张量(权重,weights)和数学运算的集合,将一个或者多个张量作为输入并预测相应输出。将输入连接到输出的操作方式称为神经网络的架构,我们可以根据不同的任务构建不同架构,即基于问题是包含结构化数据还是非结构化数据(图像、文本、语言)数据,这些数据就是输入和输出张量的列表。ANN由以下部分组成: 输入层:将自变量作为输入 隐藏层:连接输入和输出,在输入数据之上进行转换;此外,隐藏层利用节点单元将输入值修改为更高/更低维的值;通过修改中间节点的激活函数可以实现复杂表示函数。 输出层:输入变量产生的值,取决于实际任务以及我们是在尝试预测连续变量还是分类变量。如果输出是连续变量,则输出有一个节点。如果输出是具有m个可能类别的分类,则输出有m个节点 典型结构为: 1.1神经网络的训练 训练神经网络实际上是通过重复两个关键步骤来调整神经网络中的权重:前向传播和反向传播。 1.在前向传播中,我们将一组权重应用与输入数据,将其传递给隐藏层,对隐藏层计算后的输出使用非线性激活,通过若干个隐藏层后,将最后...
深度学习第一节
深度学习第一节 pytorch是广泛应用于机器学习领域的强大开源框架,因其易用性和高效性备受青睐。其中 pytorch的核心数据类型是张量对象。 pytorch提供了许多帮助构建神经网络的高级方法及组件,并提供了利用GPU更快的训练神经网络的张量对象。 张量类似于Numpy中的多为矩阵ndarrays,标量可以表示为零维张量,向量可以表示为一维张量,二维矩阵可以表示为二维矩阵,多维矩阵可以表示为多维张量。 1PyTorch 中的张量(Tensor)和 NumPy 中的 ndarray相比,pytorch张量对象经过优化配合gpu使用。 数据基本操作1.导入pytorch并通过在列表上调用torch.tensor来初始化张量123import torchx = torch.tensor([[1,2]])y = torch.tensor([[1],[2]]) 2.内置函数快速生成张量123456789101112131415161718192021222324252627282930313233343536373839x = torch.arange(12)#tenso...