自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 【六】数学运算

运算类型:1.对于一个数,有加减乘除;2.对于矩阵,矩阵乘法;3.对于一个轴:最大,最小等。log是以自然对数为底的,如果想用log2和log10,可以用换底公式

2021-10-09 14:48:15 148

原创 【五】broadcasting

broadcasting的核心思想:小维度先对齐(小维度在右边),比如a [4,16,16,32],b [32],计算a+b需要对b进行broadcasting,先把b扩展成相等的维度b [1,1,1,32],再扩展成相同的size [4,16,16,32]。broadcasting好处:1.简洁;2.不需要复制内存,节省空间。也可进行手动broadcasting。...

2021-10-09 14:37:05 138

原创 【四】维度变换

有一个潜在的问题,H和W维度不能记混才能恢复。增加维度减少维度

2021-10-09 11:21:10 158

原创 【三】索引与切片

2021-10-08 22:38:53 102

原创 【二】创建Tensor

tf.zeros()输入的是shape,不是data。打散两个有对应关系的数据

2021-10-08 20:49:38 55

原创 【一】tensorflow数据类型

TensorTensorFlow数据类型判断是不是Tensor数据类型转换

2021-10-08 17:41:37 60

原创 1.预备知识

尺寸不变写错了,s=111卷积可以降维和升维,可以降低参数量;除此之外全连接是特殊的卷积(全卷积),因此11卷积可以代替全连接。BN层是沿着通道计算的。

2021-09-23 00:02:06 53

原创 OCR方向分类模型预处理的一种想法

接上一条博客,由于不同尺寸图片resize操作后可能会有不均匀拉伸,导致原始图片变模糊。本人拟采用如下操作:每张图片都要resize为48192的图片,先计算ratio=192//48假设输入图片高为H,宽为W,当Hratio<W时,对图片进行截断操作;当H*ratio>W时,最原始图片进行复制后截断,如下图所示,上代码:import osimport cv2import numpy as npimport argparsedef process(input_dir, out

2021-09-16 14:29:10 150

原创 padding

本文针对OCR cls模型中,不同尺寸图片resize后得到的图像可能会进行不均匀拉伸,导致图像不清晰。因此考虑在图像resize前先对图像进行padding操作,使之实现均匀缩放。(本人正在探索阶段,该想法未必可以提高准确率)上代码:import osimport cv2import numpy as npimport argparsedef process(input_dir, out_dir): for filename in os.listdir(input_dir):

2021-09-15 10:32:12 136 2

原创 记录一下今天踩的两个坑

python3 中两个数作商/ 返回的是浮点型,//返回的是整型。2.opencv读取图片时img.shape 返回的是h,w,c但是resize时相反,如果想把图片img resize为h,w,c应该执行cv2.resize(img,(w,h))。

2021-09-13 17:16:16 94

原创 六、其他基本操作 【MySQL基础系列完结】

本节实验中我们将学习并实践数据库的其它基本操作:索引、视图,导入和导出,备份和恢复等。1.索引索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行对比,然后返回满足条件的记录。这样做会执行大量磁盘 I/O 操作,并花费大量数据库系统时间。而如果在表中已建立索引,在索引中找到符合查询条件的索引值,通过索引值就可以快速找到表中的数据,可以大大加快查询速度。对一张表中的

2021-09-13 14:55:33 115

转载 五、数据库及表的修改和删除

本节实验中,我们将学习并实践如何对数据库表和表中的内容做修改,删除,重命名等操作。1.1删除数据库使用命令 **SHOW DATABASES;**显示一下现有数据库现在我们运行命令删除名为 test_01 的数据库:DROP DATABASE test_01;现在再次使用命令 SHOW DATABASES; 可以发现,test_01 数据库已经被成功删除:关于修改数据库目前 Mysql 没有提供修改数据库名称的方法,因为这曾导致一系列安全问题。在老版本中 RENAME DATABASE

2021-09-13 11:43:47 1232

转载 四、SELECT语句

SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELECT 语句的用法。本节涉及知识点:SELECT基本语法,数学符号条件,AND OR IN,通配符,排序,SQL内置函数和计算,子查询与连接查询。1.实验步骤在数据库操作语句中,使用最频繁,也被认为最重要的是 SELECT 查询语句。之前的实验中,我们已经在不少地方用到了 SELECT * FROM table_name; 这条语句用于查看一张表中的所有内容。 而 SELECT 与各种限制条件

2021-09-13 10:49:56 817

转载 三、SQL的约束

约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。本节实验将在实践操作中熟悉 MySQL 中的几种约束。1.实验步骤本节实验会创建几个表,然后对其中的各个字段添加约束,学习添加和测试约束的方法。1.1 约束分类听名字就知道,约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。比如,规定一个用户的用户名不能为空值且没有重复的记录,这就是一种约束规则。在 MySQL 中,通常有这几种约束:1.2 建立含约束的表为了方便介绍这几种约

2021-09-12 16:41:40 1200

转载 二、创建数据库并插入数据

本节内容为使用MySQL介绍新建数据库,新建表,插入数据以及基本数据类型等相关知识。涉及到的知识点主要有:基本数据类型、插入数据。1.开发准备先用以下两条命令打开 MySQL 服务并使用 root 登录:# 打开 MySQL 服务sudo service mysql start#使用 root 用户登录,密码为空mysql -u root如果你理解了上述代码的含义, -u 和 root 之间可以不要空格后续的实验都在 MySQL 的控制台输入命令进行操作。2.实验步骤下面了解一下 M

2021-09-12 14:47:41 3353

转载 一、SQL介绍及MySQL安装

1.数据库和SQL的概念数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它的产生距今已有六十多年。随着信息技术和市场的发展,数据库变得无处不在:它在电子商务、银行系统等众多领域都被广泛使用,且成为其系统的重要组成部分。数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增、删、改、查等操作。结构化查询语言(Structured Query Language)简称 SQL,是上世纪 70 年代由 IBM 公司开发,用于对数据库进行操作的

2021-09-12 14:07:44 134

原创 GAN 生成对抗网络 10-10 Evaluation

最生成数据进行评估可以人来看,但是需要一些客观的方法。传统的方法可以使用likelihood,但是使用GAN,我们无法计算概率。我们可以用generator来生成多组数据,用GMM模型来拟合生成的数据,可以用最大似然来估计参数,进而得到概率。一个较客观的评估方法是:拿一个train好的神经网络,拿一个image classifier,如果输出概率越高,可能说明产生的图片足够清晰。但是上述方法可能是不够的,比如我们训练的Generator只能生成一张同样的图,这不是我们想要的,因此我们引入di

2021-09-08 11:31:18 134

原创 GAN 生成对抗网络 10-9 improving sequence generation by GAN

使用RL来增强seq2seq modelchat-bot在与人的互动中逐渐变强。比如人跟机器说How are you?机器回答bye bye,我们会给他一个很低的分数。如果我们跟机器说hello,机器回一个hi,我们会给他一个较高的分数。人来代替discriminator使得reward值最大。在实际应用中不会有人跟chat-bot互动那么多次,因此有人想出用alpha go来训练chat-bot训练两个chat-bot使用discriminator代替人,即给Di...

2021-09-08 10:29:45 123

原创 GAN 生成对抗网络 10-8 Intelligent Photo Editing

现在的问题是,输入一个向量会生成一张图片,但是我们不知道向量长什么样子。我们可以使用GAN+AutoEncoder来解决这个问题。即在向量前面加一个Encoder,由于Encoder和Discriminator很像,所以可以使用Discriminator来初始化Encoder。注意Generator(Decoder)是训练好的,固定不动。做完这件事情之后,我们可以把database中的图片拿出来,放到Encoder中,可以得到vector。比如我们要将短发生成长发,我们可以这样做:先把长发的图片..

2021-09-07 16:09:27 91

原创 GAN生成对抗网络 10-7 feature extraction

一、infoGAN事实上,我们使用GAN进行训练的时候,输入一个向量,输出一幅图片,当我们改变向量的某个维度时,生成的图片也会发生某种变化。但是这种变化是没有固定规律的。我们希望像上图中左图一样,沿着纵轴变化,由绿色变为黄色再变为橙色后变为蓝色;但事实上会像右图一样没有固定规律。infoGAN解决这个问题infoGAN在原来GAN的基础上,输入的向量z分成两个向量,比如输入的z是20维,那么两个向量分别为10维;将它们输入Generator,得到output x,将x输入classifer,预测c

2021-09-07 15:32:53 120 2

原创 GAN 生成对抗网络 10-6 Tips for improving GAN

在二分类问题中,使用JS散度是不合适的,因为图像的性质,PG和Pdata是不可能重叠的,不重叠的情况下计算出的JS散度永远是log2,所以上图中第一个图和第二个图没有区别,因此在二分类问题中会出现训练困难的问题。tips1 LSGAN问题:绿色点为real data,蓝色点为generated data。可能会出现一个状况,如果二分类器训练的太好(即蓝色为0,绿色为1),使用sigmoid函数进行训练会出现训练困难的问题,因为在0处梯度几乎为0。这样generator想把蓝色的点往右移发现会移不动..

2021-09-07 11:47:03 105

原创 GAN生成对抗网络 10-5 fGAN:General Framework of GAN

fGAN说的是我们不仅可以用JS divergence,还可以用f divergence。f有两个要求:1.凸函数,2.f(1)=0.

2021-09-06 20:49:42 391

原创 GAN 生成对抗网络 10-4 Theory behind GAN

我们之前的课程中学习的生成人脸,x是一个高维空间的向量,为了方便表示,我们使用二维。实际上每一个图片都有一个distribution,可能落在图中区域,生成人脸的概率大,落在其他区域生成人脸的概率小。这节课我们的任务是寻找这个分布distribution。在有GAN之前,我们是怎么找到这个distribution的呢?我们使用的是最大似然估计。给出一个data distribution Pdata(x),我们只能取数据,但是不知道该分布的参数是什么。现在我们有一个含参数的分布PG(x,θ),参数.

2021-09-06 17:49:04 104

原创 训练集、验证集、测试集划分

在训练PaddleOCR方向分类模型之前,所有图片都在一个文件夹中,所有label信息都在同一个txt文件中,因此需要编写脚本,将其按照8:1:1的比例进行分割。import osimport reimport shutilimport randomimport argparsedef split_label(all_label, train_label, val_label, test_label): f = open(all_label, 'r') f_train = op

2021-09-06 10:08:43 344

原创 图片与标签数据合并 脚本编写

由于官方提供的数据集过大,因此放在了两个文件夹中。本脚本的目的是把label文件合并在一起,把图片合并在一个文件夹中。import osimport shutilimport argparsedef concat_labels(label1, label2, output): label_list = [] file1 = open(label1, "r") file2 = open(label2, "r") for line in file1.readlines(

2021-09-06 10:06:40 337

原创 图片裁剪 脚本编写

输入:图片,box(json文件)。输出:裁剪后图片。import osimport cv2import jsonimport argparsedef prepdata(json_file, img_file, out_dir): with open(json_file) as f: content = json.loads(f.read()) if os.path.isdir(img_file): for filename in os.listd

2021-09-06 10:03:53 302

原创 OCR方向分类模型标签生成 脚本编写

PaddleOCR官网方向分类模型要求正向图片标签为0,旋转180度后的图片标签为180。生成标签的txt格式为:目录+\t+label的格式,如train/123.jpg. 0import argparseimport osdef get_label(input, output, label): with open(output, "w") as f: if os.path.isdir(input): for filename in os.lis

2021-09-06 10:02:01 277

原创 图像翻转180度 脚本

import osimport cv2import argparsedef reverse_img(input, output): for filename in os.listdir(input): file, suffix = os.path.splitext(filename) if suffix.lower() not in [".jpg", ".jpeg", ".png"]: continue img_path

2021-09-06 09:58:28 142

原创 GAN生成对抗网络10-3 unsupervised conditional generation

如果input和output差不过,可以使用direct transformation 的方法。如果差很多,则需要一个encoder和一个decoder。1.direct transformation比如要做图像风格迁移(input和output比较像),Domain X为原始图片,DomainY为画像(即要生成图片的类型),那么先把Domain X的图像经过Generator,生成图片,然后将生成图片送入Discriminator(该Discriminator见过大量Domain Y的图片),..

2021-09-05 22:33:54 97

原创 GAN生成对抗网络10-2 Conditional GAN

一、Conditional GAN之前讲到的GAN是随机输入一个向量,会产生一张图片。conditional GAN讲的是,可以输入一行文字,产生对应文字的图片,即可以控制输出的结果。比如我们要train一个模型,输入文字,会输出对应图片。用传统的方法来train,即上图,将文字输入一个神经网络,输出一副图像,使得与真实图像像素之间距离足够近。那么这样的模型可能会输入多张同类图片的平均,比如火车有很多张, 朝前的火车,朝后的火车,生成这样的图片都是正确的,但是生成它们的平均就有问题了,生成的图片是

2021-09-05 21:03:37 243

原创 GAN 生成对抗网络10-1

GAN的种类一、basic idea of GANGAN主要用于生成数据,如图片数据和文本。如图片生成,我们需要训练一个generator,使得输入一个向量,会输出一张图片,输入不同向量会输出不同图片;文字生成同理。generotor是一个neural network。输入向量的每个值,实际上是一个特征,更换向量的值,图片的某种特征会随着改变。比如上图,第一个向量可能代表头发的长度,倒数第二个向量可能代表头发的颜色,最后一个向量可能代表张开嘴巴的大小。在我们训练generator的

2021-09-05 20:08:33 179

原创 十二、HMM 隐马尔可夫模型(未完)

深度学习兴起之前HMM主要用于语音识别,深度学习兴起之后,HMM主要用于隐式信息挖掘和数据分析。在这里没有用到词典,在没有词典的前提下,利用HMM可以进行分词。但是使用词典,词典里没有出现的词可能分词会出现问题。HMM不仅可以进行分词,还可以预测与轨迹或时间序列相关的量。比如股票、台风等。凡是与时间序列或空间序列相关的都可以。由贝叶斯网络知,图中A在不可观测的情况下B与C不独立,因此z1不可观测的情况下,x1和右边所有都不独立。在这种情况下(不可观测),可以考虑使用HMM来处理。它处理的是结

2021-09-02 11:02:35 169

原创 十一、主题模型

跟特征提取有关,隐式特征提取(EM算法),比如给定文档或者词,推断隐的主题是什么。CNN出现后,在图像方面的应用减少。我们做词向量分类通常将所有词取出来,形成一个词向量(不重复),然后在每个词对应的位置,出现的位置标为1,没出现的位置标为0。这样每个文档的长度都是相等的。通过LR,SVM,RF,NB等方法可以进行分类。但是这种方式未必总是合适的,比如出现“花”这个词,可能出现花朵或者花费,出现两个意思,它会直接映射到词向量中。因此我们应该通过词,看一下词背后的主题是什么,这就是主题模型的直观理解..

2021-08-31 14:25:47 87

原创 十、贝叶斯网络

一、朴素贝叶斯二、朴素贝叶斯举例 文本分类三、贝叶斯网络无向图:马尔可夫网络。有的教材把X叫因,把Y叫果,但是这种表表述不太准确。比如X是雄鸡打鸣,Y是天亮了,X和Y不独立,但是Y不是X的果。朴素贝叶斯特征之间是条件独立的,可以理解为最朴素的贝叶斯网络,它把特征之间的有向边都扔了。smoking是概率,其他都是条件概率。当有了一个网络结构和条件概率表,问题就解决了。四、贝叶斯网络条件独立的三种特殊形状即马尔可夫模型的结论。将节点扩...

2021-08-30 15:03:47 174

原创 九、EM算法

GMM可以理解为多个服从不同均值和方差的正态分布,混合在一起,可对其进行聚类,可以用EM算法估计参数。后验概率是有用的,比如在工业中,达到不同的值,给出不同的预警。一、GMM算法直观理解GMM问题引出:如果我们知道身高对应的是男性还是女性,求四个估计值,直接套用最大似然得到的公式即可。但是如果不告诉男性还是女性,仅仅告诉身高该如何处理呢?由于多了一个变量pi,所以难以用求偏导的方法求解。初始值不一样,一定程度上会影响EM的结果。注意:多个高斯分布混合起来未必是高斯分布.

2021-08-30 10:01:01 99

原创 八、聚类

聚类是一种无监督学习算法。输入x为mn维,通过聚类聚为6簇,使得输出为m6维。有种降维的感觉。1.相似度因为聚类是通过样本间的联系来分成多个簇,所以要进行相似度的度量。2、kmeans改进方法一:计算一下四个簇的均值,MSE;如图,其中两个簇的MSE会比较小,均值会比较接近,说明这两个簇距离比较近,应该分为一个簇。同样地,第一个簇MSE比较大,应该分为两个簇。因此在最左边的簇中重新随机选取两个点进行计算,右边两个比较近的簇随机选取一个点进行计算。即二分kmeans方法

2021-08-27 10:31:06 162

原创 百度云手机【科普】

在即将到来的5G人工智能时代,传统的手机可能不再被需要,绝大多数计算将交给云端处理,大大小小的屏幕只是感知我们需求的显示器。百度云手机是一部部署在云端的手机,作为5G手机超级入口之一,可以代替传统手机进行着数据存储、计算、画面渲染等工作,从而让用户摆脱手机配置的限制,运行大型应用,玩转大型手机游戏,哪怕老人机也可以玩上大作。我们可以把云手机理解为:一台通过网络连接的云端虚拟手机,它运行着安卓系统,拥有着超强的性能,哪怕你是百元机,只要连上了云手机,特别是在5G网络下,瞬间起飞!海量app无需下载到本地,

2021-08-24 15:07:49 276

原创 七、支持向量机 SVM

有了CNN卷积神经网络后,图像不再使用人工选择特征+SVM,但SVM仍有其研究价值。SVM强于logistic回归。软间隔并不要求SVM能全分对,加核函数使得SVM非线性。一、线性可分支持向量机两条虚线上的向量为支持向量。调参小技巧,线性核只有C一个参数,随着C的增大,过渡带越窄;高斯核函数除C,还有γ参数,随着γ的增大,非线性越明显,随着C的增大,过渡带越窄。上式为点到直线距离公式先取最小再取最大,即先求出距离分割超平面最近的点,再求这些点距离超平面距离最大时的w和b..

2021-08-24 10:43:53 64

转载 作业-boosting

1.GBDT和随机森林的区别是什么?随机森林:随机森林是一个用随机方式建立的,包含多个决策树的集成分类器。其输出的类别由各个树投票而定(如果是回归树则取平均)。假设样本总数为n,每个样本的特征数为a,则随机森林的生成过程如下:a 从原始样本中采用有放回抽样的方法选取n个样本;b 对n个样本选取a个特征中的随机k个,用建立决策树的方法获得最佳分割点;c 重复m次,获得m个决策树;d 对输入样例进行预测时,每个子树都产生一个结果,采用多数投票机制输出。随机森林的随机性主要体现在两个方面:a 数据

2021-08-23 10:00:07 92

转载 作业-随机森林

随机森林为何可以提高正确率, 且降低过拟合程度?随机森林是一种集成算法,它属于Bagging类型,通过组合多个弱分类器,最终结果通过投票或取均值。由于生成每棵树的时候,每棵树仅选取部分特征,而且对于样本也是有放回的选择,这样的随机性降低了过拟合程度。而且采用的是集成算法,本身精度得到加强。决策树后剪枝可以怎么操作?为了提高决策树的泛化能力,需要对树进行剪枝,把过于细分的叶结点(通常是数据量过少导致噪声数据的影响增加)去掉而退回到其父节点或更高结点。预剪枝:在每一次实际对结点进行进一步划分之前..

2021-08-23 09:47:16 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除