自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

EP的别三日

要输就输给追求,要嫁就嫁给幸福。

  • 博客(168)
  • 资源 (3)
  • 收藏
  • 关注

原创 Python:PDF转PNG(6行代码搞定)

使用python,轻松将PDF转为PNG。

2022-07-26 20:35:20 1859 3

原创 原来使用Python进行文字识别可以如此简单?(Python实现图像OCR)

我的任务需求是这样的,有几千个对报告单扫描生成的PDF文件,要对这些PDF上有用的部分进行提取。所以,就想到了OCR文字识别。所以我要做的是使用Python将PDF都转为PNG,使用百度开放的PaddleOCR对PNG进行文字识别,提取需要的部分。关于PDF转PNG,见博客()。......

2022-07-26 20:26:21 2133

原创 python处理csv文件 常用操作

读取csv并操作import pandas as pdcsv_path = "report.csv"# 选择要读取的列的列名 # usecols可以选择要读取的列,不选的话就全读df = pd.read_csv(csv_path, usecols=["patient_id", "report"])# 要存放csv的dictpatient = dict()# 通过index, row, df.iterrows() for index, row in df.iterrows(): #

2022-05-30 20:50:23 1029 1

原创 用opencv的cv2读图并在图像上画框保存(比matplot清晰多了)

官方文档给的定义:Python: cv.Rectangle(img, pt1, pt2, color, thickness=1, lineType=8, shift=0) → NoneParameters:img – Image.pt1 – Vertex of the rectangle.pt2 – Vertex of the rectangle opposite to pt1 .rec – Alternative specification of the drawn rectangle.c

2022-04-26 20:10:51 5289

原创 经典CNN及PyTorch实现

许多现代卷积神经网络的研究都是建立在这些基础上的,包括:AlexNet。它是第一个在大规模视觉竞赛中击败传统计算机视觉模型的大型神经网络;使用重复块的网络(VGG)。它利用许多重复的神经网络块;网络中的网络(NiN)。它重复使用由卷积层和 1×1 卷积层(用来代替全连接层)来构建深层网络;含并行连结的网络(GoogLeNet)。它使用并行连结的网络,通过不同窗口大小的卷积层和最大汇聚层来并行抽取信息;残差网络(ResNet)。它通过残差块构建跨层的数据通道,是计算机视觉中最流行的体系架构。

2021-12-19 17:10:29 3794 1

转载 Binary neural networks:A survey (二值化网络最新综述)

神经网络二值化能够最大程度地降低模型的存储占用和模型的计算量,将神经网络中原本 32 位浮点数参数量化至 1 位定点数,降低了模型部署的存储资源消耗,同时极大加速了神经网络的推断过程。但二值化会不可避免地导致严重的信息损失,其量化函数不连续性也给深度网络的优化带来了困难。近年来许多算法被提出致力于解决上述问题,并取得了令人满意的进展。在本文中,我们对这些方法进行了全面的总结和概括,主要分为直接量化的朴素二值化方法,以及使用最小化量化误差、改善网络损失函数和减小梯度误差等技术的改进二值化方法。

2021-12-04 19:44:56 1439

原创 图像超分辨率[CVPR2016]-VDSR-PyTorch代码复现

图像超分辨率[CVPR2016]-VDSR-PyTorch代码复现前言:跑源码遇到的问题PSNR(图像峰值信噪比)vdsr.py中参数对卷积参数的初始化用91张图片数据集训练的结果后记:前言:Implementation of CVPR2016 Paper: “Accurate Image Super-Resolution Using Very Deep Convolutional Networks”(http://cv.snu.ac.kr/research/VDSR/) in PyTorch论文原作

2021-11-19 22:31:20 8354 36

原创 深度学习初学者,如何下载常用公开数据集并使用呢?

深度学习初学者,如何下载常用公开数据集并使用呢?1.前言2.官方文档怎样看3.动手写代码4.如何可视化1.前言刚开始进行深度学习的时候,难免要用到一些公开数据集,现在闲来无事,记录一下如何快速下载一些经典数据集。通过官方文档学习,是一些大牛们挂在嘴边经常推荐的方法,那么我们本篇博客就从官方文档开始学习。因为我是做CV方向的,所以用TorchVision这个库举例。来自官网:This library is part of the [PyTorch](http://pytorch.org/) projec

2021-11-13 10:13:30 8407

原创 深度学习实践 加载数据集

一、加载数据集全部数据:Batch 最大化利用向量的优势,提升计算速度(利用CPU GPU的并行计算能力)随机梯度下降:mini-batch 只用一个样本,有较好的随机性首先区分了Epoch(前馈、反馈和更新实现一次就是Epoch) \ Batch-Size(进行一次训练所用的样本数量)\ Iterations(内层迭代进行的次数 sum/Batch-size)shuffle用来打乱数据集中数据的顺序,然后通过Loader将数据划分成mini-batch。DataSet是抽象类,不能实例化对

2021-10-30 20:33:52 1184

原创 深度学习实践 处理多维特征的输入

这里写目录标题一、处理多维特征的输入二、代码:一、处理多维特征的输入多维数据的 行:record 列:feature当输入x变成n维的向量,让其和n维的权重w作内积,内积之后转置。广播:Python/Numpy中的矩阵向量的广播(Broadcasting)特性矩阵和向量:self.linear = torch.nn.Linear(8, 2) 可以将8维的输入进行空间维度变换,成为2维的输出。每次空间压缩,需要引入σ(激活函数),进行非线性的空间变换。变换的维度和层数,决定了网络的复杂程

2021-10-29 21:58:06 1465

原创 深度学习实践 Logistic实现二分类(解决代码报错问题)

逻辑斯蒂回归(分类问题)一、概念:二、代码:实验结果截图:三、问题:四、可视化:一、概念:对于之前的线性问题转化成分类问题:如果不再预测学习4小时可以得到的成绩,而是判断学习4小时是否可以通过考试。线性回归模型的模型和损失:那么,分类问题如何将结果映射到[0,1]呢?引出了sigmoid函数,将y带入x即可。计算某输入属于某一输出的概率的最大值。σ函数:保证输出值在0~1之间损失函数称为:BCE Loss(Cross Entropy 交叉熵)二、代码:import torch

2021-10-29 10:50:06 982 6

原创 深度学习实践 用PyTorch带你逐步实现线性回归

目录用PyTorch实现线性回归一、准备数据集:二、设计模型 构造计算图三、构造Loss和Optimizer四、训练迭代代码:用PyTorch实现线性回归本文的内容为用PyTorch完成线性模型,包括:如何构造自己的神经网络如何构造损失函数如何构造随机梯度下降的优化器使用PyTorch解决问题的四步:准备数据集设计模型,计算y_pred构造Loss、optimizer(损失函数和优化器)Training cycle(前馈 -> 反馈 -> 更新)forward:算

2021-10-28 20:44:04 1651

原创 深度学习实践 反向传播算法(在图上进行梯度传播非常重要的算法)

文章目录Back Propagation知识代码:Back Propagation知识w.item(): 可以直接将梯度变成标量w.data: 取数值进行计算 不会构建计算图w.zero_(): 释放数值 对其清零计算过程可以看作在图上进行梯度传播训练的目的:使Loss取更新。计算Loss对w的导数,对w进行更新。因为目标不是y_pred取最小,而是使损失Loss取最小。如何将复杂的网络看成图,在图上传播梯度,根据链式法则求出梯度。(反向传播:Back propagation)W:权重矩

2021-10-28 10:28:46 1261 2

原创 深度学习实践 梯度下降算法(最常用的基础算法)

梯度下降算法对w向梯度的负方向更新,α表示学习率,这样可使得每次都朝着下降最快的方向移动。梯度下降对于非凸函数只能找到局部最优,很难找到全部最优(没有一个点的函数值比它小的点)

2021-10-27 19:24:12 2270 5

原创 强大的vim(Linux vi常用指令整理)

强大的Vim()命令模式与编辑模式的切换::q! (不保存 且强制退出 Vim ):q (强制退出):wq (w表示保存 q表示退出)如果没有文件名必须为其命名 :wq filenamevim ~/.vimrc 进入vim配置文件vimrc 常用配置set numberset laststatus=2set hlsearchset tabstop=4set softtabstop=4set shiftwidth=4set noexpandtabset autoinden

2021-05-31 08:29:07 346

原创 蓝桥杯日期类题目一网打尽(日期计算/回文日期/...)

我们都知道,蓝桥的填空题和编程题的前几个不但水,还很麻烦。如果比赛的时候处理不好的话,虽然能做对,但是会比较浪费时间。我这里整理一下蓝桥可能遇到的日期类问题,将日期类问题一网打尽个人感觉。能让我们在比赛中更节省时间,AC更多的题目。预置// 先将每个月的天数放进去int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};检查日期是否合法:bool check(int num) { int year = num /

2021-04-17 15:52:54 481

原创 【算法】搜索专题狂练,内附题单

蓝桥杯、PAT 搜索类题目专练,内附题单

2021-04-07 20:23:31 244

原创 AcW 845 八数码 【BFS、queue、unordered_map】

#include <iostream>#include <set>#include <map>#include <queue>#include <vector>#include <cmath>#include <cstring>#include <algorithm>#include <unordered_map>#define inf 0x3f3f3f3fusing namesp

2021-03-15 16:26:05 147 2

原创 算法竞赛中常用的 C++ STL,有这一篇就够了

本文整理了常用到的C++ STL,个人感觉有其中的一部分就够用了。当然要想更好的 A 题,还需要对知识的熟练掌握和灵活运用。现整理如下:// size和empty是所有容器都有的方法 size() 返回元素个数 empty() 返回是否为空Tips:系统为某一程序分配空间时,所需时间与空间大小无关,而与分配次数有关。vectorvector// 变长数组,自动增长 // 定义 一个长度为10的vector 每一个值为-3 vector<int>

2021-03-08 20:51:24 1296

原创 大数据与人工智能双创平台 物联网小组学习记录

物联网小组 寒假学习博客整理:1813004704 亓荣晨:博客地址2021-02-07 Pycharm1913041050 丁鹏宇:博客地址BadUsb学习1913040916 喻毅邦:博客地址C++STL相关内容整理C语言指针梳理ArduinoIDE初次使用介绍Arduino学习笔记2013040528 赵宇鹏:博客地址【C++】STL学习小总结C语言学习基础知识arduino初学小白必看(软件安装及前期准备)arduino初学小白必看(了解一下

2021-03-02 22:04:03 191

原创 PAT 甲级 1115 Counting Nodes in a BST (30 分) BST DFS

原题链接:1110 Complete Binary Tree (25 分)题目大意:这个题中的BST和之前的BST的定义有点不一样,所以要看清楚题目的条件。本题将一系列数字按顺序插入到一个空的二叉搜索树中,然后,请你计算结果树的最低两层的结点个数。分析:建树 -> DFS,在 DFS的过程中记录每一层的结点个数和最深的结点。满分代码:#include <iostream>#include <set>#include <map>#include

2021-02-08 11:01:24 110 1

原创 PAT 甲级 1110 Complete Binary Tree (25 分) 完全二叉树 DFS

原题链接:1110 Complete Binary Tree (25 分)题目大意:给你一颗树,你来判断一下它是否是一颗完全二叉树。输入:N个点接下来N行代表每个点的左右子结点的信息,并给出该结点的左右子结点的编号,如果某个子结点不存在,则用 - 代替。题目分析:    我们可以假设这就是一个完全二叉树,建树。将空的地方留下,其他地方慢慢填满。填完之后对这颗树进行DFS,每个点除了结点值,我们还要为其分配一个从1开始的下标值,因为在完全二叉树中,结点的左

2021-02-08 09:58:09 95

原创 PAT 甲级 1102 Invert a Binary Tree (25 分) BFS DFS

原题链接:1102 Invert a Binary Tree (25 分)题目大意:题目给定你一颗镜像翻转的二叉树(即左右子树翻转),让你进行层次遍历和中序遍历。分析:注意点:题目没有告诉你哪个是根结点,所以在读入的时候进行标记,对每行输入的点标记它们已有父结点,然后遍历一下就知道哪个点没有父结点了,没有父结点的就是根节点。BFS和DFS细心就可以了!满分代码:#include <iostream>#include <set>#include <map&

2021-02-06 10:38:41 97 3

原创 PAT 甲级 1099 Build A Binary Search Tree (30 分) DFS BFS

原题链接: 1099 Build A Binary Search Tree (30 分)题目描述:题目输入包括结点个数(0是根节点),给了每个结点的左右子树的编号,-1 代表左/右子树不存在。最后一行给了一堆权值,让我们生成一颗 BST(二叉搜索树)。分析:根据题目除最后一行的信息,我们可以构建一颗树,根据权值我们便可生成一颗 BST。如何生成 BST 呢,我们知道 BST 有严格的特征:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于

2021-02-05 16:26:26 94

原创 手把手带你在高大的命令行使用 git

如何在本地文件夹使用 git一、创建远程代码仓库1. 登录 gitee账号2. 新建仓库(每一个项目可以有一个专用的仓库)并且对仓库初始化,我们填写仓库名,将仓库属性设置为公开的,并且通过 readme 文件初始化这个仓库,这样对于每个第一次使用这个仓库的人都可以通过阅读 readme 文件,从而更容易的了解本仓库的食用方法。3. 查看已生成的仓库,我们也可以看到一个 readme 文件,一个英文版,以后就要学会在这里写仓库介绍啦!二、创建本地代码仓库1. 选定你要作为本地代码仓库的文

2021-02-03 21:30:02 174

原创 PAT 甲级 1086 Tree Traversals Again (25 分) 栈 DFS

原题链接:1086 Tree Traversals Again (25 分)题目大意:通过使用栈可以以非递归方式实现二叉树的中序遍历。分析:第一个是根节点push 上一个是push 左儿子上一个是pop 右儿子满分代码:#include <iostream>#include <set>#include <map>#include <stack>#include <vector>#include <cmath&

2021-02-03 20:30:39 75

原创 * PAT 甲级 1064 Complete Binary Search Tree (30 分)

原题链接:1064 Complete Binary Search Tree (30 分)题目大意:完全二叉树 (CBT) 定义为除最深层外的其他层的结点数都达到最大个数,最深层的所有结点都连续集中在最左边的二叉树。现在,给定 N 个不同非负整数,表示 N 个结点的权值,用这 N 个结点可以构成唯一的完全二叉搜索树。不知道什么是二叉搜索树(BST)可以看我上一篇博客:二叉搜索树分析:对题目给的权值排列 就是它的中序遍历结果我们用DFS(LVR)将中序遍历填入树中这是一个完全二叉树,所以满足除最深

2021-02-03 20:06:59 97

原创 PAT 甲级 1043 Is It a Binary Search Tree (25 分) 递归建树

原题链接: 1043 Is It a Binary Search Tree (25 分)题目大意:BST:二叉搜索树。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值它的左、右子树也分别为二叉搜索树现在,给定一个整数序列,请你判断它是否可能是某个二叉搜索树或其镜像进行前序遍历的结果。分析:首先,我们要知道一个BST的中序遍历一定是非递减的。因为是否镜像只是会让它的前序遍历正反翻转,所以我们先读入它的前序遍历并且

2021-02-03 18:53:58 82

原创 PAT 甲级 1021 Deepest Root (25分) 并查集 DFS

原题链接:1021 Deepest Root (25分)题目大意:    输入N,给 N-1组点与点连通的数据,让我们判断这是否是一颗树。    如果是的话进行 DFS,求出这棵树的深度。    如果不是的话,输出连通块的数量。分析:题目要求时间是0.2s,那么2e8的复杂度我们可以勉强通过。这个题的思路:首先我们要建树,那就用到了邻接表建树、初始化并查集。然后读入n-1个

2021-02-02 11:46:28 112

原创 PAT 甲级 1020 Tree Traversals (25分) 建树 哈希map BFS

原题链接:1020 Tree Traversals (25分)题目大意:    曾经,在数据结构课上做过类似的题目。给定你中序遍历 + 后序遍历,或者中序遍历 + 前序遍历,让你来求另一种方式遍历的结果。    不过是求哪个,其实都是让你来还原一颗二叉树,只要还原了,它的遍历方式都好说了。题目就是先输入了结点数,然后给你后序遍历和中序遍历的顺序,让你还原层次遍历。分析:    

2021-02-01 22:03:29 95

原创 PAT 甲级 1004 Counting Leaves (30分)

原题链接:1004 Counting Leaves (30分)题目大意:数一下这个树有几个结点是非叶子结点(有儿子)。输出的时候在一行中,输出每一层的叶子结点数目。分析:邻接表:我们使用邻接表对树进行存储。h 数组代表每一条链子的头,h 数组长度为 n,代表这棵树共有 n 个结点,初始时它们为 -1,代表没有子结点。然后每次增加一个儿子,它就指向它的儿子(注意:除了根节点之外,每一个结点都有一个唯一索引)。存树:刚开始,初始化 h 数组。每次存一个父子信息的时候,先给这个结点的值放入 e 中(

2021-01-27 16:50:38 214

原创 PAT 甲级 1075 PAT Judge (25分) 哈希map 排序

原题链接:1075 PAT Judge (25分)题目大意:PAT1075:PAT评测 模拟+小排序第一行给定N K M 分别表示用户数量(5位的字符串)、题目数量(1~5个不等)、总提交次数(小于1e5)第二行代表K个题目的满分(就和我们平常写PAT的题一样 最高得分就是满分30)接下来M行代表每个用户的交题数据 分别是 u_id:用户id p_id:题目id grade:得分 要求你将所有数据读入后,按照每个人的总分进行排名输出如果总分相同那么排名也相同,就按照解题数量升序排列,如果仍

2021-01-25 18:02:00 85

原创 PAT 甲级 1052 Linked List Sorting (25分) 哈希表 排序

原题链接:1052 Linked List Sorting (25分)分析:使用哈希map对数据进行读入,将在这条链表上的放到vector中。注意for循环在链表中的应用。满分代码:#include <iostream>#include <vector>#include <set>#include <map>#include <cmath>#include <cstring>#include <algorit

2021-01-24 20:54:06 79

原创 PAT 甲级 1039 Course List for Student (25分) 哈希map 排序

原题链接:1039 Course List for Student (25分)题目大意:这是一个学生的选课信息。我们需要对学生的选课进行整理。然后对每一个询问,输出该学生选课的数目,按升序输出课程代号。分析:哈希 map 的一个简单应用。key存放学生的姓名,value是一个 vector,用来存放这个学生上过的课程代码。后来我想到value可以使用set类型的,因为set会自动对int类型的值进行升序排列,输出的时候都不需要sort了。满分代码(value使用vector):#include

2021-01-24 20:50:45 72

原创 PAT 甲级 1028 List Sorting (25分)

原题链接:1028 List Sorting (25分)题目大意:我们知道,Excel 可以选定某一列关键字进行排序。现在要我们也实现这一功能。输入n和k,给定你三列数据,分别是唯一的 id(6位字符), name(不超过8位的字符), grade(0~100的证书)。n 代表有 n 行,k 代表对第 k 列排序。k == 1:对 id 升序;k == 2:对 name 升序排列,如果出现同名,根据 id 升序;k == 3:对 grade 升序排列,如果成绩相同,参考 id 升序。分析:

2021-01-24 11:05:11 145

原创 PAT 甲级 1025 PAT Ranking (25分)

原题链接:1025 PAT Ranking (25分)题目大意:需要计算考生在地区中的排名,在所有考生中的排名。每读入一个地区的考生的信息,就进行排名,每一个考场内的排名计算完毕后再计算总排名。分析:1.重载cmp写法:函数名中写小于号2.push_back的时候注意数据类型一致3.做排名类题目时,用这个方法 rank = i + 1满分代码:#include <iostream>#include <cstring>#include <vector>

2021-01-23 12:20:21 110

原创 PAT 甲级 1022 Digital Library (30分)

原题链接:1022 Digital Library (30分)题目大意:一本书,只有一位作者,包含的关键词不超过 5 个。总共不超过 1000 个不同的关键词,不超过 1000 个不同的出版商。图书信息介绍完毕后,有一行包含一个整数 M,表示查询次数。当读者查询某一关键信息时,你应该找到所有与查询相关的书籍,并将它们按 ID 的升序排序输出。分析:难点和重点在于:对字符串的读入和处理。有格式的字符串用 scanf() 比较好普通无空格字符串用cin包含空格的字符串用 getline(),

2021-01-23 11:18:00 152

原创 PAT 甲级 1012 The Best Rank (25分)

原题链接:1012 The Best Rank (25分)题目大意:对于CS专业的学生,我们要对他们进行一个评估,向学生展示他们最好的某一科和排名。 给n个学生的成绩和m次询问。学生成绩按照C/M/E的顺序给出来,除了这三个我们还要计算一下学生的平均成绩。每次询问输入学生id,你输出这个学生最好的一科,如果多科一样好,按照A/C/M/E的优先级分析:A > C > M > E思路:用哈希map存学生key为学生唯一id,value为vector存的四个成绩值:A C M E

2021-01-23 10:20:09 103

原创 PAT 甲级 1017 Queueing at Bank (25分)优先队列

原题链接:1017 Queueing at Bank (25分)题目大意:有n个客户,m个窗口。已知每个客户的到达时间和服务时长,如果有窗口空着,那么可以依次过去办理,没有窗口空着,人们就在黄线外等候(挂号且排队),按照顺序走向前办理业务。分析:用结构体存客户的到达时间,通过格式化读入,后续分析请看注释满分代码:#include <iostream>#include <cstring>#include <algorithm>#include <qu

2021-01-21 16:06:01 100

转载 C++ STL模板与简介整理

vector, 变长数组,倍增的思想 size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() begin()/end() [] 支持比较运算,按字典序pair<int, int> first, 第一个元素 second, 第二个元素 支持比较运算,以first为第一关键字,以second为第二关键字(

2021-01-21 15:51:59 89

ThreeTreeSample.zip 三层架构优化

BUtil 有很高的可移植性 Dao 层的增删改中的 SQL 语句 关于查询,在 DaoImp 中关闭 DBUtil 的 Connection,需要将 DBUtil 中的 Connection 写为全局变量 方法重构:将多个方法的共同代码提炼出来,单独写在一个方法中,然后引入该方法即可 ———————————————— 版权声明:本文为CSDN博主「EP Fitwin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_43847596/article/details/106148613

2020-05-17

JavaWeb三层架构案例 信息管理系统 ThreeTireSample

Java Web 三层架构案例 信息管理系统.其实有了这个案例,信息管理系统基本就没问题了,大家可以按照自己的需求增加实体类的属性。

2020-05-15

MVCSample.zip

MVC模式(跟着敲小白也能看得懂的案例)中的代码和SQL设计。MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使 MVC 设计模式被分成三个核心层:视图层、控制层、模型层。它们各自处理自己的任务,各层的任务如下: 视图层(View):此层主要是负责接收 Servlet传递的内容,并且调用JavaBean,将内容显示给用户。 使用:HTML,CSS,JS,JSP 等实现 控制层(Controller):此层由 Servlet 实现,负责所有的用户请求参数,判断请求参数是否合法,根据请求的类型调用 JavaBean 执行操作并将最终的处理结果交由显示层进行显示。 模型层(Model):某个功能。完成一个个独立的业务操作组件,一般都是以 JavaBean 的形式进行定义的。 ———————————————— 版权声明:本文为CSDN博主「EP Fitwin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

2020-05-11

空空如也

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

TA关注的人

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