5 Sunshine_in_Moon

尚未进行身份认证

对计算机视觉,深度学习方向很感兴趣,愿意和大家分享。现在学习大规模人脸识别,人脸检测等相关工作,希望得到大家的帮助!

等级
TA的排名 1k+

symbol lookup error: xxx undefined symbol xxx

我在编译一个小工程时,编译过程并没有报错,但是在运行报了如下错误:undefined symbol N2cv3Mat20updateContinuityFlagEv。解决此类问题的思路可以从如下几个方面入手:库没有正确连接,但如果是这个问题,我们在编译时往往就会报错。库的版本不对,比如我们使用的第三方库其依赖的是OpenCV2,但是我们自己的工程使用的时OpenCV3,这时也会有这个问题。...

2019-12-09 19:04:23

OpenCV : undefined reference to cv::imread()

最近在编译一个小工程时遇到了一个OpenCV的问题,如标题所示找不到函数接口。其实,我们一般遇到“undefined reference to”的错误首先想到的肯定是相关的库没有正确连接。但是我遇到的问题要比这个奇怪的多。下面记录下我的解决思路,做个笔记防止后面在遇到相同的问题。检查库是否正确连接ldd ****.so可检查某个库的依赖情况,重点看那些找不到的库。如果我们发现某个库找不到,...

2019-12-09 14:10:25

Caffe2填坑系列(10)----编译成功,在python中使用时报”key already registered. Offending key: ImageInput“

原因:ImageInput这个Op被注册了多次,我在编写自己的.cc文件时,是以image_input.cc为模板,前面我都改成了自己Op的名字,包括REGISTER_CPU_OPERATOR(),OPERATOR_SCHEMA().唯独没有改NO_GRADIENT(),造成了上述错误。具体代码可参考core/register.h...

2019-05-20 23:11:22

Caffe2填坑系列(9)----错误提示“undefined reference to caffe2::CUDAContext::“

一般出现”undefined reference to…“的错误是找不到相应的库造成的,但我自己在编写完一个Op后编译时出现了这个问题,经过一天的查找终于找到了根源所在,知道原因后自己都无语了,原来在caffe2中文件的命名是有规则了,不能胡乱起名。我错将_op_gpu.cc,写成了_gpu_op.cc首先,看一下在image/CMakeLists.txt中的设置if(USE_OPENCV ...

2019-05-14 23:50:12

Caffe2填坑系列(8)----获得Op输入和输出blob的个数的两种方法

构造函数中,任何一个Op都是公有继承Operator,构造函数一般是 C++:Operator<Context>(def,ws),…可以看到每一个构造函数里都有一个OperatorDef的对象def,OperatorDef在protot里进行定义,主要时组着里一个Op的一些信息,我们可以调用def.input_size()或def.output_size()获得输入输出的...

2019-05-12 22:22:34

Caffe2填坑系列(7)----make时“cannot find -lopencv_dep_cudart”

在CmakeList.txt 中OpenCV之前,加上set(CUDA_USE_STATIC_CUDA_RUNTIME OFF)或则在make时make -D CUDA_USE_STATIC_CUDA_RUNTIME=OFF

2019-05-08 23:18:16

Caffe2填坑系列(6)----gcc编译报错:程序中有游离的“\357”、"\273"、"\277"等

原因一:程序中使用了中文的标点符号程序(*.c,*.h)中使用了中文的标点符号(全角),比如;,},+。改成英文的标点半角符号就行了。甚至有时候空格也会出现类似错误,删掉该空格 重新输入。vim里面做类似替换还是很容易的。如何看到报错的符号?od -c hello.c > log.txt在log中就能看到符号了原因二:文件存储格式有问题如果替换成了英文标点还出错的话,还...

2019-05-05 23:28:31

Caffe2填坑系列(5)----获取输入输出数据----CPU与GPU稍有不同

CPUconst auto& a = Input(0)获取第一个输入给a,a的类型是Tensorauto* b = Output(0)获取第一个输入的指针赋给b获取指向Tensor内数据的指针:const auto* a1 = a.template data(),需要注意两点1.data()前的template ;2、输入一般是只读,我们不希望改变起内部数据,data()返回的是...

2019-05-02 12:03:01

Caffe2填坑系列(4)----指定梯度计算时的输入和输出

class GetInterpGradient : public GradientMakerBase{ using GradientMakerBase::GradientMakerBase; vector<OperatorDef> GetGradientDefs() override{ return SingleGradientDef( ...

2019-04-29 23:43:56

Caffe2填坑系列(3)----OPERATOR_SCHEMA()

operator_schema.hNumInputs()// Functions to set the property of the operator schemas. // Sets the number of inputs, either a fixed number or a min and a max. /** * @brief A single in...

2019-04-25 23:34:41

Caffe2填坑系列(2)----获取数据或参数的方法

pad_end_(OperatorBase::template GetSingleArgument(“pad_end”,0))如果参数“pad_end”没有提供,则采用0为默认值获取Op的输入和输出const auto& X = Input(0):获取第一个输入,注意输入一般为常量类型,因为我们一般只读不更改数据。auto* Y = Output(0): 指向第一个输出,不能为常...

2019-04-24 22:23:21

Caffe2填坑系列(1)----三个头文件

已经有将近一年的时间没有写博客了。过去的一年了,学习了很多新的东西,在这里和大家分享一下,希望对你有所帮助。特别声明:我在这个系列中所使用的Caffe2,不是已经合并进Pytorch的Caffe2,而是为合并前的。这两者的差别还是很大的。今天,作为第一讲,内容可以说非常少。- #include "caffe2/core/context.h"选择是CPU或者GPU- #include "...

2019-04-19 23:29:18

Caffe To Caffe2 Python脚本caffe_translator.py详细注释

将Caffe的模型转换成Caffe2模型,官方提供了一个caffe_translator.py脚本。在此我做了详细的注释。## @package caffe_translator# Module caffe2.python.caffe_translator#!/usr/bin/env python2import argparseimport copyimport loggingim...

2019-01-06 11:20:53

对一般分类CNN的FC2层中的权值W的一点儿思考

最近又重新看了L-Softmax Loss 和 A-Softmax Loss.对对一般分类CNN的FC2层中的权值W,有了自己的一点想法,与大家分享一下。如果大家对我提出的第6,7的两个问题,有自己的想法,希望给我留言,大家相互学习。 邮箱451413025@qq.com...

2018-05-30 16:27:34

利用sklearn画ROC曲线python代码个人理解

参考链接:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.htmlhttp://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html#sphx-glr-auto-examples-model-selectio

2018-01-13 18:43:09

LMDB To Picture by Python

自己写的一个小代码,稍后会传到GitHub上,这里分享给大家!# coding: utf-8import lmdbimport numpy as npimport caffe_pb2import cv2dataDir = '***_lmdb'#lmdb文件夹env = lmdb.open(dataDir,readonly=True,lock=True)datum = c

2018-01-13 18:38:09

glog和gflags两个模块的使用实例

在Caffe中convert_imageset.cpp中有这两个模块的使用,我只是做了一点注释。我觉得学习别人的代码,是一个很好的方法。 算了废话不多说了,直接上代码吧!// This program converts a set of images to a lmdb/leveldb by storing them// as Datum proto buffers.// Usage://

2018-01-13 18:28:57

Boost-python封装Cpp代码供Python调用

好久没有写博客了,今天把自己有道云笔记上东西分享给大家。Boost::python的使用可以参考我的一篇博客,这里只列举几个简单的例子,对该篇博客的补充。封装一个单一的函数#include<iostream>#include<boost/python/def.hpp>#include<boost/python/module.hpp>#include<boost/python/args.hpp>

2018-01-13 18:18:42

Caffemodel之C++修改参数

对Caffemodel的解析,更直接的说是对protobuf的解析。对Protobuf来说最重要的有三个文件,***.proto,***.pb.h,和***.pb.cc。基本的操作流程是首先写***.proto文件,然后编译出***.pb.h和***.pb.cc两个文件,我们就可以对Protobuf进行读写和修改了。今天这里,我只想总结一下我在修改Caffemodel时遇到的一些坑,以及解

2017-12-09 15:29:31

RCNN个人的几点见解

已经有将近一年的时间没有写博客了,说来真是惭愧。最近想学习一点目标检测的东西,今天看了RCNN,请教了同事一些不懂得地方,在这里做一个简短的总结。其实,网上种总结已经非常多了,我这里只想写点我个人的理解。方便以后回归使用。废话少说,直接进入正题。1、选择候选区域的算法,论文中使用的是“selective search”,我记得很久之前看这篇论文时,我还在网上找到过这个算法的源码,跑了一下,效果

2017-11-17 19:42:40

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。