- 博客(122)
- 收藏
- 关注
原创 PaddleOCR(文字识别部分)
数据集采用icdar2015中4.2数据集:word 图片下载后需要转换标签:数据转换工具在 train_data/gen_label.py# 将官网下载的标签文件转换为 rec_gt_label.txtpython gen_label.py --mode="rec" --input_path="{path/of/origin/label}" --output_label="rec_gt_label.txt"转换后的标签文件:但以下命名方式不对,注意命名结构是train和test文件夹+
2021-08-17 20:22:08
588
原创 PaddleOCR学习(文本检测部分)
检测模型训练官方教程:https://codechina.csdn.net/mirrors/paddlepaddle/paddleocr/-/blob/develop/doc/doc_ch/detection.md数据集制作:利用OCRLable对于检测模型 det 进行训练1. 预训练的检测det模型Paddle项目提供了已经训练好的模型,在GitHub中可以下载,下载后放置在pretrain_models文件夹中。cd PaddleOCR/# 下载MobileNetV3的预训练模型wge
2021-08-17 17:36:27
2215
2
原创 手写识别
通过手写数字验证神经网络:对手写的数字5进行二值化,并调整大小与训练集一致为28×2828\times2828×28代码:import numpyimport pylabimport scipy.specialimport matplotlib.pyplot# helper to load data from PNG image filesimport imageio# glob helps select multiple files using patternsimport glob
2021-01-14 00:13:58
156
原创 基于《Python神经网络编程》实现数据集MNIST识别
读入数据集:# load the mnist test data CSV file into a listtest_data_file = open("mnist_dataset/mnist_test.csv", 'r')test_data_list = test_data_file.readlines()#用列表进行储存test_data_file.close()
2021-01-13 16:24:27
386
原创 《Python神经网络》by Taeiq Rashid学习笔记
激活函数:相当于设定阈值,达到阈值才进行输出。例如最简单的阶跃函数、sigmoid函数(y=11+e−xy = \frac{1}{1+e^{-x}}y=1+e−x1)输入层:仅表示输入信号,无需应用激活函数;隐藏层:先对输入加权求和,再应用激活函数。权重:每个输入所乘的权重是神经网络学习的内容,权重的持续优化得到最优结果。用矩阵表示:[(w11,w12w_{11}, w_{12}w11,w12),(w21,w22w_{21}, w_{22}w21,w22)] * [input1, inpu
2021-01-12 17:01:21
165
原创 基于《机器学习-Python实践》学习笔记——评估算法
1. 分离训练数据集和评估数据集通常以67%作为训练集,33%作为测试集。采用sklearn中的函数进行划分:train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签。格式:X_train, X_test, y_train, y_test = train_test_split(train_data,train_target,test_size=0.3, random_state=0)参数解释:train_data:被划分的样
2020-12-15 15:03:36
193
原创 利用Python对数据进行PCA降维
PCA算法原理各本书中都有,具体推导也不用放了,就简单说一下步骤:对变量进行标准化操作;计算协方差矩阵;求协方差矩阵特征值与特征向量;将特征值从大到小排序,选择做大的前k个特征值对应的特征向量;将原始数据乘这k个特征向量,将其转化到对应的k维空间中。例1:对Iris数据集进行pca降维。iris莺尾花数据集导入后为(150, 5)的矩阵,共5类数据,每类150个样本。分别为’Sepal.Length’, ‘Sepal.Width’, ‘Petal.Length’, ‘Petal.Widt
2020-12-14 00:46:01
4180
2
原创 基于《机器学习-Python实践》学习笔记——数据准备和特征选取
数据预处理数据格式化先用fit()函数准备数据转换的参数,再用transform函数进行预处理。fit(): 简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。transform(): 在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。fit_transform(): fit_transform是fit和transform的组合,既包括了训练又包含了转换。transform()和fit_trans
2020-12-13 18:51:57
118
原创 基于《机器学习-Python实践》学习笔记——数据导入与基本处理
数据导入数据常以CSV格式储存,一般有三种导入方式:标准Python库reader函数:raeder处理文件中以逗号分隔的第一行数据,并将每一个数据作为一个元素存储在列表中。from csv import readerimport numpy as np# 使用标准的Python类库导入CSV数据filename = 'pima_data.csv'with open(filename, 'rt') as raw_data: readers = reader(raw_data, d
2020-12-13 15:03:20
207
原创 基于《机器学习-Python实践》学习笔记 4SciPy 速成
NumPy 速成数组生成一位数组(行向量)和多维数组(矩阵)import numpy as npm = np.array([1, 2, 3])print(m)print(m.shape)m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print(m)print(m.shape)访问第1行:m[0]访问第1列:m[:, 0]向量加法:m1+m2向量乘法:m1*m2 #注意行列对应Pandas速成Series:一位数组与一维
2020-12-12 21:21:20
120
2
原创 基于《机器学习-Python实践》学习笔记 3第一个机器学习项目
第三章 第一个机器学习项目共进行了五步导入数据概述数据# 导入类库from pandas import read_csvfrom pandas.plotting import scatter_matrixfrom matplotlib import pyplotfrom sklearn.model_selection import train_test_splitfrom sklearn.model_selection import KFoldfrom sklearn.model_s
2020-12-12 19:52:18
91
原创 基于《Python机器学习》学习笔记-感知器学习
感知器算法是一个简单的二分算法,相当于signoid函数的应用?具体原理参考下文:感知器学习以下代码来自书中2.2节,付我的注释理解:1. 定义感知算法eta:即η\etaη ,学习率n_iter: 初始迭代次数random_state:随机生成的权重import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.colors import ListedColormapclass
2020-12-12 16:00:32
206
原创 基于《Python编程:从入门到实践》的学习笔记 数据可视化2
下载数据两种常见的储存数据格式:CSV:逗号分隔的值,用PythonCSV模块来说处理。JSON:如之前所言。CSVimport csvfilename = 'dizhi.csv'with open(filename) as f: reader = csv.reader(f) reader_row = next(reader) print(reader_row)raeder处理文件中以逗号分隔的第一行数据,并将每一个数据作为一个元素存储在列表中。next函
2020-12-10 18:58:42
114
1
原创 基于《Python编程:从入门到实践》的学习笔记 数据可视化1
数据可视化1使用matplotlib库1. 绘制普通折线图import matplotlib.pyplot as pltsquare = [1, 4, 9, 16, 25]plt.plot(square, linewidth=5)#plot函数绘制图形,此时默认按在列表中位置作为x轴,也可输入两个变量代表x轴与y轴plt.title("square number", fontsize=24)#设置标题,fontsize为字号plt.xlabel("value", fontsize=14)#x轴
2020-12-10 00:04:14
147
1
原创 基于《Python编程:从入门到实践》的学习笔记 Chapter10
第十章 文件和异常从文件中读取数据with open('pi.txt') as file_object: content = file_object.read() print(content)open接收要打开文件的名称(该文件需要在当前执行的文件所在目录中),并储存在变量file_object中。关键字with在不再需要访问文件后将其关闭。函数read读取了文件的全部内容,并储存在了变量content中,读取文本文件后保存为字符串。文件路径通常将绝对路径保存在一个变量中,进
2020-12-09 20:40:52
98
原创 基于《Python编程:从入门到实践》的学习笔记 Chapter9
第九章 类创建类类的首字母要大写类中的函数称为方法类中变量称为属性class a(): def __init__(self,var1,var2):#定义构造函数, self.var1 = 2 self.var2 = 3以self为前缀的变量都可供类中所有方法使用。由类创建实例:A = a()使用类继承一个类继承另一个类时,其将自动获得另一个类的所有属性和方法。类似C中的定义。原有的类称为父类,新类为子类。创建子类时,父类必须包含在当前文
2020-12-09 17:12:11
102
原创 基于《Python编程:从入门到实践》的学习笔记 Chapter8
第八章 函数定义函数def 函数名(形参): """用三引号生成函数的注释""" 函数内容在形参中可以设置默认值,当调用函数未指定实参时,便自动使用默认值。def describe(petname,animal='dog'):返回值无需专门定义返回值类型,直接在函数中return 变量即可。用元组传递任意数量实参用*a元组作为形参,可以传递任意数量的实参。但注意所有实参必须为同类型的变量。def func(*top): print(top)func('a','b
2020-12-09 00:23:42
102
原创 基于《Python编程:从入门到实践》的学习笔记 Chapter7
第七章 输入与while循环input:程序暂停运行,等待用户输入的字符串储存到变量中input函数可以进行字符串输出,再进行输入:a = input("please input an value:")若要将输入由字符串转换为其他格式,还需进行强制类型转换:a = int(a)while循环结构类似Python的for循环:while 终止条件: 操作使用标志:使用一个变量判断整个程序是否处于活动状态。相当于C语言中常用的flag标志位break和continue同C语言
2020-12-08 22:30:47
90
原创 基于《Python编程:从入门到实践》的学习笔记 Chapter6
第六章 字典类似于C语言中的结构体 也不能算,只是键-值对。a={‘point’: 5 , ‘line’: 6 }字典是是一系列键-值对,每个键只对应一个数值。删除键值对:del a[‘point’]由类似对象组成的键值对(即多个)favorite_language={ 'jen':'python', 'li':'C++', 'tim':'java',}遍历字典1. 遍历键值对.items() 返回一个键值对列表for k,v in favorite_lang
2020-12-08 22:07:22
275
原创 基于《Python编程:从入门到实践》的学习笔记 Chapter5
第五章 if基本等同c++使用习惯if condition_test: do somethingelse: do something 不同点:5.1 与和或与:直接用and或:直接用or5.2 检查值是否在列表中:if value in a: return true if value not in a: return false 5.3 if-elif-else 结构if condition_test: do somethingelif condition_2: d
2020-11-26 00:00:00
86
原创 基于《Python编程:从入门到实践》的学习笔记chapter4
第四章 操作列表4.1 列表遍历定义列表a=["sads","sad","dsa"]for循环遍历for b in a: 执行操作未缩进的代码即跳出循环注意:for循环需要加“:”号,并通过缩进来控制执行与结束。4.2 创建数值列表4.2.1 range()生成有序数range(起始值,终止值)#从第一个值开始,到第二个值后停止。例:for value in range(1,5): print(value) #生成1到4...
2020-11-25 23:11:11
99
原创 基于《Python编程:从入门到实践》的学习笔记chapter3
第三章 列表3.1 列表用 [] 表示,列表中的各元素间可以没有任何关系。相当于数组。3.1.1 访问列表元素同数组的元素访问方法a = ["sfs",'423','dah']print(a[0].title())元素从0开始编号,最后一个元素编号-1,索引-2返回倒数第二个列表元素。3.2 修改、添加和删除元素3.2.1 添加到列表末尾:append()a.append("ss")3.2.2 插入列表中:insert()insert(0,"ss")3.2.3 列表中删除:
2020-11-24 18:13:31
85
原创 基于《Python编程:从入门到实践》的学习笔记chapter2
第二章 变量2.1 变量命名:字母、数字、下划线。//数字不能开头不同于C语言,Python的变量命名前不需要定义类型。例:可以直接定义字符串message = “hello python class”2.2 字符串用引号扩起的均为字符串,引号可以是单引号也可以是双引号。2.2.1 修改字符串大小写变量.title() //将变量中每个单词的首字母大写变量.upper() //字符串全大写变量.lower() //字符串全小写name = "aDa lOve"print(nam
2020-11-24 17:35:34
100
原创 Open CV学习
学习记录学习原因是一门课程的考核要求:实现5*5的字符识别,建议使用C语言。头文件#include <opencv2/opencv.hpp>调用OpenCV函数,需要在每个函数前加上cv::为了避免,使用using namespace cv;函数cv::imread()//依据文件名来决定载入图像格式cv::Mat//自带结构cv::namewindow//屏幕上打开窗口...
2020-10-11 00:11:55
338
原创 个人的LATEX入门笔记
插入公式:用xFormula输入后拷贝至latex换行: \空格:\行内插入公式符号:$ 符号公式 $行间插入公式符号:$$ 符号公示 $ $(两个符号间无空格)
2020-09-22 20:37:18
310
原创 B 1095 解码PAT准考证(较复杂的结构体排序应用)
#include<bits/stdc++.h>using namespace std;struct id{ string num; int score; char level; string site; string data; string last; id(string a,int b ):num(a),score(b){ level=num[0]; site=num.substr(1,3); data=num.substr(4,6); last=num.
2020-07-17 21:37:28
128
原创 B 1094 谷歌的招聘(字符串的处理+素数的判断+测试点3/4分析)
题目思路通过substr函数,遍历输入的s,每次记录一个长度为k的子串,转换为整型进行素数的判定,并输出。需要注意的是测试点3、4:当最后字符串的长度不够k时,就终止循环输出404,即循环的结束条件是i<=l-k; 而非i<l;AC代码#include<bits/stdc++.h>using namespace std;bool isprime(int n){ if(n<=1) return false; else { for(int i=2;i*i&
2020-07-17 00:27:48
254
原创 B 1093 字符串A+B(字符串+基础的散列应用)
题目思路这题目容易理解错误,容易想复杂。简单来说,就是给了两个字符串,将其加到一起。再进行顺序输出,前面已经输出过的就不再输出,区分大小写。(就是一个很简单的散列的应用,不要想复杂)AC代码#include<bits/stdc++.h>using namespace std;int main(){ string s1,s2; getline(cin,s1); getline(cin,s2); string s3; s3=s1+s2; int hash[200]=
2020-07-17 00:04:57
106
原创 B 1092 最好吃的月饼(结构体排序)
题目思路用一个结构体储存月饼编号和销量,并将销量初始化为0;创建结构体数组储存每种月饼的数据。最后用sort函数排序输出。AC代码#include<bits/stdc++.h>using namespace std;struct moon{ int id; int sell; moon(){ sell=0; }};bool cmp(moon a,moon b){ if(a.sell!=b.sell) return a.sell>b.sell; el
2020-07-16 22:08:41
162
原创 B 1091 N-自守数(字符串与整型转换)
题目思路一开始记错题目,以为只是最后两位数,所以用了整型取模最后几位的方法,比较麻烦。注:测试点3的k是三位数。这题由于不定长度,最好还是用字符串转换比较方便。我也做了一遍放在下面。AC代码用整型取模:#include<bits/stdc++.h>using namespace std;int main(){ int m; cin>>m; for(int i=0;i<m;i++){ int k; cin>>k; int flag=
2020-07-16 21:10:04
88
原创 B 1090 危险品装箱(利用map映射vector)
题目思路柳神niubility,从柳神那学到的。利用map映射一个<int,vector< int >>输入时,对一组不相容的物品编号互相push_back储存。之后对m组输入进行判断,每次定义一个数组a作为散列,记录编号是否出现。一个数组v记录输入的编号;对每个输入的编号,遍历mp【v[cnt] [ cnt1 ] 】,若a数组中标记为出现,即为有不能共存的物品,flag为1;最后再循环外进行flag判定输出。#include<bits/stdc++.h>
2020-07-16 15:35:44
174
原创 B 1089 狼人杀-简单版(思路不好找)
题目思路做起来思路不好找,参考了柳神的代码思路。画了个比较简单的流程图。AC代码#include <iostream>#include <vector>#include <cmath>using namespace std;int main() { int n; cin >> n; vector<int> v(n+1); for (int i = 1; i <= n; i++) cin &
2020-07-15 22:16:28
199
原创 B 1088 三人行(两位数转换)
题目思路这题有几个考点:数学问题,如何根据x,y找甲乙丙;我的思路:取甲乙只差δ=x倍的丙,乙=y倍丙。通过遍历丙,找甲乙,并通过判断乙的逆序减甲的绝对值是否等于δ,来判定三个数是否成立; for(int i=1;i<100;i++){ d3=i; delta=x*d3; d2=y*d3; s2=to_string(d2); reverse(s2.begin(),s2.end()); d1=stoi(s2);//d1为d2的反转 if(abs(
2020-07-15 19:10:01
199
原创 B 1087 有多少不同的值(散列的简单应用)
题目思路用散列就行。pat的题怎么有的简单的不行,有的又难又绕- -;AC代码#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; int hash[100000]={0}; int d=0,cnt=0; for(int i=1;i<=n;i++){ d=i/2+i/3+i/5; hash[d]++; if(hash[d]==1) cnt++; }
2020-07-13 22:40:01
133
原创 B 1086 就不告诉你(to_string以及字符串的处理,测试点1,2测试用例)
题目思路不是大整数,1000的话乘积最多9位,int型就能保存。前半部分无难点,用to_string即可。容易出错的是测试点1,2。当乘积末位为0时,输出时不输出首位的0.测试用例:11 10(测试点2)应输出1111 100(测试点1)应输出11AC代码#include<bits/stdc++.h>using namespace std;int main(){ int a,b; cin>>a>>b; long long d=a*b; s
2020-07-13 22:27:02
145
原创 B 1085 PAT单位排行(map储存信息,结构体排序)
题目思路用一个结构体储存输入的学生信息,一个结构体储存学校的信息;用一个map储存学校的总成绩,一个map储存学校的学生人数;注意最后的加权成绩,需要汇总后再换为整型;最后的排序输出通过结构体用sort函数进行排序;做完发现自己的思路基本和柳神一致hhh。不过最后排名的输出测试点后两个没通过,就参考了柳神的代码。AC代码#include<bits/stdc++.h>using namespace std;struct stu{ //记录学生信息 s
2020-07-13 19:24:10
153
原创 B 1084 外观数列(找规律处理字符串)
题目思路说实话,这题我确实没有比较好的思路。代码参考的是柳神的。做法是:用字符串储存d。通过循环,遍历到所求的第n项。求每一项时,外循环遍历目前字符串,内循环寻找和前一位不同的字符位置。当找到不同的字符或者遍历完后跳出内循环,此时j就记录了和前一位字符不同的字符的下标。通过j-i就得到了前一位字符的出现次数。再用to_string加到字符串t中。令d=t。继续循环。AC代码#include<bits/stdc++.h>using namespace std;int
2020-07-12 21:13:56
142
原创 B 1083 是否存在相等的差(采用集合set)
题目思路由题意可知需要按差值排序,所以我想到了用集合set(可以自动排序且去重)。我也看了其他博主的代码,也可以利用map容器、以及不用stl的容器,通过散列遍历(可以参考柳神的)AC代码#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; int a[n]={0}; int cha[10001]={0};//记录差值出现的次数 set<int> st;
2020-07-12 15:23:06
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人