自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Ubuntu 18.04 安装驱动

文章目录前言检查一下 NVIDIA 驱动是否安装着安装 NVIDIA 显卡驱动方法一方法二其他方法前言我在尝试在Ubuntu系统上安装CUDA和CUDNN,总是失败,后来发现可能是驱动的问题,换了好多的方法,也换了Ubuntu的好几个版本,捣鼓了好几天才终于装上,写一篇博客记录一下NVIDIA显卡驱动的安装方法。检查一下 NVIDIA 驱动是否安装着nvidia-smi如果显示不出信息或者显示 “NVIDIA-SMI has failed because it couldn’t communic

2022-04-30 10:27:00 2454

原创 解决 Ubuntu 和 Windows 双系统的时间不同步问题

问题提出双系统安装 Ubuntu 之后回到 Windows 系统发现系统时间变了!变得比实际北京时间慢了8个小时左右!解决办法进入 Ubuntu 系统中,打开终端,快捷键 “Ctrl + Alt + t”,输入命令:sudo apt install ntpdate安装好之后再输入命令:sudo ntpdate time.windows.com无法定位软件包的话先输入:sudo apt-get update之后把时间机制从 UTC 改成 LocalTime:sudo hwclock --loca

2022-04-29 21:42:38 4850 1

原创 双系统安装 Ubuntu 18.04 以及删除双系统中的 Ubuntu 的方法

双系统安装 Ubuntu 18.04 详细讲解

2022-04-29 19:31:04 3539 1

原创 TensorFlow1基本概念介绍

主要概念Graph Session Tensor Operation Feed Fetch TensorFlow高层封装与常用APIGraph描述计算的过程,通过tensorboard图形化流程结构声明import tensorflow as tf# 声明g = tf.Graph()g = tf.get_default_graph()x = tf.constant(0) # 利用变量直接获取graphg = x.graph声明并交叉使用多个Graph

2021-12-27 20:01:07 1693

原创 使用 OpenCV-Python 识别答题卡判卷

任务识别用相机拍下来的答题卡,并判断最终得分(假设正确答案是B, E, A, D, B)主要步骤轮廓识别——答题卡边缘识别 透视变换——提取答题卡主体 轮廓识别——识别出所有圆形选项,剔除无关轮廓 检测每一行选择的是哪一项,并将结果储存起来,记录正确的个数 计算最终得分并在图中标注分步实现轮廓识别——答题卡边缘识别输入图像import cv2 as cvimport numpy as np# 正确答案right_key = {0: 1, 1: 4, 2: 0,

2021-12-20 19:20:20 9595 6

原创 OpenCV-Python提取图像中的ROI

参考文章:OpenCV数字图像处理之ROI区域的提取_xiaoheizi_du的博客-CSDN博客_roi区域提取OpenCV数字图像处理之ROI区域的提取利用mask(掩模)技术提取纯色背景图像ROI区域中的人和物,并将提取出来的人或物添加在其他图像上。1、实现原理先通过cv.cvtColor()函数,将原RGB彩色图像转换为hsv色彩空间的图像,然后通过cv.inRange()函数获得ROI区域的Mask,最后利用cv.bitwise()函数提取得到ROI区域。2、使用的函数简述(1) cv.c..

2021-12-15 14:23:00 8478 2

原创 项目实战之信用卡数字识别

项目要求要求输入一张信用卡图片后能够识别出卡号的位置,并且识别出卡号是多少输出图像如下图所示实战ocr_match_template.pyimport cv2import numpy as npimport myutils# 指定信用卡类型FIRST_NUMBER = { "3": "American Express", "4": "Visa", "5": "MasterCard", "6": "Discover Card"}# 建立cv_show函

2021-11-23 20:40:09 2209

原创 关于zip(*sorted(zip()))操作的解释

运行课程上的代码,对一个函数的某个关键操作步骤有些不解,查了一下资料,发现了(python函数04)zip(*sorted(zip())) - 华子哈 - 博客园zip(*sorted(zip())) 用这个玩意儿可以以对两个迭代对象进行排序。 示例代码01 cnts = [2, 4, 3, 6, 5]boundingBoxes = [(730,https://www.cnblogs.com/huaziha/p/14373528.html这篇博客写的东西,很有启发,在这里记录一下这个函数的功能是在.

2021-11-23 16:21:35 2600

原创 计算机视觉之图像检索

结构相似检索 颜色、纹理、形状 局部特征点 词包(Bag of Visiual Word) 索引加速 KD-tree 局部敏感哈希(Locality Sensitive Hash) ...

2021-11-21 20:08:47 1803

原创 图像特征与描述

Abstract

2021-11-05 10:14:49 141

原创 计算机视觉之图像预处理

颜色空间图片存储原理图像增强的目标图像处理方法特征提取方法直方图均衡化自适应直方图均衡CLAHE形态学运算空间域处理及其变换空域分析及变换边界填充策略均值滤波示意均值滤波本身存在缺陷,既没有很好的去除噪声点,也破坏了图像的细节反而使图像变得模糊。空域分析及变换平滑中值滤波/卷积(注意与上述...

2021-11-03 17:24:14 1392

原创 GAN与WGAN——对抗神经网络

GAN不是进行分类或图像识别语音识别等功能的,它的功能是通过深度学习网络学习到某些特征,然后自动生成符合这种特征的数据(比如图像等)。GANGenerator DiscriminatorGenerator是一个神经网络,负责将一组随机噪声生成一个图像Discriminator也是一个神经网络,它负责判断由Generator生成的图像与真实图像之间的差距,并返回这个图像是真是假的判断。无论是Generator还是Discriminator,它们的目的都是学习到真实Training Se

2021-10-29 11:04:48 1367

原创 Auto-Encoders

非监督学习Why neededAuto-EncodersHow to trainMaximize LikelihoodMinimize KL DivergenceHow to compote KL between q(z) and p(z)实战Auto-Encoderimport osimport tensorflow as tfimport numpy as npfrom tensorflow import ke...

2021-10-26 21:26:00 111

原创 ResNet实战

Basic BlockRes BlockResNet-18源码resnet.pyimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layers, Sequentialclass BasicBlock(layers.Layer): def __init__(self, filter_num, stride=1): .

2021-10-24 10:46:18 267

原创 ResNet 与 DenseNet

ResNetThe residual moduleResNet 残差网络,F(x) + x = H(x),那么F(x) = H(x) - x,“残差”就是这么来的为了使网络层数加深也不至于比浅层次网络的性能差,设计出了这样一种带有“短路机制”的网络,一个BasicBlock的结果是网络F(x)与直连x的和上面显示了参数量正是因为ResNet有这种性质,ResNet可以做的很深Basic BlockRes BlockResNet-18DenseN..

2021-10-24 10:41:51 137

原创 Batch Normalization

提出原因使用Sigmoid 激活函数时如果数据的分布范围较大,训练时容易出现梯度弥散现象,因此提出了Batch Normalization的方法另外,从另一个角度,如果输入的数据大小差别过大,就会导致参数w在某一个方向上梯度变化不明显而另一个方向上梯度变化比较大,这个时候的网络优化的效率是比较低的。如果数据输入都是在一定范围内的话,网络优化起来效率就会比较高,就像下面李宏毅老师的图一样NormalizationNorm如上图所示,有很多Norm的方法,但其实只是角度不同,每次

2021-10-24 10:15:09 165

原创 卷积神经网络

卷积神经网络介绍为什么要“卷积”全连接所需要的参数数量过多,尤其对于现在处理的数据量来说更多,对应硬件显存要求巨大。为了减少这部分需求,同时对神经网络也能够实现很好的训练,提出了卷积神经网络的概念如何实现权值共享一些概念 feature maps: 比如说在Computer Vision 领域中,feature map 指的就是图像,包括输入的原始图像以及通过神经网络各层处理出来的“中间图像”。中间图像加引号是因为有的层处理完之后的由于维度发生了变换,无法呈现出一个图像

2021-10-22 16:11:10 1462

原创 TensorFlow_其他的训练Tricks

TricksEarly Stopping Dropout Stochastic Gradient DescentEarly StoppingDropout注意:out = network(x, training=True) 这一行中,设置training参数为True对比下面设置为False注意:dropout 在做 test 的时候不能使用,做 test 的时候要求全连接,以得到最好的效果stochastic 在这里并不是取它的汉语意思“随机的”.

2021-10-21 19:36:14 190 1

原创 动量与学习率

momentum(势能) learning rate decay(学习率衰减)Momentum上面是之前的参数更新公式,下面两个是带Momentum的参数更新公式可以看到两者之间的变化就是关于梯度的计算带Momentum的梯度计算中是这一步的梯度和上一步梯度的求和!!这样的话就会保留一些之前动量的信息在TensorFlow中实现Learning rate tunningLearning rate decay(学习率衰减)Adaptiv...

2021-10-21 17:17:39 244

原创 Regularization(正则化)——避免过拟合

L1正则化和L2正则化import tensorflow as tffrom tensorflow.keras import datasets, layers, optimizers, Sequential, metricsdef preprocess(x, y): x = tf.cast(x, dtype=tf.float32) / 255. y = tf.cast(y, dtype=tf.int32) return x,ybatc...

2021-10-21 16:57:09 165

原创 TensorFlow中的交叉验证

交叉验证是用来避免模型的过拟合和欠拟合现象Train, TestTrain, val, testEvaluate during trainTest after trainingk-fold cross validation用到一个.gather 方法,提取出x和y的随机的50k数据(因为idx经过了shuffle);并且是在每一个epoch中都进行一次随机提取,epoch有500次,也就是做了500次交叉验证...

2021-10-21 14:58:03 1524

原创 Keras 实战

import tensorflow as tffrom tensorflow.keras import datasets, layers, optimizers, Sequential, metricsfrom tensorflow import kerasimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'def preprocess(x, y): # [0~255] => [-1~1] x = 2 ...

2021-10-21 08:35:50 254

原创 TensorFlow——模型保存与加载

save/load weights save/load entire model saved_modelsave_load_weights.pyimport tensorflow as tffrom tensorflow.keras import datasets, layers, optimizers, Sequential, metricsdef preprocess(x, y): """ x is a simple image, no...

2021-10-21 08:27:52 559

原创 Keras 高层API

Keras.MetricsStep 1. Build a meterStep 2. Update dataStep 3. Get Average dataClear bufferimport tensorflow as tffrom tensorflow.keras import datasets, layers, optimizers, Sequential, metricsdef preprocess(x, y): x = tf.c..

2021-10-21 08:09:31 117

原创 Fashion MNIST 实战

import tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import datasets, layers, optimizers, Sequential, metricsimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'def preprocess(x, y): x = tf.cast(x, dtype=tf.float32) / .

2021-10-20 21:02:35 72

原创 TensorFlow——Himmelblau函数优化实战

Himmelblau function最小值PlotGradient Descentimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfrom matplotlib import pyplot as pltimport tensorflow as tfdef himmelblau(x): return (x[0] ** 2 + x[1] - 11) ** 2 +...

2021-10-20 20:46:24 139

原创 TensorFlow——梯度计算

Gradient Descent核心公式For instanceGradientTape如果不将需要求梯度的 w 放入GradientTape中,就不能自动求 w 的梯度另外,GradientTape 有一个参数persistent,如果不设置的话,tape.gradient 只能用一次,也就是只能求一次梯度,再用的话就会报错二阶导的求法例如:激活函数及其梯度sigmoidtanhreluSigmoidtf.sigm...

2021-10-20 20:29:08 1026

原创 TensorFlow高级操作

合并与分割tf.concat([a, b], axis=0)concat:+条件:维数必须相当,且除了要合并的维度之外,其他维度的数据相等tf.splitsplit:-tf.stack([a, b], axis=0)stack:+stack:create new dim,可以增加维度(大维度)进行合并tf.unstackunstack:-数据统计tf.norm(a)范数计算:L1 Norm**tf.norm(b, or

2021-10-16 16:48:34 248

原创 TensorFlow基础

目录数据类型创建Tensor索引与切片(重要)维度变换(重要)Broadcasting数学运算前向传播(张量)实战各小节要点总结数据类型数据转换创建Tensor从numpy或list中转化成Tensor用tf.zeros()创建全为0的Tensor用tf.zeros_like()创建与另一个Tensor相同维数和结构的全为0的Tensor用tf.ones()创建全为1的Tensor用tf.fill([], a)来创建全为a的Tens...

2021-10-15 20:16:42 254

原创 python实现上下翻转以及数组、矩阵的区别

上下翻转直接可以用python的内置函数flipud()来完成a = [[1 2 3][4 5 6][7 8 9]]b = flipud(a)b = [[7 8 9][4 5 6][1 2 3]]数组和矩阵、向量的区别数组是有逗号的,它是用来存储数据的一种形式,类似的还有元胞、字典矩阵是用来计算的,向量是一维行矩阵...

2021-09-29 10:17:41 835

原创 测试test

argmaxWhen to testtest once per several batch test once per epoch epoch V.S. step?

2021-09-14 15:43:24 51

原创 激活函数与GPU加速

激活函数simplyGPU accelerated注意,在0.3版本之前是用的.cpu()或.cuda()方法,到了0.4以及1.0版本之后变成了.to(device)方法,这样的话如果想要更改cpu或gpu的使用只需要改变device中的参数即可,方便了很多,比较推荐torch.device('cuda:0')表示在第一个GPU上进行加速,如果有不同的GPU,可以使用不同的索引代表不同的GPU...

2021-09-14 15:21:17 200

原创 PyTorch全连接层

nn.Linearrelu?conciselyinherit from nn.Module init layer in __init__ implement forward()step 1step 2step 3nn.ReLU v.s. F.relu()class-style API 因此需要先实例化 function-style API 因此可以直接传参 Train...

2021-09-14 15:01:06 641

原创 多分类问题实例

Network Architecturew1, b1 = torch.randn(200, 784, requires_grad=True),\ torch.zeros(200, requires_grad=True)w2, b2 = torch.randn(200, 200, requires_grad=True),\ torch.zeros(200, requires_grad=True)w3, b3 = torch.randn(10, 200, re...

2021-09-14 11:19:09 351

原创 2D函数优化实例

一个简单函数的优化问题plotdef himmelblau(x): return (x[0] ** 2 + x[1] - 11) ** 2 + (x[0] + x[1] ** 2 - 7) ** 2x = np.arange(-6, 6, 0.1)y = np.arange(-6, 6, 0.1)print('x,y range:', x.shape, y.shape)X, Y = np.meshgrid(x, y)print('X,Y maps:', X.shap...

2021-09-14 10:16:38 151

原创 PyTorch基础操作

创建TensorImport from numpytorch.from_numpy(a)Import from Listtorch.tensor() 中仅可以给出具体的数值,也就是tensor中的数值但是 torch.FloatTensor() 中既可以给具体的数值(通过List方式给出),也可以不加 [] 而给出tensor的“dim”,比如torch.FloatTensor(3, 4),使用时最好使用后者,以便与torch.tensor()方法区分开uniniti

2021-09-13 22:30:48 473

原创 Auto-Encoders

2021-09-13 10:54:45 122

原创 卷积神经网络CNN

2021-09-11 22:09:42 61

原创 Momentum and Learning rate decay

Momentum 原理上面的是梯度下降方法的核心公式,第三个式子是加了Momentum势能的公式可以发现Momentum只是在原本公式的基础上加上了一项“上一步的向量”,也就是说在Momentum中这一步往哪边走走多少不光取决于梯度下降的计算结果,还取决于上一步的方向和大小无Momentum的普通梯度下降方法的直观理解可以看到轨迹在一开始比较散乱,而且最终也并没有找到全局最优解,只是找到了一个局部最优点有Momentum的普通梯度下降方法的直观理解可以看到加上势能这一项之后,轨.

2021-09-10 10:18:36 87

原创 力扣之搜索插入位置

问题描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,.

2021-09-07 16:52:04 152

空空如也

空空如也

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

TA关注的人

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