笔记
波波秀
这个作者很懒,什么都没留下…
展开
-
将激光点云数据投影到二维图像及对三维点云上色
本次所用的数据是16线的激光点云数据和1080p的usb图像信息,内容涉及到标定,投影两个部分原创 2022-07-05 21:09:35 · 4979 阅读 · 0 评论 -
Ubuntu16.04安装iai_kinect2爬坑记录
Ubuntu16.04安装iai_kinect2爬坑记录安装iai_kinect2爬坑经共享1. iai_kinect2下载安装网上有很多的安装教程,将下载文件放入工作空间的src文件夹下。在src文件夹下打开终端输入命令git clone https://github.com/code-iai/iai_kinect2.gitcd iai_kinect2rosdep install -r --from-paths . cd ~/catkin_ws #进入自己的工作空间下catkin_make原创 2021-07-05 21:16:52 · 720 阅读 · 2 评论 -
Tensorflow2.0学习笔记-RNN字母预测
字母预测循环计算过程输出abcde作为一个循环,根据输入的一个字母预测出下一个字母,例如a->b,e->a…,把abcde设置成12345的顺序,然后设置成独热码。上图中为本次循环计算过程。对应代码import numpy as npimport tensorflow as tffrom tensorflow.keras.layers import Dense, SimpleRNNimport matplotlib.pyplot as pltimport osinput_原创 2021-01-12 18:33:05 · 559 阅读 · 1 评论 -
Tensorflow2.0学习笔记-循环核
循环核1. 循环核介绍参数时间共享,循环层提取时间信息。2. 循环核按时间展开参数ht随着时间的变化而变化,输入数据x也随着变化而变化。训练优化的就是这些参数构成的矩阵,训练完成后,我们选择效果最好的模型,执行前向传播。3. 循环计算层向输出方向生长,循环核中记忆体的个数和参数可以自己设置。4. TF描述循环计算层tf.keras.layers.SimpleRNN(记忆体个数, activation = '激活函数', # 其中默认为原创 2021-01-12 16:01:15 · 439 阅读 · 0 评论 -
Tensorflow2.0学习笔记-神经网络典型结构
1. LeNetclass LeNet5(Model): def __init__(self): super(LeNet5, self).__init__() self.c1 = Conv2D(filters=6, kernel_size=(5, 5), activation='sigmoid') self.p1 = MaxPool2D(pool_size=(2, 2), strides=2)原创 2021-01-11 21:01:07 · 254 阅读 · 0 评论 -
Tensorflow2.0学习笔记-cifar10数据集操作
cifar图片数据训练Cifar10数据集:提供5万张32 * 32像素点的十分类彩色图片和标签,用于训练。提供1万张32 * 32像素点的十分类彩色图片和标签,用于训练。Cifar数据集是三通道的彩色图片所以我们在设置卷积核数量时,要设置正确。卷积核和个数代表着输出特征图的深度,代码如下:import tensorflow as tfimport osimport numpy as npfrom matplotlib import pyplot as pltfrom tensorflow原创 2021-01-11 17:14:59 · 445 阅读 · 1 评论 -
Tensorflow2.0学习笔记-神经网络卷积操作
之前的学习中,仅仅是两层神经网络就含有数十万个待训练参数,而参数数量过多很容易引起过拟合,导致测试结果不准确,所以我们可以采用卷积计算的方法对输入数据进行特征提取,再采取dropout的方式,降低过拟合。卷积传统的神经网络使用矩阵乘法来建立和输出的连接关系,每一个输出单元与每一个输入单元都产生交。然而。卷积网络具有稀疏交互(也叫稀疏连接或者稀疏权重)的特征。这是使核的大小远小于输入的大小来达到的。当我们处理一张图像时,输入的图像可能存在成千上万个像素点,但是我们可以通过只占用几十到上百个像素点的核来检测原创 2021-01-11 11:37:21 · 418 阅读 · 0 评论 -
Tensorflow2.0学习笔记-数字图片分类
数字图片分类使用我们之前使用mnsit训练的模型,对手写图片进行实际识别。本次课程中,需要使用model.predict() 函数,其中函数的输入参数为待测试图片特征,包括图片总数,宽,高。通过训练好的模型,预测我们输入图片的类别。由于训练时我们使用的是28 * 28的图片,所以在预测时,我们要将图片化为28 * 28的图片。代码如下:from PIL import Imageimport numpy as npimport tensorflow as tfmodel_save_path原创 2021-01-09 21:08:11 · 207 阅读 · 0 评论 -
Tensorflow2.0学习笔记-准确率和损失值的可视化
进行准确率和损失值的可视化,就是将acc和loss使用matplot画出来。我们在使用model.fit()函数进行训练时,同步记录了训练集和测试集的损失和准确率。可以使用history进行调用,如下:# 使用history将训练集和测试集的loss和acc调出来acc = history.history['sparse_categorical_accuracy'] # 训练集准确率val_acc = history.history['val_sparse_categorical_accuracy原创 2021-01-09 15:14:43 · 4770 阅读 · 2 评论 -
Tensorflow2.0学习笔记-提取可训练参数
参数的提取,把参数存入文本1. 参数打印输出。在实际训练过程中,我们可以将参数的训练通过文本进行记录,或者打印出来进行查看。其中model.trainable_variables可以返回模型中的参数。我们可以使用printf进行打印,但是直接使用打印可能为出现很多数据无法显示,我们可以先设置np.set_printoptions(threshold=10) # 其中threshold表示输出的阈值,超出阈值的参数会用省略号表示,原创 2021-01-09 14:55:30 · 3169 阅读 · 2 评论 -
Tensorflow2.0学习笔记-数据增强,断点续训
数据增强在小数据模型中,数据增强可以起到明显的效果,本次使用的是mnist数据集单靠准确率去证明数据增强的效果是不可行的,需要自己在实际运用中体会。import tensorflow as tffrom tensorflow.keras.preprocessing.image import ImageDataGeneratormnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data(原创 2021-01-07 17:19:38 · 761 阅读 · 0 评论 -
Tensorflow2.0学习笔记-自制数据集及训练
自制数据集及应用本次使用mnist的图片做一个自制的数据集,其中在文件夹中存放需要用到的数据,包含了训练的60000张28 * 28的图片,和测试的10000张28 * 28图片。每个图片对应的有自己的标签。 直接上代码:import tensorflow as tffrom PIL import Imageimport numpy as npimport ostrain_path = './mnist_image_label/mnist_train_jpg_60000/' # 训练原创 2021-01-07 16:33:35 · 1495 阅读 · 1 评论 -
Tensorflow2.0学习笔记-mnist手写数据集训练
mnist手写数据集训练mnist数据集: 提供了6万张28 * 28像素点的0~9的手写数字图片,用于测试 提供了1万张28 * 28像素点的0~9的手写数字图片,用于测试导入mnist数据集: mnist = tf.keras.datasets.mnist (x_train, t_train), (x_test, y_test) = mnisti.load_data()作为输入特征,输入神经网络时,将数据拉直成了一维数组: tf.keras.layers.Flatten()训原创 2021-01-02 16:43:01 · 439 阅读 · 2 评论 -
Tensorflow2.0学习笔记-使用API搭建神经网络
使用Tensorflow的API搭建神经网络1. 顺序搭建神经网络结构顺序搭建神经网络一般分为六步: (1)加载相关模块。(import) (2)指定训练集的输入特征和标签。(train,test) (3)搭建网络结构,逐层描述每层网络。(model = tf.keras.model.Sequential) (4)配置训练方法,包括优化器、损失函数和评测指标。(model.compile) (5)执行训练过程。(model.fit) (6)打印出网络结构和参数统计。 (model.summa原创 2021-01-02 15:03:19 · 347 阅读 · 0 评论 -
Tensorflow2.0学习笔记-神经网络参数优化器
神经网络参数优化神经网络中,很多的超参数难以设置,我们可以引入动量(momentum),通过算法来达到优化时间和准确率。1. 动量(momentum)常用的动量有一阶动量和二阶动量: 一阶动量m:与梯度相关的函数 二阶动量v:与梯度平方相关的函数w为参数,损失函数loss,dw为损失函数对w的倒数,学习率lr。其优化公式为:w=w−lr∗m/v{\rm{w = w - lr*m/}}\sqrt {\rm{v}} w=w−lr∗m/v2. 随机梯度下降法(SGD)随机梯度下降原创 2020-12-29 22:12:22 · 371 阅读 · 0 评论 -
Tensorflow2.0学习笔记-正则化缓解过拟合
正则化缓解过拟合正则化在损失函数中引入复杂度指标,利用给W加权值,弱化了训练数据的噪声(一般不对b进行正则化)。正则化分为L1正则话和L2正则化,分别对应L1范数和L2范数。L1正则化:L1正则化会使很多的参数变为0,因此该方法可以通过稀疏参数,即减少参数数量,降低复杂度。L2正则化:L2正则化会使参数很接近零但是不为0,因此该方法可以通过减少参数值的大小降低复杂度。本次代码采用设计好的dot.csv数据集,其中包含x1,x2和y_c,我们先训练好神经网络结构,然后构思成一张图,找到y_c和x1,x原创 2020-12-29 20:12:52 · 711 阅读 · 1 评论 -
Tensorflow2.0学习笔记-损失函数
损失函数(loss)损失函数是使预测值y与已知答案y_的差距,神经网络的优化目标是让loss最小,主流的损失函数有3中计算方法:均方误差mse(Mean Squared Error),自定义函数,交叉熵。下面使用商品销量的例子进行代码运行。1.mse损失函数loss_mse = tf.reduce_mean(tf.square(y_ - y))例程代码:SEED = 23455 # 确定随机种子,使得每一次的随机数相同# 生成数据集rdm = np.random.RandomState(原创 2020-12-24 12:01:37 · 666 阅读 · 0 评论 -
Tensorflow2.0学习笔记-复杂度、学习率
一、神经网络的复杂度神经网络复杂度分为空间复杂度和时间复杂度空间复杂度:空间复杂度由层数,和待优化参数的个数进行表示。层数 = 隐藏层的层数 + 1个输出层总参数 = 总w + 总b上图中参数:3x4+4 + 4x2+2 = 26时间复杂度时间复杂度使用神经网络的运算次数进行表示。上图中3x4 + 4x2 =20二、学习率在使用中,我们可以使用指数衰减学习率来合理的设置学习率。我们可以先使用较大的学习率,快速得到最优解,然后使用指数衰减,逐渐减小学习率,使模型在训练后期稳定。指原创 2020-12-23 17:11:18 · 687 阅读 · 1 评论 -
Tensorflow2.0学习笔记-鸢尾花分类
使用简单的神经网络对鸢尾花分类,输入的数据为鸢尾花的花蕊长度、花蕊宽度、花瓣长度、花瓣宽度进行训练。绕后根据训练过后的权重和偏置进行测试,测试结果与鸢尾花的类别进行验证,查看准确率,具体代码如下:import tensorflow as tffrom sklearn import datasetsfrom matplotlib import pyplot as pltimport numpy as np# 导入数据,分别为输入特征和标签x_data = datasets.load_iris()原创 2020-12-23 14:29:08 · 263 阅读 · 1 评论 -
Tensorflow2.0学习笔记-数据集读入
鸢尾花数据集读入iris数据集中储存了鸢尾花花的,花萼长度宽度,花瓣长度宽度。以下函数加数据集中以链表形式存在的数据转换成表格进行输出。from sklearn import datasetsfrom pandas import DataFrameimport pandas as pdx_data = datasets.load_iris().data # .data返回iris数据集中的所有输入特征y_data = datasets.load_iris().target # .targe原创 2020-12-22 12:58:03 · 300 阅读 · 0 评论 -
Tensorflow2.0学习笔记-常用函数(二)
常用函数(二)enumerate枚举函数enumerate是python的内建函数,他可以遍历整个数组,组合为:索引,元素。常在for循环中使用。seq = ['one', 'two', 'there']for i, element in enumerate(seq): print(i, element)#输出结果0 one1 two2 thereone_hot独热码函数函数介绍:tf.one_hottf.onehot(indices ,#表示输入的数据原创 2020-12-22 12:02:26 · 139 阅读 · 0 评论 -
Tensorflow2.0学习笔记-常用函数(一)
常用函数使用数据类型转换函数# 定义一个张量a = tf.constant([[0, 1, 2], [3, 4, 5], [6, 7, 8]], dtype=tf.int64)# 强制转换类型函数b = tf.cast(a, tf.float32)# reduce_max查找张量中最大的数,axis=x表示对对应的行或者列求和# 本例中为二维张量,0对应的对列进行操作,1表示对行进行操作# 如果没有设置axis则表示在整个原创 2020-12-21 16:55:40 · 142 阅读 · 0 评论 -
Tensorflow2.0学习笔记-创建张量
创建张量使用constant创建张量# 使用constant函数创建张量# 其中[1,5]表示张量内容,dtype表示数据类型a = tf.constant([1, 5], dtype=tf.int32)# 输出a,a的数据类型,a的形状print(a)print(a.dtype)print(a.shape)# 输出结果tf.Tensor([1 5], shape=(2,), dtype=int32)<dtype: 'int32'>(2,)使用convert_to原创 2020-12-21 14:19:56 · 192 阅读 · 0 评论 -
在tensorflow2.0中使用tensorflow1.x的程序方法
在tensorflow2.0中使用tensorflow1.x的程序方法个人笔记:在tensorflow2.0中,使用低版本的tensorflow历程会出现错误提示。将对模块的调用修改。原调用方法:import tensorflow as tf修改后的调用方法:import tensorflow.compat.v1 as tftf.disable_v2_behavior成功调用...原创 2020-12-21 12:29:34 · 1645 阅读 · 0 评论