TensorFlow2.X学习笔记(1)--TensorFlow核心概念
该系列笔记来自于对https://lyhue1991.github.io/eat_tensorflow2_in_30_days 文档的学习,感谢大神的文档!
TensorFlow™ 是一个采用 数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
TensorFlow的主要优点:
灵活性:支持底层数值计算,C++自定义操作符
可移植性:从服务器到PC到手机,从CPU到GPU到TPU
分布式计算:分布式并行计算,可指定操作符对应计算设备
1、张量数据结构TensorFlow程序 = 张量数据结构 + 计算图算法语言
张量和计算图是 ...
深度学习之人脸识别模型--FaceNet
一、FaceNet模型(1)、FaceNet源码仓库,本地代码存放在facenet-master文件夹下面 https://github.com/davidsandberg/facenet
(2)、FaceNet源码解读(网友解读版一),代码存放在understand_facenet文件夹下 https://blog.csdn.net/u013044310/article/details/79556099 https://github.com/boyliwensheng/understand_facenet(配套源码地址)
(3)、FaceNet源码解读(网友解读版二),代码存放在facenet-master文件夹下 https://blog.csdn.net/huangshaoyin/article/details/81034551
(4)、triplet-reid源码地址 https://github.com/VisualComputingInstitute/tr ...
Java常用的设计模式
一、变种Builder模式(构造者模式)1、构造者模式包含如下角色
Builder:抽象建造者
ConcreteBuilder:具体建造者
Director:指挥者
Product:产品角色
2、对Builer模式使用方法的总结:
对于习惯使用get、set方法的人来说,构造者模式多此一举,但是用起来是真的香啊。 🤣 看看代码多么优雅呢!
(1)、外部类的构造函数私有,且参数为静态内部类;
(2)、静态内部类拥有外部类相同的属;
(3)、为每一个属性,写一个方法,返回的是Builer;
(4)、最后一个方法是build方法,用于构建一个外部类;
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798// 详情可以看《effective java》这本书publi ...
Python进阶(一)
1、*args 和 **kwargs*args
*args 是⽤来发送⼀个⾮键值对的可变数量的参数列表给⼀个函数.
1234567891011def test_var_args(f_arg, *argv): print("first normal arg:", f_arg) for arg in argv: print("another arg through *argv:", arg)test_var_args('yasoob', 'python', 'eggs', 'test')这会产⽣如下输出:first normal arg: yasoobanother arg through *argv: pythonanother arg through *argv: eggsanother arg through *argv: test
**kwargs
**kwargs 允许你将不定长度的键值对, 作为参数传递给⼀个函数。 如果你想要在 ...
Python版本的OpenCV安装
第一步、安装Anacondahttps://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
第二步、 创建虚拟环境1conda create --name opencv-env python=3.7
第三步、激活虚拟环境,也就是进入到虚拟环境中去1activate opencv-env
第四步、安装opencv+contrib12pip install numpy scipy matplotlib scikit-learn jupyterpip install opencv-contrib-python
第五步、测试12import cv2cv2.__version__
搭建Typecho博客
一、介绍typecho官网开发文档
其实对于大多数人来说,我们不必关系typecho网站的开发,主要是项目的部署和主题的更换。
对于我来说,我大学的时候就开始写博客了,开始的CSDN,wordpress到后来的hexo,再到gridea,因为手头有服务器和域名,所以就干脆整一个typecho了 ,WordPress主要太大了,使用起来感觉很臃肿,就抛弃了。
二、使用1、部署
如果手头有闲置的服务器,环境也没有配置的话,我建议使用phpstudy环境,一键搭建Nginx+Php+MySQL环境
phpstudy官网地址
Centos一键安装,注意系统要求没有安装过docker环境
1yum install -y wget && wget -O install.sh https://download.xp.cn/install.sh && sh install.sh
简直傻瓜式有木有
2、主题美化
接下来就是主题的修改,推荐下面的网址,不仅有各种主题,还有好用的插件
typecho主题网站
本文的主题来自https://blog.i ...
Python开发之Pandas的使用
一、简介
Pandas 是 Python 中的数据操纵和分析软件包,它是基于Numpy去开发的,所以Pandas的数据处理速度也很快,而且Numpy中的有些函数在Pandas中也能使用,方法也类似。
Pandas 为 Python 带来了两个新的数据结构,即 Pandas Series(可类比于表格中的某一列)和 Pandas DataFrame(可类比于表格)。借助这两个数据结构,我们能够轻松直观地处理带标签数据和关系数据。
二、创建Pandas Series
可以使用 pd.Series(data, index) 命令创建 Pandas Series,其中data表示输入数据, index 为对应数据的索引,除此之外,我们还可以添加参数dtype来设置该列的数据类型。
123456789import pandas as pd #约定俗成的简称pd.Series(data = [30, 6, 7, 5], index = ['eggs', 'apples', 'milk', 'bread'],dt ...
Python开发之numpy的使用
一、注意几点
NumPy 数组在创建时有固定的大小,不同于Python列表(可以动态增长)。更改ndarray的大小将创建一个新的数组并删除原始数据。
NumPy 数组中的元素都需要具有相同的数据类型,因此在存储器中将具有相同的大小。数组的元素如果也是数组(可以是 Python 的原生 array,也可以是 ndarray)的情况下,则构成了多维数组。
NumPy 数组便于对大量数据进行高级数学和其他类型的操作。通常,这样的操作比使用Python的内置序列可能更有效和更少的代码执行。
二、numpy的使用1、创建ndarray
由python list创建1234567891011121314151617181920212223242526# 1维数组a = np.array([1, 2, 3]) print(type(a), a.shape, a[0], a[1], a[2])out:<class 'numpy.ndarray'> (3,) 1 2 3# 重新赋值a[0] = 5 print(a)out:[5 ...
OpenCV图像处理笔记(三):霍夫变换、直方图、轮廓等综合应用
一、霍夫直线变换1、霍夫直线变换
Hough Line Transform用来做直线检测
前提条件 – 边缘检测已经完成
平面空间到极坐标空间转换
2、霍夫直线变换介绍
对于任意一条直线上的所有点来说
变换到极坐标中,从[0~360]空间,可以得到r的大小
属于同一条直线上点在极坐标空(r, theta)必然在一个点上有最强的信号出现,根据此反算到平面坐标中就可以得到直线上各点的像素坐标。从而得到直线
3、相关API
标准的霍夫变换 cv::HoughLines从平面坐标转换到霍夫空间,最终输出是 表示极坐标空间
霍夫变换直线概率 cv::HoughLinesP最终输出是直线的两个点
123456789cv::HoughLinesP(InputArray src, // 输入图像,必须8-bit的灰度图像OutputArray lines, // 输出的极坐标来表示直线double rho, // 生成极坐标时候的像素扫描步长double theta, //生成极坐标时候的角度步长,一般取值CV_PI/180int threshold, // 阈值,只 ...
OpenCV图像处理笔记(二):图片操作进阶
一、图像模糊1、模糊原理
Smooth/Blur 是图像处理中最简单和常用的操作之一
使用该操作的原因之一就为了给图像预处理时候减低噪声
使用Smooth/Blur操作其背后是数学的卷积计算
通常这些卷积算子计算都是线性操作,所以又叫线性滤波
举例123假设有6x6的图像像素点矩阵。卷积过程:6x6上面是个3x3的窗口,从左向右,从上向下移动,黄色的每个像个像素点值之和取平均值赋给中心红色像素作为它卷积处理之后新的像素值。每次移动一个像素格。
2、归一化盒子滤波(均值滤波)
相关的API1- blur(Mat src, Mat dst, Size(xradius, yradius), Point(-1,-1));
3、高斯滤波
相关的API12- GaussianBlur(Mat src, Mat dst, Size(11, 11), sigmax, sigmay);其中Size(x, y), x, y 必须是正数而且是奇数
4、中值滤波
统计排序滤波器
中值对椒盐噪声有很好的抑制作用
相关的API123中值模糊 medianBlur(Mat src ...