自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

湫一

Share the world!

原创 使用 Docker、Nginx部署一个简单React Demo到云服务器上

本人最近在开发的react项目已经到了部署的阶段,我也是第一次上手docker,nginx,所以并不是很精通,这里仅仅是演示如何部署一个简单的前端react项目到服务器上,然后进行网页访问。在这里,借此文记录一下整个部署过程, 主要是云服务器购买和简单使用,以及环境配置,项目打包等内容。文章目录购买云服务器连接云服务器安装 Docker 环境安装 Nginx打包React项目购买云服务器云...

2019-06-25 11:47:11 3352 1

原创 React路由 | 介绍几种常用的react-router-v5的方法

使用 react-router 来进行页面跳转是我们学习react的基本功。笔者最近上手react 不久,也必然遇到了使用 react-router来跳转的几种情景。所以结合个人的项目时间,就写就本文,当作是一个总结。本文主要关注以下几种场景:通过手动修改url进行路由跳转;对页面局部组件进行切换和跳转;为了变更顶层页面组件,进行跳转;对于无法匹配的资源,进行跳转到 404 页面;分...

2019-06-23 22:47:28 2443

原创 【详解】 React 组件生命周期 API 及 useEffect Hook 新特性方案

文章目录1. 引言2. 组件生命周期过程及API详解 3. 使用 useEffect 方法替代生命周期API 4. 推荐阅读如果你想要:完整了解整个组件生命周期和对应函数API,那么请从头开始;快速理解传统生命周期函数API的含义和使用,那么点击这里;快速了解如何在函数组件中使用useEffect来替代原有的生命周期API,那么点击这里.1. 引言如果你是一名前端开发者,并且使...

2019-06-11 13:48:00 4120 1

原创 pytorch 学习 | 全局平均池化 global average pooling 实现 和作用优点解析

pytorch 实现在一些论文中,我们可能会看到全局平均池化操作,但是我们从pytorch官方文档中却找不到这个API,那我们应该怎么办?答案是:利用现有的pooling API实现全局平均池化的效果。首先我们简单理解全局平均池化操作。如果有一批特征图,其尺寸为 [ B, C, H, W], 我们经过全局平均池化之后,尺寸变为[B, C, 1, 1]。也就是说,全局平均池化其实就是对每...

2019-05-24 01:09:25 13639 1

原创 深度学习 | 深入解析CNN pooling 池化层原理及其作用

笔者最近碰到了几种池化层,如最常见的max pooling,后来又遇到了全局平均池化,自适应池化等操作,感叹有点疑惑,这些不同的pooling之间的作用是什么啊?翻了一下pytorch的官方文档,发现竟然还有很多没见过的pooling操作。有点震惊。于是,笔者决定花费一点时间来了解认识这些不同类别的池化操作,研究其作用机理。本文内容将从以下几点展开进行:经过一番网上的搜索,大多数又是针对...

2019-05-23 15:40:49 8363 1

原创 基于Solc和Web3.js实现Solidity0.5.0智能合约的编译和部署

对于刚入门以太坊的朋友来说,最简单的智能合约编译部署就是使用Remix部署了。如果有想尝试自己写代码体会编译部署过程的朋友,请看以下内容。希望对你有所帮助。而且由于solidity 0.4 和 0.5 版本之间的存在较大的变化,编译方式产生了较大的差异,网上许多教程都是基于0.4的,在0.5版本上几乎无法使用。本人踩了不少坑,最终找到了正确的方法。本文代码文件的结构如下:按上述...

2019-01-01 01:17:58 3820 21

原创 简单易懂的距离向量算法DV阐述(附伪代码)

算法说明距离向量算法是一种迭代的、异步的、分布式的、能够自我终止的算法。在计算机网络中,该算法主要用在路由选择上。本文的讨论范围就限于计网中的路由选择算法。以下展开算法解释。异步:该算法不要求所有结点之间相互保持一致地进行操作和计算。 分布式:每个结点都只维护一张局部的路由表,每个路由结点需要从一个或者多个直接相邻的邻接结点接收某些链路信息,执行计算,然后将计算结果分发给邻接结点。...

2018-11-21 17:13:23 6425

原创 使用C++实现彩色图像直方图均衡化的三种方法

引言本文主要介绍如何实现彩色图像的直方图均衡化,达到图像增强效果的三种方法:1. 对RGB三个通道图像分别进行直方图均衡化,然后再合并三个通道;2. 提取RGB三个通道图像,计算其平均直方图结果,然后再进行均衡化;3. RGB空间转为HSI空间图像,对I(亮度,Intensity)通道进行直方图均衡化,再转为RGB图像。第一种方法不推荐,会破坏色彩结构;根据情况选择第2,3种方...

2018-11-08 13:31:40 2680 3

原创 10分钟内教你用Python实现多个文件自动上传到百度云

一、环境说明Python 3.7  和 win10系统 二、准备工作首先我们需要安装一个包,在cmd命令行界面安装 bypy包。pip install bypy然后安装成功后,在命令行运行命令bypy info会弹出一些类似一下的界面,要求授权系统认证。不过因为我已经安装了,所以下面是显示我的网盘容量和现有量。具体的认证是在浏览器中输入命令行界面中的一行百度云链...

2018-11-01 19:56:34 4563 2

原创 人工智能算法——随机重启爬山法,模拟退火算法,遗传算法求解N皇后问题

一、爬山法爬山法就是完全的贪心算法,每一步都选最优位置,可能只能得到局部最优解。本实验对普通爬山法进行了简单的优化,采用了传统爬山法的变种——随机重启爬山法,当爬山步数超过一定值时,会重新打乱棋盘,重新“爬山”。适应度函数:冲突皇后的总对数 “爬山”:每一步就是将棋盘的某一行的皇后移动到最优的位置,即该位置让冲突的皇后对数最少,即适应度函数值最小。 “不断地爬山”: 循环对棋盘的每一行...

2018-10-07 16:47:49 3458 1

原创 TCP传输中的“三次握手”建立连接和“四次握手”释放连接过程

TCP的连接管理主要面向三个连接阶段,分别是连接建立,传输数据,连接释放。其中连接的建立和连接释放是两个重要的知识点,分别有两个比较形象的称呼:三次握手和四次握手。最近正在学习传输层的知识,故借本文对这两个阶段进行简要整理。首先必须明确的是TCP协议是采用客户/服务器的方式,主动发起连接建立的应用进程称为客户机,被动等待连接建立的应用进程称为服务器。三次握手一次连接建立的过程如下:...

2019-10-30 19:05:30 167

原创 经典排序算法C++全实现:插入、选择、冒泡、快排、归并、基数,堆排、希尔...

以下代码是个人学习排序算法的一些实践,实现了大部分排序算法的升序版本,并且对每一种算法进行了简要的介绍和复杂度分析。涉及的算法如下:插入排序:直接插入排序、折半插入排序、希尔排序交换排序:冒泡排序、快速排序选择排序:简单选择排序、堆排序其他类型:归并排序、基数排序#include <iostream>#include <string>#include &...

2019-09-28 22:36:32 124

原创 C++ | 二叉树前序、中序、后序遍历的递归和非递归实现 +层序遍历+深度优先遍历

二叉树的遍历是学习二叉树最基本却极为重要的一环。当你熟练掌握二叉树的遍历之后,你会发现很多题目都是建立在遍历的基础上来解决的,

2019-08-19 15:14:29 1316 7

原创 数据结构 | C语言实现队列的顺序和链式结构

队列的顺序结构实现队列遵循的是先进先出的规则,我们使用一个定长数组和队头队尾两个指针来完成这个结构。顺序结构使用结构体来表示,如下:#define maxsize 100typedef struct { int data[maxsize]; // 定长数组存放队列元素 int front, rear; // 队头队尾指针}Queue;我这里实现的队列,front指针是一个队头结...

2019-07-26 20:46:26 265

原创 数据结构 | C语言实现堆栈的顺序和链式结构

顺序栈的实现采用顺序存储的栈称为顺序栈,它是利用一组 地址连续的存储单元存放自栈底到栈顶的数据元素,同时附上一个标志top指示栈顶的位置。这里使用结构体来表示栈。#define maxsize 100typedef struct stack{ int data[maxsize]; int top;}stack编码前,我们需要明白几个操作状态。栈空:top = -1,-1 同时...

2019-07-26 20:26:35 174

原创 数据结构 | C语言实现线性表的顺序和链式结构

线性表的顺序表示线性表的顺序表示,是通过构造一个结构体实现的。结构体内包含一个定长数组和一个顺序表的长度。一维数组可以是静态分配或者是动态分配的。这里使用的是静态分配的方法。代码如下:#include <stdio.h>#include <stdlib.h>#include <stdbool.h>typedef int Position;type...

2019-07-26 20:13:17 119

原创 matplotlib绘图常用的语法【持续补充】

本博客记录个人在使用matplotlib绘图时的一些解决方案,以作备忘。1. 横坐标标签过长,考虑将标签旋转我们仅仅需要利用接口xticks即可。plt.xticks(rotation = 10) # 10 代表旋转的角度""" draw histgram """def drawBarPlot(model_list, data_list, y_label, save_path, t...

2019-06-29 16:17:50 115

原创 pytorch学习 | 如何统计数据集的均值和标准差?

我们在使用模型训练之前一般要对数据进行归一化(Normalize),归一化之前需要得到数据集整体的方差和均值,这里提供了一个简单计算数据标准差和均值的接口,方便大家使用。def get_mean_std(dataset, ratio=0.01): """Get mean and std by sample ratio """ dataloader = torch.util...

2019-06-29 13:34:12 4440 6

原创 React 学习 | 常见的反模式和组件设计原则总结

在软件开发中,反模式被认为是糟糕的编程实践的特定模式。在React组件开发中,我们可能会不小心地陷入反模式的陷阱,编写一些违背编程框架和思想的代码。了解一些常见的反模式,有助于我们避开这些错误,增进对React这一个框架工作原理的理解,正确的掌握React开发的方法。而了解一些常用的组件设计原则则有助于增强我们的代码设计水平,编写更加漂亮和高效的代码。本文结合个人项目实践,对常见的几种组件反...

2019-06-24 20:40:54 292

原创 react 学习总结 | 函数式组件中必知必会的条件渲染和遍历渲染

在 React 中,常常会遇到各种数据驱动组件渲染的情况。不同的数据表示不同的组件状态,我们需要根据应用的不同状态,只渲染对应状态下的组件内容,这就是所谓的条件渲染。在个人近期的项目经验中主要遇到以下几种常见的 react jsx 在内联条件渲染,主要包括以下三种:与运算符&&实现元素是否需要渲染;三目运算符 ? 实现if-else条件渲染;返回null 实现阻止条件渲染...

2019-06-24 00:10:43 1494

原创 pytorch 学习 | 多GPU存储模型及加载参数文件的坑(Error(s) in loading state_dict for DataParallel)

个人使用pytorch的时候需要用到多GPU运行,简要说明一下应用情景:单GPU不够用,你需要将模型存储在多个GPU上;当模型初始化后运行在多个GPU上,你要加载dict模型参数文件。第一个情景,我们使用 nn.DataParallel 来解决,直接上例子:# 使用nvidia-smi查看可用的设备CUDA_DEVICE_1 = 0 CUDA_DEVICE_2 = 1# 模型初...

2019-06-17 20:17:22 1885 1

原创 visualdata: 一个强大的 CV 数据集搜索引擎

我们比较常用的数据集搜索引擎,就是google dataset search。但是检索体验并不是很好。这天,偶然在reddit上发现了这么一个网站,专门汇集CV相关的数据集,你可以快速找到CV各类任务的数据集。网站为:https://www.visualdata.io/网站页面如下:你可以选择相应的任务,快速找到相关的数据集,相当强大!...

2019-06-08 02:52:14 505

原创 pytorch 学习 |梯度截断 gradient clip 的简单实现

在训练模型的过程中,我们有可能发生梯度爆炸的情况,这样会导致我们模型训练的失败。我们可以采取一个简单的策略来避免梯度的爆炸,那就是梯度截断Clip, 将梯度约束在某一个区间之内,在训练的过程中,在优化器更新之前进行梯度截断操作。整个流程简单总结如下:加载训练数据和标签模型输入输出计算loss函数值loss 反向传播梯度截断优化器更新梯度参数pytorch 代码如下:def ...

2019-06-07 20:25:57 7549 1

原创 LFWA+ 人脸属性数据集下载地址 【Google Drive】

如果你在做人脸属性多标签分类的相关项目,那么你必然绕不开两个数据集,CelebA,另外一个是就是LFWA+数据集了。这两个数据集来源是这篇论文:@inproceedings{liu2015faceattributes, author = {Ziwei Liu and Ping Luo and Xiaogang Wang and Xiaoou Tang}, title = {Deep Lea...

2019-06-03 21:32:03 1439 1

原创 如何简单破解 google drive 谷歌云盘下载文件限额

下载一些google drive上的大文件或者数据集的时候,我们通常会遇到一个问题就是:解决的办法其实很简单,就三步。右键点击文件,添加星标。在已知星标中,找到文件。右键点击文件复制,建立副本。3. 然后就可以下载副本文件,绕开文件限额啦。...

2019-06-03 21:31:19 27669 9

原创 git 操作问题清单 | 删除大文件,版本回退,pull合并....

在进行git命令行交互操作的时候,偶尔会遇到一些比较棘手的问题,花费了较多时间来解决它们,写这篇博客,也相当于记录一些这些常见的问题以及个人搜索到的解决办法,下次遇到就可以直接定位使用,减少不必要的时间浪费。删除大文件我们一般不向仓库存储大文件,这样会导致整个仓库clone,push过程比较缓慢和痛苦,如果不幸提交了大文件,那么我们可以通过以下一行命令来清除历史记录中的大文件。git fi...

2019-05-29 23:55:11 656

原创 深度学习 | 优质的深度学习资源(DL、ML、CV、paper、blog、比赛....)

优质课程CS231n :http://cs231n.github.io/【英文】 斯坦福大学李飞飞教授主讲,几乎是CV入门必看。网易云吴恩达coursera机器学习课程:https://study.163.com/course/introduction/1004570029.htm【英文】学习深度学习也需要了解常见的机器学习知识滴!几乎是DL入门必看!DL大神李沐在伯克利...

2019-05-23 20:17:25 220

原创 10 个 python可视化实例 | 基于matplotlib & seaborn

title: 10 个 python可视化实例 | matplotlib & seaborndate: 2019-02-17 17:08:32tags:python数据可视化本文主要介绍了 10 种常用且易于上手的可视化方法,基于python3.7实现。主要使用了两个图形可视化库,matplotlib & seaborn。这两个库的图形效果有细微差别,matplo...

2019-05-23 01:27:37 673

原创 pytorc实战 | Helen人脸解析数据集加载使用

最近在做人脸相关的任务,涉及到了这个 Helen人脸解析数据集,发现在网上关于该数据集的介绍很少,并且难以找到直接可用的数据加载方式,在这里记录以下,希望能帮助到大家。Helen数据集下载Helen数据集原本是用于人脸特征点任务的数据集,不过在13年的CVPR一篇论文将它应用于人脸解析分割任务,在原来数据集的基础上进行了手工标注。相关链接如下:Henlen dataset: face-pa...

2019-05-21 19:37:44 1637 9

原创 pytorch 学习 | 使用pytorch动手实现LSTM模块

LSTM 简介LSTM是RNN中一个较为流行的网络模块。主要包括输入,输入门,输出门,遗忘门,激活函数,全连接层(Cell)和输出。其结构如下:上述公式不做解释,我们只要大概记得以下几个点就可以了:当前时刻LSTM模块的输入有来自当前时刻的输入值,上一时刻的输出值,输入值和隐含层输出值。所谓的门就是前一时刻的计算值输入到sigmoid激活函数得到一个概率值,这个概率值决定了当前输入的...

2019-05-17 21:15:31 3233 16

原创 pytorch学习笔记 | Focal loss的原理与pytorch实现

Focal 原理简述Focal loss是一个针对单阶段物体检测正负样本不均衡而提出来的损失函数,论文地址来自arxiv先放focal loss(FL)和cross entropy(CE)两个函数的数学定义。可以看到focal loss的设计很简单明了,就是在标准交叉熵损失函数的focal loss 称为焦点损失函数,通过改进标准的二元交叉熵损失函数来控制对正负样本的训练,为了解决在on...

2019-05-17 20:19:43 2103 1

原创 pytorch 速记 | squeeze,unsqueeze, cat,stack, view 常见用法

在实际使用中老是忘记这些和维度相关操作的API用法,在这里记录一下,作为备忘。unsqueezeunsqueeze指定某一个维度(如0),然后在该维度再插入一个维度,一般用来增加维度,尺寸只能为1。从以下代码可以看出,经过unsuqeeze之后,tensor的尺寸在0的位置多了一个1。In [2]: a = torch.tensor([1,2,3]) ...

2019-05-13 22:23:34 217

原创 wget方式下载MS COCO数据集

最近正在做实例分割的项目,需要下载MS 2017 的COCO数据集,但是呢,直接从官网上下载,速度较慢(需要fq),用迅雷更是完全不行滴。翻遍整个CSDN(误),都没有找到合适的下载源。最后在github上找到以下的方法来下载标签文件,图片文件,特此分享给大家。在linux 终端中,新建下载脚本。vim coco.sh使用 wget 的方法获取2017的数据集。#!/bin/sh复...

2019-05-11 19:29:26 2900 4

原创 pytorch 实战 | 动手设计CNN+MNIST手写体数字识别

文章目录前言引入库函数预设超参数加载数据集设计CNN训练前准备训练模块预测模块运行结果总结前言相信对于每一个刚刚上手深度学习的孩子来说,利用mnist数据集来训练一个CNN是再好不过的学习demo了。本文使用 pytorch 来动手搭建一个卷积神经网络来训练和预测手写数字。通过本文,你将了解到pytorch的一些功能:高效加载数据集;简单灵活设计神经网络;各种学习优化器(一...

2019-03-15 13:10:28 585 3

原创 pytorch 入门笔记 | 谈谈pytorch的框架特色

pytorch 可以说是深度学习入门首选的框架,语法特点特别接近numpy,上手简单。作为一门流行的框架,总有它流行的原因,笔者认为这是pytorch框架的一些特色所决定的,以下内容来源笔者在入门学习中的体会,因此作文总结。近期我简单入门了一下深度学习,对 pytorch 有了一定的掌握和认识,不得不感慨 pytorch 大法好,对深度学习新手特别友好,和numpy有着相似的语法特点,但有...

2019-03-04 00:40:52 546

原创 LaTex 常用数学公式符号速记

公式LaTex的行内公式和行间公式区别如下:\usepackage{amsmath} % 此处引入数学公式的包% 行内公式This is an inline formula. $a = \sqrt{b + c}$.% 行间公式, 带编号\begin{equation}E = mc^2\end{equation}以下均以行内公式呈现。数学公式类型例子LaTex...

2019-01-21 22:54:12 893

原创 美赛论文Latex简易模板 | 快速上手(附注释)

最近又是一年一度的美赛备战期(2019),想必会有许多萌新(包括我)正在积极地备战中。其中重要的一环想必就是上手Latex,照着往年O奖论文打出一份框架模板,掌握经常用到的Latex语法。了解基础用法之后,再按照实际需要进行扩展,这样学习成本就会比较小,有更多的时间去琢磨写作,模型方面。本博文仅面向新手,大神勿喷!废话不多说,快速进入正题。 LaTex编写工具这里强烈推荐使用在...

2019-01-19 19:50:35 10325 11

原创 使用OpenCV3.4的SVM实现mnist手写体的训练和预测

最近在用C++做手写体识别,踩了许多坑。。网上使用SVM的教程遇到的都比较坑,看了半天没怎么涉及原理,而代码又比较乱,没怎么介绍,害我搞了一下午,所以就很烦,所幸最后终于找到了方法,所以想把这段比较痛苦的经历记录下来,造福后人。如果是想从本文弄懂原理的话,那比较抱歉。说明 实验环境是:VS2017 + OpenCV3.4.0+win10;关于配置OpenCV.3.4.0, 整个过程...

2019-01-04 17:17:08 916 2

原创 SVM支持向量机原理及python实现

文章目录@[toc]基本概念函数间隔kernelsoft margin & slack variableSequential Minimal Optimizationpython 实现基本概念最简单的支持向量机是一个二分类的分类器。分类思想是给定一组包含正负样本的集合,然后找到一个超平面(可以是一维或者多维),来对正负样本进行分割。该方法对于解决小样本,非线性,及高维模式识别中表现出...

2018-12-24 22:58:28 1149

原创 K近邻算法原理及python简单实现

基本概念k 近邻算法是一种经典且简单的机器学习算法之一,用于分类和回归。在本文只探讨分类问题中的 k 近邻法。k 近邻算法是一种少数服从多数的思想。给定一个训练数据集,数据集中的每一条数据都由一个特征向量表出如(x_1, x_2…),每一条数据对应一个类别即标签。我们输入一个新数据的向量到该数据集中,我们找到与该实例最邻近的 K 个实例,这K个实例中的多数属于某个类, 那么我们就把该输入实...

2018-12-24 22:55:22 134

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