
AI入门
文章平均质量分 52
文盲青年
好友推荐博客:https://www.cnblogs.com/johnnyzen(千千寰宇)
展开
-
利用matplotlib与numpy画函数图像
【代码】利用matplotlib与numpy画函数图像。原创 2025-03-04 17:56:58 · 144 阅读 · 0 评论 -
二分类问题的三种准确率计算方法
Y:真实标签矢量,二元,元素为0、1Y_pred:预测结果标签矢量,也是二元,元素为0、1。原创 2025-02-25 14:31:35 · 216 阅读 · 0 评论 -
理解网络每层都学到了什么
第四层:具体的带颜色的形状。第三层:带颜色的轮廓。原创 2025-01-08 15:19:06 · 185 阅读 · 0 评论 -
Windows安装tensorflow的GPU版本
首先本文讨论的是windows系统,显卡是英伟达(invida)如何安装。一共需要安装cuDNNCUDA三个东西。其中CUDA是显卡的驱动库,cuDNN是深度学习加速库。安装开始前,首先需要安装好conda,网上有很多教程,这里不再赘述。原创 2024-11-09 13:04:36 · 1139 阅读 · 0 评论 -
获取图像的风格矩阵
根据代码中的,位置数为。这个 Gram 矩阵显示了每个通道之间的相关性。(0, 1)位置的47.0表示通道 0 和通道 1 在所有位置上的特征值相关性。对角线上的元素(如)表示通道自身的相关性,即通道内的特征强度。。原创 2024-10-24 20:02:45 · 345 阅读 · 0 评论 -
yolov3目标检测
【代码】yolov3目标检测。原创 2024-10-18 19:23:17 · 151 阅读 · 0 评论 -
腐蚀膨胀预处理
腐蚀:通过减少前景对象(例如白色字符)的边缘,腐蚀可以用来减小或消除细小的干扰线。如果干扰线较细,腐蚀可以有效地“消除”这些线条,同时保留较粗的字符。膨胀:在腐蚀之后,膨胀可以用来恢复字符的完整性,因为腐蚀可能会削弱字符的部分结构。膨胀能够扩展字符的边界,使其恢复到原来的粗细。可以根据实际情况调整腐蚀和膨胀的内核大小(如 kernel),以及迭代次数。测试不同的参数可以达到最佳效果。如果干扰线较粗,可能需要更大内核或增加腐蚀的次数。原创 2024-10-18 18:32:02 · 772 阅读 · 0 评论 -
残差网络实现验证码识别
大概在第17次epoch,达到一个比较优的状态。,来跳跃传递激活值,从而来避免梯度消失问题,从而可以加深网络的深度。从而学习到更多特征,提升准确率。这里共1.4w张,二八分割,2900张左右测试集,训练集1.1w张左右。图片大致张上面这样,分辨率50*200,6位,每位有36种可能性。这里采用6位合在一起做推理,评估一下准确率。x3表示3个identity_block。综合准确率在97.8%左右。可见6位都达到了99%原创 2024-10-10 19:24:55 · 457 阅读 · 0 评论 -
CNN构建
【代码】CNN构建。原创 2024-09-26 19:17:50 · 196 阅读 · 0 评论 -
np.pad实现零填充
是 NumPy 中用于对数组进行填充的函数,它可以在数组的不同维度上添加指定数量的值。:指定填充常数的值。这里用 0 进行填充,因此 pad 大小的区域将填充为 0。:对第二个维度(高度)进行 pad 大小的填充,前后都填充 pad 个单位。:对第三个维度(宽度)进行 pad 大小的填充,前后都填充 pad 个单位。的 tuple(元组)来指示每个维度的填充值。:指定填充的模式,这里 ‘constant’ 表示用常数来填充。:对第一个维度(样本数量)不做填充。:对第四个维度(通道数)不做填充。原创 2024-09-24 12:59:49 · 462 阅读 · 0 评论 -
softmax多分类及多任务示例
多分类:可以识别出验证码(6位)中的1位:import loggingimport osimport h5pyimport matplotlib.pyplot as pltimport numpy as npfrom PIL import ImageIMG_HEIGHT = 50IMG_WIDTH = 200IMG_CHANNEL = 1LABELS = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',原创 2024-08-19 15:50:48 · 623 阅读 · 0 评论 -
tensorflow1.x基础语法
TensorFlow是一个以图(graphs)来表示计算的框架,图中的节点被称之为op (operation 的缩写)。一个 op 获得零或多个张量 (tensors) 执行计算,产生零或多个张量。张量是一个按类型划分的多维数组。Z[L]为前向传播的最后节点,Y为训练标签。一个基于softmax的训练例子。原创 2024-08-07 11:32:05 · 261 阅读 · 0 评论 -
模型优化学习笔记—梯度校验
将dW、db等转化成一个大的向量p,然后通过前向传播dw、db,计算出一个近似梯度,再与反向传播计算出的梯度做对比。原理:自己算一遍所有梯度gradapprox,再与反向传播的grad对比。原创 2024-08-05 16:34:11 · 211 阅读 · 0 评论 -
模型优化学习笔记—对比各种梯度下降算法
【代码】模型优化学习笔记—对比各种梯度下降算法。原创 2024-08-05 16:11:18 · 262 阅读 · 0 评论 -
模型优化学习笔记—Adam算法
假设动量梯度下降,可以在30个epoch能找到最小值,那么RMSprop能在20个epoch中找到,而Adam更厉害,因为它是动量梯度下降和RMSprop的结合体。: 虽然表面r没变,但是w=w-rdw,当dw变大,w变小,相当于r变大的效果。起到了与调整r的同样的作用:改变了梯度下降在某个方向的学习速度。超参数:r、k1、k2,一般k1和k2取0.9和0.999且很少改变。3、梯度下降(其中sqrt表示开平方,u取10^(-8) ),算出指数加权移动平均,即动量梯度下降。,修正动量梯度下降的值。原创 2024-08-05 14:29:11 · 454 阅读 · 0 评论 -
模型优化学习笔记—梯度爆炸与梯度消失
问题:当算力可以无限强大,能构建无限深的网络吗?因为最终可能会走向梯度爆炸或者梯度消失,这个问题的答案可能是否定的。原创 2024-08-02 17:17:26 · 525 阅读 · 0 评论 -
模型优化学习笔记—动量梯度下降
在网络中可能存在局部最优(鞍点,马鞍是马背前后的最低点,但是并不代表是全局最低点,因为马鞍左右还能向下摔),而神经网络就是为了找到全局最优,故为了避免在鞍点前后摆动(梯度过大),又为了避免梯度更新不动(梯度为0),故在某个方向梯度过大过小都不行,需要用RMSprop来平衡个方向的力。又名指数加权移动平均,是一种常用的序列数据处理方式,本质是通过计算局部的平均值,来描述数值的变化趋势。而mini-batch的梯度下降,会不断趋于准确,但整个过程中,会因为批次的变化(更换了样本),有抬升的地方,即。原创 2024-08-01 19:32:58 · 1014 阅读 · 0 评论 -
模型优化学习笔记—输入特征归一化处理
原理说明:求出矩阵所有元素的平均值,每个元素都减去平均值,从而使得矩阵整体减去了[平均值 * 元素个数],相当于矩阵整体减去了所有元素的累加和,从而使得平均值为0。由于a为X的方差值,X/a的方差值为1/a,相当于同比缩放a倍,故X/a的方差值为1(X的方差值除以X的方差值)。m,X’为X元素的平均值。Var(X/a) = 1/m * sum [ ( X(i)/a ) ^2 ],同理X/a均值也为0。处理值会收窄x轴的间距,加长y轴的间距,减小离散与适当扩大原集中,使其整体离散小。原创 2024-07-25 19:01:09 · 523 阅读 · 0 评论 -
模型优化学习笔记—数据增强
数据增强是一种生成合成数据的方法,通过调整原来样本来创建新样本,这样就可以获得大量的数据,这不仅增加了数据的大小,还提供了单个样本的多个变体,这有助于机器学习模型避免过度拟合。10、EDA(Easy data augmentation,同义词替换、随机插入、随机交换、随机阐删除)8、回译(back translation,文本处理:中文-> 日文 -> 英文 ----> 中文)4、增加噪点(图片-高斯噪声,音频-增加噪声)1、水平、垂直翻转(图片)3、旋转,扭曲直线(数字)IR:那辆不错车很好。原创 2024-07-17 13:22:51 · 633 阅读 · 0 评论 -
模型优化学习笔记—正则化与dropout
4、L2正则化较为常用,L1正则化用的少,但是L1正则化在高维度稀疏(存在大量的无意义数据)的情况下十分有用,高维度稀疏的情况下,尽量使权重正好降至0,正好为0的权重基本上会使响应特征从模型中移除,将特征设为0可节省内存空间,且减少模型中的噪点。而L2正则化可以使权重变小,但是无法使其降至0.0(假设将L2的作用理解为每次移除权重的x%,而L1的作用理解为每次从权重中减去1个常数),而L1可以通过不断减去常数,使其为0或者为负(强制置0),就有助于节约内存了。在反向传播时,我们也必须删除相同的神经元。原创 2024-07-16 13:57:19 · 485 阅读 · 0 评论 -
模型优化学习笔记—欠拟合与过拟合
1、欠拟合:对训练集准确率很低。对测试集准确率很低,但与训练集准确率相差不大。2、过拟合:对训练集准率相当高。对测试集准确率很低。此时学习了训练集中的一些非泛化的独有特征。3、既欠拟合,又过拟合:对训练集准确率很低,对测试集准确率很低,并且测试集准确率与训练集准确率相差也较大。注意:当训练集准确率99%,测试集准确率99%,你有必要怀疑你是否将测试样本参与了训练,或者训练集和测试集样本有重合。原创 2024-07-15 23:04:39 · 369 阅读 · 0 评论 -
模型优化学习笔记—数据集配置
1.1、一般有两种分类:训练集/测试集,或者 训练集/验证集/测试集,前者用训练集来训练,用测试集来验证。如果不理想,就重新训练。后者用验证集来验证和重新训练,然后再跑测试集,但是测试集如果不理想,有时也会重新训练。但是数据量大有的采用99/1分配,甚至99.5/0.5/0.1分配,因为此时0.1的比例,就可能有上千条数据了。比如训练集图片像素很高,而验证集图片像素很低,则训练不出优秀的网络。当测试数据集的准确率非常高了,就有必要怀疑是否对测试数据做了训练(测试数据中存在和训练数据相同的样本)原创 2024-07-15 23:02:52 · 284 阅读 · 0 评论 -
深层神经网络示例
dA[L-1] = W[L].T dZ[L],注意这里没有除以神经元个数,得到平均da。比如结果的第一个元素是多个dw1 * dz + dw1 * dz+ …dw1 * dz(神经元个数)的累加和。dw = dL/dz * dz/dw = dz*x(链式法则)A[L]、Z[L]:(本层神经元个数、样本数)dW[L]:(本层神经元个数、上层神经元个数)W[L]:(本层神经元个数、上层神经元个数)dZ[L]:(本层神经元个数、样本数)dA[L]:(本层神经元个数、样本数)b[L]:(本层神经元个数、1)原创 2024-07-13 14:27:17 · 662 阅读 · 0 评论 -
浅层神经网络示例
输出层采用sigmoid激活,隐藏层采用tanh激活。原创 2024-07-11 23:12:12 · 365 阅读 · 0 评论 -
一个基于API的简单ocr示例
利用百度的。原创 2024-04-10 10:35:50 · 287 阅读 · 0 评论 -
概率题之随机数的生成
例如:函数a可以生成1-4的随机数,现在要求用函数b生成1-11的随机数且基于a来实现:思路:函数a:生成1-4的随机数函数b:生成1-11的随机数我们要用a来实现b,有一点懵,不妨换一下思路,先用b来实现a: public int a() { int x = b();//[1,11] while (x > 4) { x = b(); } return x; }以上代码很简单,只要b原创 2021-11-28 20:12:58 · 711 阅读 · 0 评论 -
基于逻辑回归的单神经元公式伪代码及详细说明(已向量化)
未向量化:Z = np.dot(w.t,X) + bA = a(Z) = 1/(1+np.exp(-Z))J = np.sum(-(Y*np.log(A) + (1-Y)*np.log(1-A))/mdZ = A -Ydw = np.dot(X,dZ.t)/mdb=np.sum(dZ)/m 第一行大X是一个n*m的向量(n行m列,有m个样本,每个样本有n个特征x1、x2、 ... xn)小w是一个n*1的列向量(对应每个特征的初始权重,w1、w2、... wn),w.t为w的转置,是一原创 2020-08-23 20:01:40 · 772 阅读 · 1 评论 -
逻辑回归函数求偏导及Sigmoid函数求偏导
逻辑回归相关公式逻辑回归预测公式:z = w(T) x + bsigmoid激活函数:y' = a = ????(z) ????(x) = 1/(1-e^(-z))损失函数:L(a,y) = -( ylog(a) + (1-y) * log(1-a) )对最终函数(损失函数L)求偏导结果损失函数L 对 激活函数a 求偏导:da = dL/da = -(y/a) + (1-y)/(1-a)① sigmoid 对 预测结果z 求偏导:da/dz= a(1-a)②原创 2020-07-04 14:41:37 · 2839 阅读 · 2 评论 -
单神经元基于逻辑回归的训练函数
import numpy as npdef sigmoid(z): """ sigmoid激活函数 :param z: 一个数值或者一个numpy数组 :return: sigmoid计算后的值,范围在[0,1]以内 """ s = 1 / (1 + np.exp(-z)) return sdef initialize_with_zeros(dim): """ 初始化权重数组w和偏置/阈值b :param dim:原创 2020-06-13 10:47:56 · 310 阅读 · 1 评论 -
MSE(均方误差)函数和RMSE函数
转载 2020-06-03 17:13:17 · 1292 阅读 · 1 评论