軒轅阁

窩還沒有想好標題...

TensorRT就是个深坑

TensorRT means trouble

一. 坑 trt如果只是用于普通的模型转换那么文档中的API说明应当是足够用的,给的示例也足够丰富,但是trt并不是任何操作都支持的啊,那不支持的操作你要么就要用已经有的方法绕过,要么就是自己去实现,而这个就会涉及到trt的插件编写,那么trt的官方文档在插件这块描述的就不足够,给的例子也比较偏,偏主要是偏在插件的例子都是基于模型转换的,没有自己手动写网络的例子,于是自己写网络该怎么样用插...

谈谈Android里的getpixels

Talking about getPixels in Android

一. 事故 最近搞了一下Android的工程方面的东西,然后遇到一个坑,就是在用getPixels方法的时候,拿到的图片像素值中alpha通道的值不正确,全是255,后来翻了一下源码, 发现会调一个native的getPixels方法,然后就没有深入调研了,等有时间再跟。大致就是本来应该是alpha为0的值,但是使用getPixels之后,该点的像素值为-16777216, 而-16777...

谈谈upsampling

Talking about upsampling

一. 背景 超分,GAN,这些神经网络或多或少都会涉及到上采样的步骤,也就是upsampling,最近也在看相关的资料,发现有一个总结得还比较好,就是Super-Resolution这篇文章,其主要概括了当前在做超分的一些方法,包括传统和深度的方法,以及它们的对比。这其中就会涉及到upsampling的过程。传统的方法往往是在opencv,PIL的API中可以看到的什么NearestNei...

tensorflow以及pytorch的c++部署化

Deploy Tensorflow and Pytorch using C++

一. Tensorflow 最近研究量化的时候有关注到tflite,于是尝试将模型转换成tflite模型然后丢到c++里跑,其中遇坑无数,首先在tflite官方的文档中指出有两种做量化的方式,其一是Post-training quantization,其二是Quantization-aware training,然后官方文档就轻描淡写地通过放置各种链接把我彻底给搞晕了,然后在各种githu...

跟着Distiller复习工厂模式

Follow Distiller, and you will konw what is factory-method

一. 前奏 3月了,最近跟“前奏”这个词打交道很多,所以来说说最近,最近在看python的distiller框架,这个框架是做模型压缩的,所以同样我们不看模型压缩而是来看看里面涉及到的工厂模式,我觉得还蛮有意思的,主要好久不看设计模式了,所以也顺便复习一下,好的,快点开始快点结束吧。 二. YAML 在distiller中,各种模型压缩方法都通过配置文件来方便用户编写,这里使用的是YA...

在Android设备上使用OpenCV做透视矫正(一)

Perspective Correction on Android Part1

一. 整体框架 跨年回来,终于感觉可以有点时间写点什么东西,于是把折腾了一阵子的一个用OpenCV搞的东西拿出来记录一下,搞这个的目的一是发现有的P图应用里面连个透视矫正都没有还P个什么图,看着不别扭么,另外一个原因就是对Adobe家的自动矫正技术还蛮好奇是怎样实现的,于是整个工程的整体框架基于github项目OpenCV_native ,该项目主要介绍了在Android中接入使用Open...

年底的焦虑

End-of-year anxiety

一到年关,莫名各种焦虑就会突然涌进脑子,加之在四季中平均温度最低的冬季,情绪地泛滥可能会来得越发凶猛一些吧, 回首这半年,也是喜忧参半, 什么毕业,什么工作,什么生活,什么室友,什么学习,什么感情,什么友情,什么成长… 嗯,哪里有什么成长,不存在的, 有时候感觉过得明明白白,但仔细一想还是一团糟的样子, 然后发现时间这东西真是不够用,一天24小时恨不得能掰成2400小时来用,可能还...

Vim 与中文输入法

Using Vim with non-english input method

Update: 我最后还是放弃在 Vim 模式下输入中文了,mental model 的 cost 太重了( 我相信很多中文世界的 Vimer 都遇到过这个烦恼,在 vim 的 insert 模式时可能突然想输个中文,输完之后会本能的直接 esc 接 normal 模式操作,结果发现跳出来的是中文输入法……对于 vscode,我一般会在几次错误之后被逼到退出 vscode vim...

Avoiding success at all cost

Watching "Escape from the Ivory Tower: The Haskell Journey"

“Avoiding success at all cost” is the informal motto behinds Haskell. It could be parenthesized in two ways, either “Avoiding (success at all cost)” or “(Avoiding sucess) (at all cost)”. I’m not going to interpret them directly but rather to share some thoughts on “the success vs. costs” basing ...

程序员中的梦想家

Dreamers among programmers

本文首发于我的知乎专栏 The Little Programmer,转载请保留链接 ;) 有一类程序员是 visionary 型的,为了实现一些超前的 idea,绕过某些技术的限制,他们写的 code 晦涩高深得只有他们自己能懂,做出来的 tool 看上去很美好结果处处是坑出了 bug 根本没法查,但正是这类人不断创造出新的东西,在洗礼之后成为一个个 big thing。 我每周...