- 博客(438)
- 资源 (10)
- 问答 (4)
- 收藏
- 关注
原创 神经网络模型简介
Tensorflow神经网络训练模型的基本步骤,总结如下:导入数据 => 构建神经网络模型 => 配置模型的训练方式 => 输入数据到网络 => 训练模型 => 评估模型 => 使用模型进行预测学习的时候,要时刻记住自己所处的阶段;同时要明白,对初学者或者AI基础应用工程来说,核心时搭建正确的神经网络和输入正确的数据。导入数据这是个固定的模式,直接导入即可。通过print函数,可以知道训练数据有60000组,每个图片是28*28的二维数据;测试数据有10000组构建全连接神经网络模型。
2025-03-29 20:39:33
459
原创 北大tensorflow欠拟合的python 例子, test ok
以下是一个使用 TensorFlow 展示欠拟合现象的 Python 示例。在这个示例中,我们会创建一个简单的线性回归模型,尝试用它来拟合一个非线性的数据集,以此展示欠拟合的情况。非vip ,扫码看文章。
2025-03-29 17:07:29
273
原创 TensorFlow C++笔记:安装、模型加载推理及构建计算图,test ok
Tensor类的构造函数无法指定张量值,如需用特定值定义一个张量可以使用Input::Initializer,文档描述:Initializer能够从C++基本类型常量或初始化列表(initializer lists)构建Input对象,代表一个多维数组。文档描述:一个Input类代表一个能作为算子的操作数(operand)的张量,一个Output类代表算子输出的张量。想要以特定模式赋值的张量,可以考虑在array_ops.h里查找想要的算子,例如Fill算子以特定值赋给张量的所有元素。
2025-03-28 21:13:13
772
原创 tensorflow2.0python训练c++部署, test ok
编译完成后将在tensorflow/bazel_bin/tensorflow文件夹中出现libtensorflow_cc.so和libtensorflow_framework.so两个文件,即表示编译成功。编译时间非常漫长,并且需要高配置的处理器和较大的内存,编译过程中将无法做其他事。的版本也需升至8.4.0以上,可以使用命令 gcc -v查看gcc的版本。,并调用保存的pb文件,最后输出结果,以下是main.c的代码内容。,会在文件夹中生成lstm2的文件夹,里面是保存的模型文件。运行main.out。
2025-03-28 21:06:07
366
原创 北大搭建神经网络八股——keras实现
卷积层:tf.keras.layers.Conv2D(filters=卷积核个数,kernel_size=卷积核大小,strides=卷积步长,padding=”valid” or “SAME”)kernel_regularizer可选:tf.keras.regularizers.l1()、tf.keras.regularizers.l2()tf.keras.layers.Dense(神经元个数,activation=“激活函数”,kernel_regularizer=哪种正则化)
2025-03-16 11:09:40
969
原创 北大优化器分类, my write
深度学习最全优化方法总结比较(SGD,SGDM,Adam,Adagrad,Adadelta,Adam)_sgdmdm-优快云博客。
2025-03-16 10:09:35
577
原创 北大神经网络参数优化器, my write
它们都有学习的潜力,但是不同的引导方法,会让孩子向不同方向发展,达到不同的高度。把修正后的一阶动量 和 二阶动量 带入 参数更新公式,实现参数自更新。当前的二阶动量 v_w,v_b 等于 当前梯度评分的累计和。同时引入 SGDM的一阶动量 和 RMSProp的二阶动量。一阶动量 很大程度上 由 上一时刻的一阶动量所决定。零时刻的 w 和 b的二阶动量 初始值都为0.即 学习率 x 一阶动量/ 根号下的二阶动量。二阶动量:与梯度平方相关的函数。一阶动量: 与梯度相关的函数。batch 将多少个数据打包。
2025-03-16 09:59:09
334
原创 北大L2正则化缓解过拟合实例, my write
用颜色来代替0/1预测值 [['red'], ['blue'], ['blue'], ['red'], ['red'], ['blue'],问题,给定一个数据集中又x1,x2,y在神经网络中进行训练,再用网格中坐标作为测试集测试,将原始数据x1,x2进行0/1分类,以图表显示。画分界线,数据以0/1分类,probs为每个坐标点的预测值(0~1之间),则将预测值为0.5的坐标画上分界线,此线也就是分类点的分界线。是机器学习中对原始损失函数引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称。
2025-03-16 09:52:08
960
原创 北大Tensorflow2.x框架-缓解过拟合,my write
正则化在损失函数中引入复杂度指标,利用给W加权值,弱化了训练数据的噪声(一般不对b进行正则化)。正则化分为L1正则话和L2正则化,分别对应L1范数和L2范数。L1正则化:L1正则化会使很多的参数变为0,因此该方法可以通过稀疏参数,即减少参数数量,降低复杂度。L2正则化:L2正则化会使参数很接近零但是不为0,因此该方法可以通过减少参数值的大小降低复杂度。本次代码采用设计好的dot.csv数据集,其中包含x1,x2和y_c,我们先训练好神经网络结构,然后构思成一张图,找到y_c和x1,x2的关系,然后输入
2025-03-16 08:34:24
243
原创 北大神经网络训练防止过拟合和欠拟合的方法, test
nn.BatchNorm2d:适用于4D输入,如图片数据4维度(batch,channel,height,width),卷积层。如果模型训练时,准确率或者损失变化缓慢,则需要调整学习率,越小的学习率,模型的准确率或者损失变化越慢。过度学习,反而失去泛化能力,当发现过拟合时,一般说明模型的拟合能力没问题,但是泛化能力需要提高。nn.BatchNorm1d:适用于2D或3D输入,如一维卷积层和全连接层。2.让每一层变得更大,增加每一层的通道数或者神经元个数。3.隐藏层单元数,神经元个数或者卷积层通道数。
2025-03-15 21:58:55
377
原创 北大损失函数, my write
1. 含义:loss表示预测值y与已知答案y_的差距.有以下三种方式。输出先过softmax函数,再计算y与y_的交叉熵损失函数。表征两个概率分布之间的距离daan。7. softmax与交叉熵结合。3. 举例说明均方误差损失函数。y_是标准答案,y是输出答案。5. 举例自定义损失函数。6. 交叉熵损失函数举例。4.举例自定义损失函数。2. 均方误差mse。
2025-03-15 21:08:49
277
原创 北大指数衰减学习率, test ok
所以,其中的绝大部分内容引自这系列视频,博客中的代码也是视频配套所附带的代码,其中部分代码可能会因需要而改动。指 数 衰 减 学 习 率 = 初 始 学 习 率 ∗ 学 习 率 衰 减 率 ( 当 前 轮 数 / 多 少 轮 衰 减 一 次 ) 指数衰减学习率=初始学习率*学习率衰减率^{(当前轮数/多少轮衰减一次)}指数衰减学习率=初始学习率∗学习率衰减率(当前轮数/多少轮衰减一次)可以先使用较大的学习率,快速得到较优解,然后逐步减小学习率,使模型在训练后期稳定。:本系列博客是我在学习。
2025-03-15 20:30:32
313
原创 北大神经网络实现鸢尾花分类, my write
(把数据集分批次,每个批次batch组数据)将打乱后的数据集分割为训练集和测试集,训练集为前120行,测试集为后30行。seed: 随机数种子,是一个整数,当设置之后,每次生成的随机数都一样。随机打乱数据(因为原始数据是顺序的,顺序不打乱会影响准确率)迭代,with结构中求的损失函数loss对每个可训练参数的。4.配对(输入特征,标签),每次读入一小撮(batch)画出准确率acc和损失函数loss的变化曲线图。,更新这些参数,显示当前loss。每遍历一次数据集,显示当前准确率。3.生成训练集和测试集。
2025-03-15 19:42:12
278
原创 TensorFlow基本概念与常用函数,my write
本人人工智能入门小白一枚,在网上学习人工智能实践-TensorFlow2.0(北大公开课)课程,将自己学习到的东西进行整理,为方便后面复习,如有错误,烦请指出!多谢!!
2025-03-15 16:10:51
981
原创 张正友标定法-python, my write
从图中我们可以看出,在世界坐标中的一条直线上的点在相机上只呈现出了一个点,其中发生了非常大的变化,同时也损失和很多重要的信息,这正是我们3D重建、目标检测与识别领域的重点和难点。相机的外参是6个,三个轴的旋转参数分别是(w、δ、θ),把每个轴的33旋转矩阵进行组合(矩阵之间相乘),得到集合三个轴旋转信息的R,其大小还是33;相机标定指建立相机图像像素位置与场景点位置之间的关系,根据相机成像模型,由特征点在图像中坐标与世界坐标的对应关系,求解相机模型的参数,包括内部参数和外部参数。
2025-03-14 21:35:34
647
原创 一文吃透相机标定(Camera calibration),my write
通过前面的几个步骤,我们已经得到了各个坐标系之间的相互转换关系(不考虑畸变):进一步的就可以得到从像素坐标系到世界坐标系的变换关系:进一步化简:这个公式就是整个单目相机在理想情况下的成像公式,可以建立世界坐标系到像素坐标系的一一映射。OK,到此我们就清楚的了解了相机标定的第一个目的---求解内外参数 以及 之间的转换关系。通过上面的推导,我们可以总结一下,要实现从物空间任意一点到相机图像的投影我们需要计算得到哪些参数:利用相机标定的算法(张正友标定法)
2025-03-14 21:15:53
704
原创 【张正友标定法解析与C++代码实现】test code
张正友标定相机内参是非常经典的标定算法,现在代码已经被集成到MATLAB和opencv里面。不过因为算法涉及到基础的相机坐标系、图像坐标系、公式推导,以及优化算法,故根据张正友论文进行分模块代码编写。
2025-03-08 19:52:38
1024
原创 imu内参标定,从数据录制到标定结果过程记录, my write
若想可视化,终端5,运行命令rviz,在可视化界面点击ADD,选中imu_plugin底下的imu,点击ok。录制包默认放在主目录下,需将它拷到imu_catkin_ws 空间下,并改名为 imu_calibration.bag(如果在录制时制定存放位置和包名,这一步可以其实可以省掉,但是我没有用这个命令因为命令格式没写对)注意,这里的 /IMU_data 是自己的话题名称,不要写错了,如果不知道是什么,看看前面编写的 imu_data.cpp 里面的 publisher 那一行。1.4 添加以下内容。
2025-03-08 18:27:14
954
原创 IMU加速度计误差, 标定方法+代码实现, test ok
在静止状态下一直受重力加速度的影响,当加速度不同面朝上时,加速度计的不同轴所受的重力是不一样的,例如正面朝上的时候加速度计读数应该是(0,0,g),侧面朝上应该是(0,g,0)。因此可以使用六面法构造方程,然后使用最小二乘法求解。的六个面分别朝上采集数据,各采集1分钟,然后保存下来。加速度是由力产生的,由于重力的影响,
2025-03-08 18:04:36
347
原创 tensorflow中RMSprop优化器运用
导入模块import tensorflow as tf #导入tensorflow模块from sklearn import datasets #导入sklearn中的datasets模块,方便下载内置的iris数据集from matplotlib import pyplot as plt #导入matplotlib中的pyplot,待会画图import numpy as np #导入numpy模块做数学运算import time #导入时间模块,用来计时#导入数据。
2025-03-01 18:33:17
712
原创 tensorflow中model.fit()用法
validation_data = (测试集的输入特征,测试集的标签),validation_split = 从测试集中划分多少比例给训练集,validation_freq = 测试的epoch间隔数)batch_size, #每一个batch的大小。epochs, #迭代次数。model.fit( 训练集的输入特征,
2025-03-01 18:27:15
310
原创 tensorflow中SGDM优化器用法
E:\Anaconda3\envs\TF2\python.exe C:/Users/Administrator/PycharmProjects/untitled8/iris数据集分类.py。省略................................
2025-03-01 18:22:40
723
原创 TensorFlow-重写计算图的方式保存pb,Python调用pb没问题,OpenCV调用pb,不能加leaky_relu和BN层
采用的思路是重写的方法采用python调用pb上面的代码完全可行,不用修改什么。
2025-03-01 18:15:42
267
原创 TensorFlow北大公开课学习笔记-6.1输入手写数字图片输出识别结果(结合5.3程序)
注:本系列文章主要是复现北京大学TensorFlow笔记中的代码,方便以后使用,并没有详细讲解流程,因为我并不是专门做教程的。何况北大的教程讲的已经很好了,有需要了解详细过程的可以去看北大的教程哈。
2025-03-01 17:47:27
99
原创 ensorFlow北大公开课学习笔记-4.2学习率
其中, LEARNING_RATE_BASE 为学习率初始值, LEARNING_RATE_DECAY 为学习率衰减率,global_step 记录了当前训练轮数,为不可训练型参数。其中,学习率初值设置为 0.1,学习率衰减率设置为 0.99, BATCH_SIZE 设置为 1。如参数初值为 5,学习。由图可知,损失函数 loss 的最小值会在(-1,0)处得到,此时损失函数的导数为 0,得到最终参数 w =由结果可知,随着损失函数值的减小, w 无限趋近于-1,模型计算推测出最优参数 w = -1。
2025-03-01 17:44:55
301
原创 TensorFlow_5dropout
一,概述在机器学习中可能会存在过拟合的问题,表现为在训练集上表现很好,但在测试集中表现不如训练集中的那么好。图中是正常模型,就是overfitting模型。尽管很精确的区分了所有的训练数据,但是并没有描述数据的整体特征,对新测试数据的适应性较差。解决过拟合的方式有:1)增加数据集,2)减少数据特征(一般不采用),3)(上一篇已讲过),4)dropout。这篇文章就说一下通过droupout防止过拟合问题。Dropout就是在。
2025-03-01 17:41:02
304
原创 TensorFlow北大公开课学习笔记-3.3反向传播
笔记中的代码,方便以后使用,并没有详细讲解流程,因为我并不是专门做教程的。何况北大的教程讲的已经很好了,有需要了解详细过程的可以去看北大的教程哈。优化器中都需要一个叫做学习率的参数, 使用时, 如果学习率选择过大会出现震。荡不收敛的情况,如果学习率选择过小, 会出现收敛速度慢的情况。随机梯度下降算法保持单一的学习率更新所有的参数,学。损失函数的计算有很多方法,均方误差 MSE 是比较常用的方法之一。梯度的反方向,即总损失减小的方向移动,实现更新参数。阶矩估计而为不同的参数设计独立的自适应性学习率。
2025-03-01 17:36:50
476
原创 使用TensorFlow、CNN实现MNIST手写字体识别,并利用tensorboard实现可视化
此篇文章并没有追求正确率,主要目的是为了熟悉CNN以及TensorBoard的用法。卷积层2([5,5,32,64]),池化层2(2。卷积层1([5,5,1,32]),池化层1(2。全连接层2(1024*10);
2025-03-01 17:32:51
256
原创 TensorFlow北大公开课学习笔记-8 复现vgg16并实现图片识别
注:本系列文章主要是复现北京大学TensorFlow笔记中的代码,方便以后使用,并没有详细讲解流程,因为我并不是专门做教程的。何况北大的教程讲的已经很好了,有需要了解详细过程的可以去看北大的教程哈。五,相关文件夹里的文件。六,测试一张图,看效果。,输入图片路径,回车。
2025-03-01 17:25:41
315
原创 TensorFlow_6断点续训与Tensorboard可视化
为了方便调试参数以及调整网络结构,我们需要将计算图可视化出来,以便能够更好的进行下一步的决策。TensorBoard是一个可视化工具,能够有效地展示Tensorflow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。断点续训就是每训练N轮保存一次结果,如果中途有突发状况,导致训练中断,下次再训练时不至于从开始,而可以接着原来的训练的结果继续训练。在MNIST相关代码和验证码识别的代码里我也加入了断点续训功能,不过那个代码比较长,看起来比较麻烦,这里只留下比较核心的代码。
2025-03-01 17:10:43
240
原创 TensorFlow_4正则化
在神经网络的情况下,有时希望对网络的每一层使用单独的惩罚,并分配不同 的 α系数。寻找合适的多个超参数的代价很大,因此为了减少搜索空间,我们会在所有层使用相同的权重衰减(L2正则化)。我们可以看到,加入权重衰减后会引起学习规则的修改,即在每步执行通常的梯度更 新之前先收缩权重向量(将权重向量乘以一个常数因子)。因此,我们使用向量 w 表示所有应受范数惩罚影响的权重,而向量 θ 表示所有参数 (包括 w 和无需正则化的参数)。在神经网络中,参数包括每一层仿射变换的权重和偏置,我们通常。
2025-03-01 17:06:43
624
原创 TensorFlow_1参数初始化方法
当初始化一个维数很多的常量时,一个一个指定每个维数上的值很不方便,tf提供了 tf.zeros_initializer() 和 tf.ones_initializer() 类,分别用来初始化全0和全1的tensor对象。tf中tf.variance_scaling_initializer()类可以生成截断正太分布和均匀分布的tensor,增加了更多的控制参数。从输出可以看到,均匀分布生成的随机数并不是从小到大或者从大到小均匀分布的,这里均匀分布的意义是每次从一组服从均匀分布的数里边随机抽取一个数。
2025-03-01 17:02:06
1003
原创 TensorFlow-tf.nn.embedding_lookup()函数解析
tf.nn.embedding_lookup的用法主要是选取一个张量里面索引对应的元素。
2025-03-01 16:49:07
309
原创 TensorFlow-tf.assign()函数解析
tf.assign(A, new_number): 这个函数的功能主要是把A的值变为new_number。
2025-02-25 17:06:49
183
socket通过传输protobuf通信
2022-10-03
c++ vector保存子类的指针
2023-01-15
安装openDDS的时候提示下面的错误,解决下。
2022-01-09
cout<<""<<""<<endl;
2021-04-23
map嵌套,相同的key为什么value没有被覆盖掉
2021-01-23
undefined reference to `operator new
2020-12-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人