
Python
文章平均质量分 97
sooner高
DeepFaceLab作者, Tensorflow & PyTorch contributor,深度学习小学生
展开
-
[经典的图像warping方法] Thin Plate Spline: TPS理论和代码详解
本文的目标是详细分析一个经典的基于landmark(文章后面有时也称之为控制点control point)的图像warping(扭曲/变形)算法: Thin Plate Spine (TPS).TPS被广泛的应用于各类的任务中, 尤其是生物形态中应用的更多: 人脸, 动物脸等等, TPS是cubic spline的2D泛化形态.原创 2023-01-21 10:43:20 · 11614 阅读 · 8 评论 -
深度学习之风格转换——Style Transfer
最近在学习CS20课程——一门讲述tensorflow应用的实践性课程,正好Assignment2讲到了Style Transfer这个东西,这里把我的理解总结一下(代码基于Tensorflow)。代码: chiphuyen/stanford-tensorflow-tutorials/assignments/02_style_transfer/ 论文:Bringing Impres...原创 2018-03-19 20:33:16 · 6336 阅读 · 3 评论 -
OpenCV-Python:图像的几何变换(平移、旋转、仿射变换等)
本文转载自斗大的熊猫,仅供学习使用缩放变换缩放就是改变图像的大小,使用cv2.resize()函数。图像的大小可以手动指定,也可以使用缩放比例。cv2.resize()支持多种插值算法,默认使用的是cv2.INTER_LINEAR(不管放大和缩小)。缩小最适合使用:cv2.INTER_AREA,放大最适合使用:cv2.INTER_CUBIC (慢) 或 cv2.INTER_LINE...转载 2018-04-17 18:17:24 · 13786 阅读 · 1 评论 -
Python-opencv3 SIFT算法做特征匹配
最近接触一个项目:根据设计师定出的psd格式文件(photoshop),生成不同尺寸的海报。这里面牵扯到了尺度不变而对特征做变换的问题。这里简单介绍一下SIFT的概念,并知晓如何找到SIFT中的Keypoints和Descriptors,最后展示一个Demo。简介SIFT(Scale-invariant feature transform),也叫尺度不变特征变换算法,是Davi...原创 2018-04-13 17:51:39 · 37024 阅读 · 17 评论 -
python利用lxml读写xml格式文件
本文转载自利用lxml读写xml————Arkenstone 之前在转换数据集格式的时候需要将json转换到xml文件,用lxml包进行操作非常方便。1. 写xml文件a) 用etree和objectifyfrom lxml import etree, objectifyE = objectify.ElementMaker(annotate=False)anno_...转载 2018-07-24 13:47:21 · 2454 阅读 · 0 评论 -
Advanced Python(1)——装饰器(Decorator)
装饰器,作为Python中的一个非常重要的功能,在web系统,日志打印等领域中有着很广泛的应用,比如Flask和Django框架的代理机制就是使用了装饰器。这里,我将总结《Expert Python Programming》第2版的装饰器部分我认为重点的内容,并配合例子进行说明。1、Python的装饰器(Decorator)是什么?Python装饰器,简单来讲,就是使函数包装和...原创 2018-07-13 12:19:38 · 1071 阅读 · 0 评论 -
Pycharm之远程代码编辑
我们经常会有这样的情况:在本地IDE编辑代码,然后把代码通过svn或者git等工具,甚至是直接scp等拷贝到服务器上来跑。 但是,对个人项目,有些不需要版本管理工具(或者说,加了版本控制工具会变得更复杂,毕竟只是给自己用的),那么怎么办呢?最近发现Pycharm除了svn和git等版本控制工具以外,本身还提供了一个Deployment工具,可以直接整合上述流程,将本地代码和服务器...原创 2018-08-16 11:12:26 · 3895 阅读 · 0 评论 -
Nevergrad: 一个Facebook发布的derivative-free的开源优化工具包
本文翻译自Olivier Teytaud等人于2018年底发布在code.fb.com上的一篇文章Nevergrad: An open source tool for derivative-free optimization . Nevergrad是一个新颖的东西, 按开发者的意思, 未来要将其纳入到对PyTorch等AI框架的支持中, 这引起了我的一点点兴趣, 下面开始贴正文.0. 前言...翻译 2019-02-28 13:45:53 · 1671 阅读 · 2 评论 -
gRPC python封装深度学习算法教程
最近需要提供一个包含多个神经网络推理的python代码供gRPC调用,即我需要在这个主程序的基础上封装一个支持gRPC的服务端(server)。本教程的目的在于通过简单的代码,来帮助有需求的朋友使用python来构建属于自己的gRPC服务端/客户端。0. 前言最近需要用grpc调用我们的算法模块, 对于我来讲,就是需要提供一个grpc的server,供它们的go或者c++的client进行...原创 2019-05-25 11:39:39 · 6108 阅读 · 1 评论 -
PyTorch学习笔记(15) ——PyTorch中的contiguous
本文转载自栩风在知乎上的文章《PyTorch中的contiguous》。我觉得很好,特此转载。0. 前言本文讲解了pytorch中contiguous的含义、定义、实现,以及contiguous存在的原因,非contiguous时的解决办法。并对比了numpy中的contiguous。contiguous 本身是形容词,表示连续的,关于 contiguous,PyTorch 提供了is...转载 2019-05-21 23:30:20 · 6989 阅读 · 2 评论 -
2018 轻量化网络Mobilnet v2
0. MobileNet介绍MobileNet是M为移动和嵌入式设备提出的高效模型。MobileNet基于流线型(streamlined) 架构,使用深度可分离卷积(depthwise separable convolutions, 即Xception变体结构, 详细请参考干巴他爹–Depthwise卷积与Pointwise卷积)来构建轻量级深度神经网络。论文验证了MobileNet在目标检测...原创 2019-05-13 14:20:17 · 1247 阅读 · 0 评论 -
基于TensorRT 5.x的网络推理加速(python)
本文目的主要在于如何使用TensorRT 5.x的python api来进行神经网络的推理。因为目前TensorRT只支持ONNX,Caffe和Uff (Universal Framework Format)这三种格式。这里以tensorflow的pb模型为例(可以无缝转换为uff)进行说明。0. TensoRT介绍TensorRT是英伟达(NVIDIA)开发的一个可以在NVIDIA旗下...原创 2019-06-15 10:30:02 · 8138 阅读 · 7 评论 -
PyTorch学习笔记(16)——编写你自己的PyTorch kernel(基于PyTorch1.2.0)
在前一阵看过PyTorch官方核心开发者Edward Z, Yang的在纽约举办的PyTorch NYC Meetup的关于PyTorch内部机制的讲解。从通过strides指定逻辑布局,tensor wrapper到autograd机制以及对PyTorch内部最重要的几个基本代码模块的扼要说明,让人受益匪浅。其中,在PyTorch写kernel是一个非常让人兴奋的内容,作为一个contribu...原创 2019-06-25 14:55:15 · 5371 阅读 · 0 评论 -
Python——struct模块简介
最近在做视频解封装的时候,遇到了struct这个模块的使用,查阅了一些文档,现在总结一下。了解c/c++的人,一定会知道struct结构体在其中的作用:它定义了一种结构(可以理解为值类型),便于不同目的下使用时,封装新的数据类型。当传递一些复杂的数据结构的时候,需要有一种机制将某些特定的结构体类型打包成二进制流的字符串然后再网络传输,而接收端也应该可以通过某种机制进行解包还原出原始的结构体数据原创 2018-01-18 15:43:25 · 2136 阅读 · 0 评论 -
Python Numpy Tutorial——CS231n
开始学习CS231n,在Notes里面看到关于Numpy等内容的预备知识,现翻译一下此教程里,个人认为比较重要的内容在开始前,此教程的地址为:Python Numpy Tutorial. 有需要的同学可以直接查阅。NumpyNumpy是Python用于科学计算的核心库。它提供了高性能的多维度数组对象及操作数据的工具。如果你已对MATLAB比较熟悉了,那么这个教程对你开始使用Numpy会很有益处。翻译 2017-12-19 17:23:07 · 2624 阅读 · 0 评论 -
Python时间处理:datetime模块
# -*- coding: utf-8 -*- #datetime类 #datetime是date与time的结合体,包括date与time的所有信息。 #它的构造函数如下: #datetime. datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzin转载 2016-05-30 10:40:37 · 671 阅读 · 0 评论 -
Python3.5中IDLE打不开,显示IDLE‘s subprocess didn't make connection.
如果您的IDLE在之前能够正常使用,然而突然某一天发现出现了这种情况,不要着急,不要急着用百度的方法(百度的方法大都是让你改use_subprocess = False:即关闭多线程,这种方法治标不治本,而且在复杂应用中由于多线程的关闭会造成不必要的麻烦。) 这里,我的解决方案是从 Stackoverflow上面看到的:即因为你的Python所在文件(下图)里面有跟Python内部模块翻译 2016-02-19 19:00:56 · 4250 阅读 · 2 评论 -
机器学习基础——RandomForest
随机森林(Random Forest): 随机森林是一个最近比较火的算法,它有很多的优点: 在数据集上表现良好 在当前的很多数据集上,相对其他算法有着很大的优势 它能够处理很高维度(feature很多)的数据,并且不用做特征选择 在训练完后,它能够给出哪些feature比较重要 在创建随机森林的时候,对generlization error使用的原创 2017-04-19 11:43:11 · 885 阅读 · 0 评论 -
机器学习基础——梯度下降
一、概述最近看了随机梯度下降算法,虽然比较基础简单,但是在机器学习领域里面有着广泛的运用。这里将随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )进行对比。以便理解和记忆。 二、梯度下降梯度下降法: ①先随机给出参数的一组值,然后按代价函数(或者叫损失函数)的梯度方向更新参数。使得在每次更新后,结构都原创 2017-04-23 08:14:17 · 913 阅读 · 2 评论 -
0-1背包问题
今天做笔试题,看到一个用0-1背包解决的问题。什么是背包问题?背包问题,常见的有三种类型:基本的0-1背包、完全背包和多重背包、二维背包等。首先是基本的0-1背包问题。因为这里的物品一般指花瓶、玉器什么的,要么拿、要么不拿,只有0和1两种状态,所以也叫0-1背包。0-1背包虽然简单,却很重要,是“万法之源”,是其他几类问题的基础。 初学者有时会认为,0-1背包可以这样求解:计算每个物品的Vi/Wi,原创 2017-05-05 17:41:01 · 702 阅读 · 0 评论 -
Python 类中Name mangling和下划线命名
Python 用下划线作为变量前缀和后缀指定特殊变量/方法。主要存在四种情形1. 1. object # public 2. __object__ # special, python system use, user should not define like it 3. __object # private (name mangling during ru原创 2017-05-07 20:13:21 · 1391 阅读 · 0 评论 -
python神经网络实现
前言最近实习单位在搞电网数据的清洗程序改写,用到了稀疏编码器,关于稀疏编码器的原理部分,可以参见下面的文档,这里可以这么简单理解:就是通过对代价函数设置交叉熵等误差项,使得输出层和输入层是基本一致的。 但是,实际上,Sparse AutoEncoder是来源于传统神经网络的。由于要在集群上跑,对速度要求很高,而且sklearn的包的神经网络api中没有稀疏编码器,有一些如同MLPclas原创 2017-05-10 08:06:21 · 2405 阅读 · 0 评论 -
Python 让PIP源使用国内镜像,提升下载速度和安装成功率
前言学习Python,自然的就需要学会使用和安装第三方扩展包(lib),python提供了很好用的第三方扩展包的管理工具,比如easy_install和pip等,现在流行易用的是pip,pip对于python就相当于apt-get之于ubuntu,所以源地址如果使用国外的,不仅速度慢,而且经常会因为timeout超时而断掉,导致安装失败(尤其是当晚上安装一个lib,睡觉去了,早上起来发现失败,原创 2017-06-10 22:10:58 · 12864 阅读 · 0 评论 -
DFS——深度优先算法(Depth First Search)
1、前言 这几天刷leetcode经常碰到DFS BFS的问题,之前一直也是模棱两可,凭着感觉做,是需要总结一下了。深度优先搜索(缩写DFS)是一种在开发爬虫早期使用较多的方法。属于图算法的一种,也是对一个连通图进行遍历的算法。其思想是:从一个顶点vv开始,沿着一条路线一直走到底,如果发现不能到达目标,那就返回到走不通节点的上一个节点,然后尝试从另一条路开始走到底,每个节点只可以访问一次。这原创 2017-07-21 15:36:55 · 19395 阅读 · 2 评论 -
BFS——广度优先算法(Breadth First Search)
1、前言 这几天刷leetcode经常碰到DFS BFS的问题,之前一直也是模棱两可,凭着感觉做,是需要总结一下了。广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历策略。因为它的思想是从一个顶点V0V_0开始,辐射状地优先遍历其周围较广的区域,因此得名。 一般可以用它做什么呢?一个最直观经典的例子就是走迷宫,我们从起点开始,找出到终点的最短路程,很多最短路径算原创 2017-07-27 10:56:16 · 131229 阅读 · 6 评论 -
Matplotlib的中文字体显示为方块的问题
今天上午画小论文图的时候,用matplotlib画,发现如果设置中文的标题会出现方块的问题,在网上看了许多教程,可以总结为以下几个:① 每次编写代码时进行参数设置# coding: UTF-8import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axe原创 2017-08-26 11:41:24 · 6831 阅读 · 1 评论 -
OpenCV之轮廓检测(检测银行卡上的黑色磁条)
最近有需要做银行卡上黑色磁条的提取的工作。因为这是比较典型的轮廓检测问题。用DL的方法需要大量的标注数据集,所以想到用openCV来做。下面梳理一下流程:前言这篇博文的目的是应用计算机视觉和图像处理技术,展示一个银行卡上黑色磁条的基本实现。 需要注意的是,这个算法并不是对所有银行卡都有效,但会给你基本的关于应用什么类型的技术的直觉,这种感觉的积累对于解决工程问题来说,是有益的。假设我们要检测下图原创 2017-09-26 14:15:52 · 5272 阅读 · 0 评论 -
Windows7基于Python3.5安装Ipython notebook(现称jupyter)
版权声明:本文为博主原创文章,未经博主允许不得转载。 基于现在很多人对交互方便、可视化的笔记有越来越高的要求。因此,IPython notebook是一个很好的选择。我认为,这个工具不应仅仅在数据科学家和爱好者和一个专业科研工作者所使用。越来越多的新手程序员和数学爱好者也应该加入这个行列里面来。本次,先放上基于最新版本的Python3.5上来安装IPython no原创 2016-02-11 12:04:13 · 3198 阅读 · 1 评论