- 博客(64)
- 资源 (2)
- 收藏
- 关注
原创 ONNX Runtime 源码阅读:模型推理过程概览
简介ONNX Runtime是一个用于ONNX(Open Neural Network Exchange)模型推理的引擎。微软联合Facebook等在2017年搞了个深度学习以及机器学习模型的格式标准–ONNX,顺路提供了一个专门用于ONNX模型推理的引擎,onnxruntime。目前ONNX Runtime 还只能跑在HOST端,不过官网也表示,对于移动端的适配工作也在进行中。一半处于工作需...
2020-01-14 18:15:01
13813
6
原创 Git submodule - Git子模块简介
目录建立仓库1.1 创建主仓库1.2 创建子仓库提交内容2.1 提交到主工程的仓库2.2 提交到子模块的仓库克隆带子模块的仓库到本地更新子仓库总结参考文档正文软件开发中有一个DRY(Don’t Repeat yourself)原则,或者说DIE(Duplication Is Evil)原则,指的是尽可能减少一切重复工作,重用一切可能重用的东西,小到提取重复性代码,大到重...
2019-11-10 17:29:17
688
原创 使用C语言编写Python模块-引子
为什么要用C语言写Python模块,是Python不够香么?还是觉得头发还茂盛?都不是。因为C语言模块有几个显而易见的好处:可以使用Python调用C标准库、系统调用等;假设已经有了一堆C代码实现的功能,可以不用重写,岂不美滋滋;性能?也算;其他一些好处。注:以下代码基于Python3。开局举个栗In a nutshell,用C编写Python模块就是下面几步:准备工作#in...
2019-11-07 17:14:54
2508
原创 FlatBuffer内部解析原理简介
简介Flatbuffer 是一个高效的跨平台、支持多种语言序列化数据的库。最初由谷歌为游戏开发而开发的,现在也用于多种对性能要求严苛的应用中。FlatBuffer有以下优点(直接翻译官网文档,详细介绍看这里):可不需要解析、拆包,而直接访问序列化后的数据;内存利用率高以及读取速度快;灵活性;生成代码量小;强类型;使用方便;代码跨平台无其他依赖。关于使用方法就不多介绍了,对于源...
2019-11-05 19:33:00
7409
1
原创 Python with 表达式详解
编程中,在我们使用系统资源的时候,如需打开一个文件用于读写,加锁确保线程安全,在使用完成后需要关闭该文件,释放我们所占用的资源。通常,我们可以将其封装在一个try...except...finally语句块中,这样能够确保在运行产生错误的情况我们也能释放相关资源。但每次都要记得手动关闭,着实麻烦。毕竟懒是是第一生产力,有没有更简便的写法?答案是:有。Python提供了一个with表达式,只要将相...
2019-01-25 17:36:21
613
原创 WSGI(Web Server Gateway Interface) IN A NUTSHELL
WSGI(Web Server Gateway Interface)既不是一个服务器,也不是一个Python模块或者框架,它是是服务器和Python 开发的web应用程序之间的一个接口标准。该标准包含了两方面:一面是服务器需要实现的,另一面是应用需要是实现的。关于它的详细介绍可以参看PEP 3333。下面对WSGI做个简单标准做个很简单的介绍以及使用Python的一个WSGI内建实现一个WSGI...
2019-01-10 17:25:33
227
原创 TensorBoard:服务器启动流程
在之前的文章模型可视化:TensorBoard:模型解析流程中介绍了关于TensorBoard对于Event文件的解析过程。今天就接着说说,在Event文件解析完成之后,TensorBoard是怎么启动服务器来提供访问能力的。TensorBoard自带一个服务器,即Werkzeug。用于对前端提供服务。Werkzeug是一个Python功能全面的WSGI web app库。Werkzeug是德语...
2019-01-10 17:12:27
857
原创 TensorBoard:模型解析流程
当我们需要查看模型文件如.pb, .meta等的结构的时候,需要先根据model生成event文件。在生成event文件之后,通过命令行执行tensorboard --logdir=[event dir]即可启动TensorBoard服务,其中命令中中括号内表示event文件所在目录。那么我们来看看,event文件是怎么一步一步呈现出来的。首先来看一下整个event文件解析流程的时序图:上图...
2019-01-10 17:06:59
2442
原创 JS的奇妙旅程:var与let
当初Brendan Eich发明JavaScript的时候,只用了10天,比上帝创造人类差不了多少。在如此短的时间内创造一门新的语言,设计上的缺陷无可避免(当然其他语言或多或少都会有)。其中一个就是声明变量的关键字var。var用于声明一个变量,该变量的作用范围是整个函数范围内,或者是全局的。例如如下语句:// case 1 function func() { var v = 'he...
2019-01-10 16:41:41
643
原创 Python爬取摩拜单车位置信息
0x00 获取请求头1. 设置Fiddler到Fiddler官网下载最新版Fidder,然后安装。接下来对其进行设置。点击【Tools->Options…】打开设置面板。选择【HTTPS】选项卡,将【Decrypt HTTPS traffic】勾上; 选择【Connections】选项卡,将【Allow remote computers to connect】勾上,保存退出...
2018-03-22 20:37:11
4268
1
原创 Python更换Windows壁纸,问题与解决方案
SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath, 1+2) 另一个程序正在使用,无法访问;pywintypes.error: (0, 'SystemParametersInfo', 'No error message is available')pyinstaller python更换Windows壁纸 beautifulsoup
2017-09-02 15:46:00
2442
原创 Java 网络编程时序问题
这其中,第8步 ***必须*** 在第7步,否则数据是无法传输到服务端的.因为在使用`getOutputStream()` 的同时,会将`getOutputStream()` 获取的输出流关闭,这就造成实际上并没有把数据写出去,因此服务器端自然无法接收到数据.Java 编程服务端接收不到客户端消息;Java 网络编程时序问题.
2017-04-24 16:52:52
699
原创 Ubuntu 下同局域网主机访问Tomcat 服务器
Ubuntu环境下Tomcat的搭建以及配置,让其他主机可以访问Tomcat服务.搭建Tomcat环境自己写些小应用,需要用到服务器,便在Ubuntu环境下搭建了个Tomcat服务器.
2017-04-23 09:58:07
1777
原创 百度地图API & 高德地图API 使用问题汇总
百度地图API & 高德地图API 使用问题汇总registerLocationListenerregisterLocationListener问题.高德地图鉴权失败问题SDKInitializer.initialize() NullPointerException 问题设置地图填充颜色问题
2017-04-12 11:32:17
2886
原创 Android扫雷:JSON 解析java.lang.IllegalStateException: Expected a name but was NUMBER 原因及解决方案
Android上JSON解析java.lang.IllegalStateException: Expected a name but was NUMBERFJSON 的原因和解决办法.(JavaScript Object Notation),是一种轻量级的数据交换格式,不仅易于程序生成和解析,人也很容易看懂,并且不依赖于具体的语言,所以适用范围很广.
2017-04-11 21:05:15
5364
原创 Java class 各种区别?一张图就够了
初学Java类的时候,有很多概念不清楚–外部类,内部类,静态嵌套类……等等一堆词语,都是干啥的?有啥区别?很不明白.专门花了一下午的时间,到自己写程序的时候,毫无信心.什么时候改用啥,甚是恐慌.因此专门花了一下午的时间,将The Java™ Tutorials ->Classes and Objects 仔细读了一遍,并做了些梳理与总结. 总的来说,Java中各种类的关系和特点可以用下面的图来表示
2017-04-05 17:11:05
704
原创 Ubuntu 下搜狗输入法无法输入中文解决方法(赠福利)
搜狗输入法在Ubuntu下经常崩溃,去官方论坛发现很多人遇到这问题,并找到了解决方法. - 删除~/.config 下 的SogouPY ,SogouPY.users,sogou-qipanel这三个文件夹,重启输入法即可. - 重启方法 : kill 掉fcitx , 然后命令行输入fcitx,然后再启动qimpanel. ##### shell 脚本 #!/bin/sh #T
2017-04-04 13:33:50
1379
原创 深圳租房?看过来啊
花一个星期看Python,作为练手项目,写了个爬取某租房网站的租房信息的爬虫。目标是爬取该网站下深圳所有的租房信息,然而才爬到2000多条爬虫就趴下了。错误类型已保存日志,待开题答辩完了再做研究。 爬虫爬取的策略是由价格从低到高爬起,然后再爬取其余的。虽然爬虫挂了,当时已经爬取完了5000元以内的信息,作为简单参考,也足够了。分析思路:价格分布位置分布配套设施户型首先看看价格:其中,一千
2017-03-19 18:37:37
779
原创 Android源码阅读之——AsyncTask
我们都知道,当一个应用启动的后,通常情况下里面的组件都是属于同一进程,并且只有一个线程——主线程,也叫UI线程。它主要负责相应用户交互以及事件分发、更新用户界面等工作。因此不应该再次线程中进行耗时工作,因为一旦主线程因执行耗时工作甚至阻塞了线程,轻则用户感到卡顿,重则会使系统弹出ANR。因此,所有耗时的工作或者有可能阻塞的工作都应该放在单独的线程中进行,然后将结果显示给用户。 此外,由于Andro
2016-12-12 17:02:30
450
原创 Android源码阅读之——Handler(一)
一直以来,都对Handler不甚了解,如今花点时间自己去阅读源码,看看Handler是怎样运用的。 在系统自带的Launcher2中,就有使用Handler的,下面就看看Handler在其中的运用。任务的前半生在Launcher.java (位于packages\apps\launcher2\scr\com\android\launcher2下) 的onCreate() 方法中,会调用Launch
2016-12-05 16:52:49
401
原创 JavaScript 变量那些事儿
JavaScript是弱类型语言,定义变量用关键字var 就能声明,不像java、C++等分int,float,char 等。此外,JavaScript是解释执行的,这就让编程上与编译语言有了些差别。 最近在写JavaScript程序的时候,就遇到了一些坑。变量的生存周期不一样;变量的引用结果不一样数组的赋值方式不一样变量的生存周期我们知道,在 java 等编译语言中,变量的生存周期通常是
2016-10-22 22:13:40
319
原创 java 中的一些细节知识
将java中一些小知识点汇总,走好每一步interface不能被 static 关键字修饰;不能被 final 修饰,因为final 修饰的方法不能被子类覆写如果不添加访问修饰,默认为 public,如果接口中方法不添加访问修饰,实现的子类只能用 public 修饰,不能使用 private 或者protected,也不能使用默认的;staticstatic修饰的方法,可以覆写,但是覆写时
2016-09-22 10:59:10
305
原创 百度地图API使用的一些注意事项
registerLocationListener在调用start之后生效。在unregisterLocationListener之前,需要调用stop方法,不然再返回重新调用registerLocationListener时,会注册失败。
2016-07-21 11:34:15
761
原创 android布局嵌套问题
今天写界面,需要用到布局嵌套,即一个LinearLayout中嵌套另一个LinearLayout或其他GroupView,嵌套方法如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andr
2016-07-20 20:08:32
1112
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅