矩阵

Tensorflow的基本使用方法

六月ゝ 毕业季﹏ 提交于 2019-12-19 02:31:06
基本使用 使用 TensorFlow, 你必须明白 TensorFlow: 使用图 (graph) 来表示计算任务。 在被称之为 会话 (Session) 的上下文 (context) 中执行图。 使用 tensor 表示数据。 通过 变量 (Variable) 维护状态。 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据。 综述 TensorFlow 是一个编程系统, 使用图来表示计算任务。图中的节点被称之为 op (operation 的缩写)。一个 op 获得 0 个或多个 Tensor, 执行计算,产生 0 个或多个 Tensor。每个 Tensor 是一个类型化的多维数组。 例如。 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels]。 一个TensorFlow 图描述了计算的过程。 为了进行计算,图必须在会话里被启动。会话将图的op分发到诸如CPU或GPU之类的 设备上,同时提供执行 op 的方法。这些方法执行后, 将产生的 tensor返回。在Python语言中,返回的tensor是numpy ndarray对象; 在C和C++语言中,返回的tensor是tensorflow::Tensor实例。 计算图

Haar矩阵特征提取学习

痴心易碎 提交于 2019-12-18 23:35:47
matlab还没有集成,但是有固定函数,如trainCascadeObjectDetection里面含有提取haar特征的接口,代码也很少,几乎没有。opencv中倒是有一些提取haar的代码,就是有些过于复杂,跟adabost分类器连接在了一起。 https://blog.csdn.net/qq_32864683/article/details/79968346 Haar特征提取算法的实现 最后使用了这个代码 https://blog.csdn.net/lanxuecc/article/details/52222369#commentBox 机器学习 之 Haar特征 https://blog.csdn.net/weixin_37720172/article/details/77926585?locationNum=7 openCV之HAAR特征(代码实现) 2019/2/ 26 使用 https://blog.csdn.net/qq_32864683/article/details/79968346 的代码 发现提取特征没、每行长度都不一样,发现是图片忘记统一更改大小。 http://blog.sina.com.cn/s/blog_736aa0540101kzqb.html Haar-like矩形遍历检测窗口演示Matlab源代码 matlab中repmat函数的用法

二维数组的查找

流过昼夜 提交于 2019-12-18 21:45:14
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 做题思路: 首先取二维数组中的右上角的数字,如果该数字等于要查找的数字,代码结束。如果该数字大于要查找的数字,则剔除该数字所在的列,因为这一列都比该数组大不会等于要查找的数字的。如果该数字小于要查找的数字,则该数字所在的行剔除掉,循环查找,每一次查找都会去掉一行或者一列缩小范围,直到找到查找的数字或者查找范围为空即不存在与要查找的数字相等的数字。 #include <cstdio> bool Find(int* matrix, int rows, int columns, int number) { bool found = false; if(matrix != NULL && rows > 0 && columns > 0) { int row = 0; int column = columns - 1; while(row < rows && column >=0) { if(matrix[row * columns + column] == number) { found = true; break; } else if(matrix[row * columns +

数据结构和算法(1)-----稀疏数组

≡放荡痞女 提交于 2019-12-18 21:37:50
一、实际需求 编写的五子棋程序中,有 存盘退出 和 继续上盘 的功能。 分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意思的数据,如何在计算机中高效的存储这样的二维数组是一个需要考虑的问题。 二、基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 示意图: 三、应用实例 (1)使用稀疏数组,来保留类似前面的二维数组(棋盘,地图等等) (2)把稀疏数组存盘,并且可以重新恢复原来的二维数组 (3)整体思路分析 (4)代码实现: 将原始的二维数组转成稀疏矩阵,并保存在磁盘上,比如sqc.data 恢复原来的数组时,读取sqc.data进行恢复 package com.atguigu.sparsearray; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import

Java 数组基础

只愿长相守 提交于 2019-12-18 21:16:14
数组   数组(Array):相同类型数据的集合。 定义数组    方式1 (推荐,更能表明数组类型)   type[] 变量名 = new type[数组中元素的个数];   比如:   int[] a = new int[10];   数组名,也即引用a,指向数组元素的首地址。    方式2 (同C语言)   type变量名[] = new type[数组中元素的个数];   如:   int a[] = new int[10];    方式3 定义时直接初始化   type[] 变量名 = new type[] { 逗号分隔的初始化值};   其中红色部分可省略,所以又有两种:   int[] a = {1,2,3,4};   int[] a = new int[]{1,2,3,4};   其中int[] a = new int[]{1,2,3,4};的第二个方括号中不能加上数组长度,因为元素个数是由后面花括号的内容决定的。 数组运用基础 数组长度   Java中的每个数组都有一个名为length的属性,表示数组的长度。   length属性是public final int的,即length是只读的。数组长度一旦确定,就不能改变大小。 equals()   数组内容的比较可以使用equals()方法吗?   如下程序:    public class ArrayTest {

如何设计一个电子计算器

我的梦境 提交于 2019-12-18 19:59:46
  版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖。如要转贴,必须注明原文网址   http://www.cnblogs.com/Colin-Cai/p/8185972.html   作者:窗户   QQ:6679072   E-mail:6679072@qq.com   首先,不要误解,我这里的计算器是指硬件的计算器,至于纯软件的计算程序,乃至有高级功能的,比如可以求解方程甚至可编程之类,我以后找个时间来说说。这两天看到有人在博问里问类似的问题,原问是想设计一个有着数码管、有着4x4键盘的硬件里的程序,不知道他具体想做什么,只是给了一些建议。联想到还有计算器这个东西,这应该很容易作为电子工程或者微电子专业的一个作业的形式出现。以前我招实习生的时候,似乎也曾经叫其实现过计算器。这里给出一点方案,以供参考。    硬件   框图如上,主要有4大模块,电源、控制、按键矩阵、数码管。   电源有多种方案,简单点可以用电池或者usb,这里不作详细讨论。   数码管采用共阴或共阳,每一位一个片选,选个6位的,一共14个引脚,都接在控制模块IO引脚上,注意控制信号电平,必要的时候阳级接上拉电阻。   键盘矩阵则是以下电路这样的东西,由一堆按键组成,键盘矩阵对外8个信号都接在控制模块的引脚上。另外,如果控制模块的引脚无法配置上拉或下拉电阻,那么PD0/PD1/PD2

基于加速度计与气压计的三阶卡尔曼滤波计算加速度、速度及高度

家住魔仙堡 提交于 2019-12-18 19:47:21
本文主要介绍了卡尔曼滤波器的使用原理,给出了matlab代码,并在STM32F407平台对卡尔曼滤波器进行了验证,传感器为MPU6050与DPS310,测试结果令人满意,速度与高度无累积误差。 系统状态方程 在开始讲卡尔曼滤波器之前需要先提一下状态方程。因为卡尔曼的计算公式是建立在状态方程上的,所以我们需要先写出系统的状态方程。离散状态方程为: 其中 X (k)为当前状态, X (k+1)为下一时刻状态, Φ 为转移矩阵, B 为控制矩阵, u 为控制量, Г 为噪声矩阵, W 为系统噪声, Y 为输出量, H 为输出矩阵, V 为观测噪声。简单来说就是通过这一时刻已知的状态、控制量及系统噪声可以求出此刻的能观测到的输出以及下一时刻的状态。 那什么又是状态呢?对于我们要分析的系统来说,加速度、速度、以及高度就是系统的状态,也就是说公式中的 X (k)就是包含加速度、速度、以及高度的向量。 同理: 而状态转移矩阵 Φ 是表述下一时刻状态与此刻状态关系的矩阵,在本系统中我们能够非常清楚得列出他们的关系,假设我们采样周期T比较短,可以近似认为加速度a几乎不变,则 将上面几个等式写成矩阵形式则为: 由此我们可以得到转移矩阵Φ就是: 对于我们要分析的系统,没有控制量,不考虑其他系统噪声的情况下,后面两项可以直接拿掉,状态方程简化为: 状态方程第一个式子分析完了接下来分析下第二个式子。

Spark MLlib

给你一囗甜甜゛ 提交于 2019-12-18 16:05:22
MLlib 数据挖掘与机器学习 数据挖掘体系 数据挖掘:也就是data mining,是一个很宽泛的概念,也是一个新兴学科,旨在如何从海量数据中挖掘出有用的信息来。 数据挖掘这个工作BI(商业智能)可以做,统计分析可以做,大数据技术可以做,市场运营也可以做,或者用excel分析数据,发现了一些有用的信息,然后这些信息可以指导你的business,这也属于数据挖掘。 机器学习:machine learning,是计算机科学和统计学的交叉学科,基本目标是学习一个x->y的函数(映射),来做分类、聚类或者回归的工作。之所以经常和数据挖掘合在一起讲是因为现在好多数据挖掘的工作是通过机器学习提供的算法工具实现的,例如广告的ctr预估,PB级别的点击日志在通过典型的机器学习流程可以得到一个预估模型,从而提高互联网广告的点击率和回报率;个性化推荐,还是通过机器学习的一些算法分析平台上的各种购买,浏览和收藏日志,得到一个推荐模型,来预测你喜欢的商品。 深度学习:deep learning,机器学习里面现在比较火的一个topic,本身是神经网络算法的衍生,在图像,语音等富媒体的分类和识别上取得了非常好的效果,所以各大研究机构和公司都投入了大量的人力做相关的研究和开发。 总结:数据挖掘是个很宽泛的概念,数据挖掘常用方法大多来自于机器学习这门学科,深度学习也是来源于机器学习的算法模型

二维数组中的查找

不打扰是莪最后的温柔 提交于 2019-12-18 13:46:03
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true; 如果查找数字5,由于数组不含有该数字,则返回false。 我的解题思路是这样的矩阵行列都是从小到大排好序的,要查找的话自然用二分效率比较高, 而且这样的矩阵有个性质,最左上角的元素必定是最小值,最右下角的是最大值,在一个 n*n的矩阵中,对角线的元素也是排好序的,找到对角线上的一个元素,使得这个元素小于 待查找的key,并且下一元素大于待查找的key,那么只要在这个元素的左下角矩阵和右上角 矩阵递归继续对角线查找就可以了,例如上图例子里查找7,只要找到对角线的元素4,然后 递归查找红圈的矩阵就可以了 ,左上角矩阵最大值4<7,右下角 矩阵最小值10>7,无需查找了,但是此题并没有告诉我们原始矩阵是n*n的,这是比较麻烦的 地方,不过思路是一样的,无非不能用对角线查找这样简单的办法了,假设m*n的矩阵,对角线 查找的办法改进为i = (m1+m2)/2,j = (n1+n2)/2 进行查找就可以了,(m1,n1)为矩阵最左上角 元素下标,(m2,n2)为最右下角元素下标 假设查找17,第一次比较10,然后比较25,然后比较13

数组:二维数组中的查找

本秂侑毒 提交于 2019-12-18 11:49:56
  在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 代码: class Solution { public boolean Find(int[][] array, int target) { int row = 0; int col = array[0].length - 1; while (row < array.length && col >= 0) { if (target == array[row][col]) return true; else if (target > array[row][col]) row++; else col--; } return false; } } 来源: https://www.cnblogs.com/SaraMoring/p/5801886.html