huachao1001的专栏

每天学习一点点,每天进步一点点...

Windows中Python与OpenCV C++之间Mat传递

1 VS2017中创建DLL项目 1.1 创建DLL项目 1.2 删除自动创建的文件 将stdafx.h、targetver.h、dllmain.cpp、MyDLL.cpp、stdafxc.pp删除。 删除后,记得要在C/C++》预编译头 中取消使用预编译头 1.3 配置OpenCV环境 这...

2019-04-08 10:08:41

阅读数 15

评论数 0

Python3.X使用Cython调用C/C++

1 创建C++代码 假设我们需要让Python调用的C++代码如下(文件名为demo.h): #ifndef DEMO_H #define DEMO_H using namespace std; namespace demo { class MyDemo { public...

2019-03-07 10:38:29

阅读数 170

评论数 0

Python3.X使用C Extensions调用C/C++

1 创建C/C++代码文件 假设我们要在Python代码中要调用如下C语言实现的mul函数将两个整数相乘,函数add将两个整数相加,创建demo_module.c,代码如下 // pulls in the Python API #include <Python.h&...

2019-03-06 16:35:27

阅读数 36

评论数 0

从Tensorflow模型文件中解析并显示网络结构图(CKPT模型篇)

上一篇文章《从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)》中介绍了如何从pb模型文件中提取网络结构图并实现可视化,本文介绍如何从CKPT模型文件中提取网络结构图并实现可视化。理论上,既然能从pb模型文件中提取网络结构图,CKPT模型文件自然也不是问题,但是其中会有一些问题。 ...

2018-11-08 20:09:58

阅读数 387

评论数 0

从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)

Tensorflow官方提供的Tensorboard可以可视化神经网络结构图,但是说实话,我几乎从来不用。主要是因为Tensorboard中查看到的图结构太混乱了,包含了网络中所有的计算节点(读取数据节点、网络节点、loss计算节点等等)。更可怕的是,如果一个计算节点是由多个基础计算(如加减乘除等...

2018-11-07 21:15:45

阅读数 652

评论数 2

Tensorflow MobileNet移植到Android

1 CKPT模型转换pb文件 使用上一篇博客《MobileNet V1官方预训练模型的使用》中下载的MobileNet V1官方预训练的模型《MobileNet_v1_1.0_192》。虽然打包下载的文件中包含已经转换过的pb文件,但是官方提供的pb模型输出是1001类别对应的概率,我们需要的是...

2018-10-23 20:18:52

阅读数 608

评论数 0

MobileNet V1官方预训练模型的使用

1. 下载网络结构及模型 1.1 下载MobileNet V1定义网络结构的文件 MobileNet V1的网络结构可以直接从官方Github库中下载定义网络结构的文件,地址为:https://raw.githubusercontent.com/tensorflow/models/master/r...

2018-10-22 21:15:03

阅读数 1412

评论数 1

MobileNet原理+手写python代码实现MobileNet

MobileNet是针对移动端优化的卷积,所以当需要压缩模型时,可以考虑使用MobileNet替换卷积。下面我们开始学习MobileNet原理,并且先通过Tensorflow函数接口实现MobileNet,再手写python代码实现MobileNet。

2018-06-30 12:58:21

阅读数 3122

评论数 0

Tensorflow反卷积(DeConv)实现原理+手写python代码实现反卷积(DeConv)

上一篇文章已经介绍过卷积的实现,这篇文章我们学习反卷积原理,同样,在了解反卷积原理后,在后面手写python代码实现反卷积。 1 反卷积原理 反卷积原理不太好用文字描述,这里直接以一个简单例子描述反卷积过程。 假设输入如下: [[1,0,1], [0,2,1], [1,1,0]...

2018-01-22 19:43:48

阅读数 6026

评论数 18

Tensorflow卷积实现原理+手写python代码实现卷积

从一个通道的图片进行卷积生成新的单通道图的过程很容易理解,对于多个通道卷积后生成多个通道的图理解起来有点抽象。本文以通俗易懂的方式讲述卷积,并辅以图片解释,能快速理解卷积的实现原理。最后手写python代码实现卷积过程,让Tensorflow卷积在我们面前不再是黑箱子! 注意: 本文只针...

2018-01-21 17:30:50

阅读数 6953

评论数 9

Tensorflow将模型导出为一个文件及接口设置

在上一篇文章中《Tensorflow加载预训练模型和保存模型》,我们学习到如何使用预训练的模型。但注意到,在上一篇文章中使用预训练模型,必须至少的要4个文件。这很不便于我们的使用。有没有办法导出为一个pb文件,然后直接使用呢?答案是肯定的。

2017-11-10 21:13:44

阅读数 6993

评论数 2

Tensorflow加载预训练模型和保存模型

使用tensorflow过程中,训练结束后我们需要用到模型文件。有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练。这时候我们需要掌握如何操作这些模型数据。看完本文,相信你一定会有收获!

2017-11-10 19:07:16

阅读数 44906

评论数 19

TensorFlow中的队列

在上一篇文章中,虽然最终运行结果正确, 但是在运行结果最后报了一个错误: _1_input_producer: Skipping cancelled enqueue attempt with queue not closed 这主要是主线程已经关闭,但是读取数据入队线程还在执行入队。这篇文章转...

2017-09-25 11:10:01

阅读数 2980

评论数 0

TensorFlow读取数据

本文介绍如何使用TensorFlow来读取图片数据,主要介绍写入TFRecord文件再读取和直接使用队列来读取两种方式。假设我们图片目录结构如下...

2017-09-23 16:22:49

阅读数 1479

评论数 0

OpenCV 3.2.0 + opencv_contrib+VS2017

首先本文假定你的电脑已经配置好了OpenCV3.2.0,并且想要在此基础上,添加opencv_contrib。在学习图像识别中的特征点检测和匹配时,需要用到一些常用的算法如FREAK、Surf和Sift算法等,但从OpenCV3以后,这些常用的算法OpenCV的Release版本中并不存在,因为他...

2017-08-02 20:25:46

阅读数 2740

评论数 4

IntelliJ IDEA平台下JNI编程(五)—本地C代码创建Java对象及引用

本文学习如何在C代码中创建Java对象和对象数组,前面我们学习了C代码中访问Java对象的属性和方法,其实在创建对象时本质上也就是调用构造函数,因此本文知识学习起来也很轻松。有了前面学习数组创建的方法后,C代码创建对象数组同样很容易,下面开始学习吧~

2017-03-23 19:37:47

阅读数 5359

评论数 1

IntelliJ IDEA平台下JNI编程(四)—本地C代码访问JAVA对象

本文主要针对C代码中访问JVM中对象的普通变量、静态属性、普通函数、静态函数进行举例讲解,通过本文的学习将进一步理解JNIEnv在本地代码和Java之间的重要性。有了前面几篇文章的基础,学习起本文来将更容易。好了,接下来往下学习吧~

2017-03-22 21:29:51

阅读数 1734

评论数 0

IntelliJ IDEA平台下JNI编程(三)—字符串、数组

在前面HelloWorld篇中,自动生成的头文件对本地方法声明的形参列表中的第一个参数即为JNIEnv *。那么JNIEnv到底能用来做什么?初学JNI的时候并没有太在意,只满足于Java能调用C代码就行,而并没有深究。今天这篇文章将学习JNI本地函数中如何与Java代码中的字符串、数组相互访问(...

2017-01-13 19:11:01

阅读数 1688

评论数 1

IntelliJ IDEA平台下JNI编程(二)—类型映射

这篇文章是直接从《The Java™ Native Interface Programmer’s Guide and Specification》中整理,可以前往http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTO...

2017-01-12 17:08:11

阅读数 1358

评论数 0

IntelliJ IDEA平台下JNI编程(一)—HelloWorld篇

JNI(Java Native Interface),出于学习JNI的目的,为了能够更方便快速地运行程序。本文的是在IDEA中进行,而不在AndroidStudio,这样能够对NDK的工作过程有个更深刻的认识,同时也能对JNI的原理有更深的理解。虽然本文是HelloWorld篇,但是其中涉及到很多...

2016-12-30 11:30:10

阅读数 17691

评论数 14

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