caffe matio问题

http://blog.csdn.net/houqiqi/article/details/46469981

注:如果指令行模式实在解决不了/lib/libcaffe.so: undefined reference to `Mat_VarReadDataLinear'问题,可以尝试在QT下进行训练和测试。

1, 下载matio(http://sourceforge.NET/projects/matio/)


2,,安装

$ tar zxf matio-X.Y.Z.tar.gz
$ cd matio-X.Y.Z
$ ./configure
$ make
$ make check
$ make install


2* 没有管理员权限的话
$ tar zxf matio-X.Y.Z.tar.gz
$ cd matio-X.Y.Z
$ ./configure
$ make
$ make check


在caffe 的 Makefile.config 中的INCLUDE_DIRS 中添加 matio 的 src路径, LIBRARY_DIRS 中添加 src/.libs 贴出来我的

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include  /home/baw010/houqiqi/dependencies/matio-1.5.2/src
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /home/baw010/houqiqi/dependencies/matio-1.5.2/src/.libs

3,如果你有管理员权限的话,可以直接将libmatio.so.2的路径给添加到LD_LIBRARY_PATH中,如果像我这样寄人篱下,就在shell中export一下就行了
export LD_LIBRARY_PATH=/your/path/to/libmatio.so.2

应该就完成了。。。

这次安装主要花的时间在于各种没有管理员权限所额外花费的时间。。。
Bug出现在一般情况下进行了前2步,一般caffe就能用了,而这里不行,这里make没什么问题,但是一运行就出现 libmatio.so.2不存在,然后ldd caffe.bin,

libmatio.so.2 => not found

然后我认为是依赖库的版本不一致导致的
file caffe.bin
caffe.bin: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=e211136efba4fa8c156a4c5d7b0c9640f45d2de0, not stripped

file libmatio.so.2.0.2
libmatio.so.2.0.2: ELF 64-bit LSB  shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0257ed156096e0f3a0014de932d7a4e484ac8559, not stripped

到这里就不知道该怎么办了。。。非常想运行ldconfig什么的,然而这并没有什么卵用,因为根本就没有权限。。。好多地方根本都看不了。。。
然后在google上搜了半天,大部分人都是讲版本不一致什么什么的,直到
http://stackoverflow.com/questions/16345590/ldd-says-library-isnt-found-by-compile-completes-successfully

好了,贴一个LD_LIBRARY_PATH的说明文吧
http://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=7084

LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下:

LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。

LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。

区别与使用:
开发时,设置LIBRARY_PATH,以便gcc能够找到编译时需要的动态链接库。
发布时,设置LD_LIBRARY_PATH,以便程序加载运行时能够自动找到需要的动态链接库。
GCC里的链接器的选项是 -rpath 和 -rpath-link,看了下 man ld,大致是这个意思:


GCC链接选项-L,-rpath-link和-rpath-L: “链接”的时候,去找的目录,也就是所有的 -lFOO 选项里的库,都会先从 -L 指定的目录去找,然后是默认的地方。
-rpath_link (或者 -rpath-link):这个也是用于“链接”的时候的,例如你显示指定的需要 FOO.so,但是 FOO.so 本身是需要 BAR.so 的,后者你并没有指定,而是 FOO.so 引用到它,这个时候,会先从 -rpath-link 给的路径里找。
-rpath: “运行”的时候,去找的目录。运行的时候,要找 .so 文件,会从这个选项里指定的地方去找。对于交叉编译,只有配合 --sysroot 选项才能起作用。


也就是说,-rpath指定的路径会被记录在生成的可执行程序中,用于运行时。
-rpath-link 则只用于链接时。

在 Linux 下,如果你写好了自己的动态链接库,需要在其它程序里调用,则需要让这些程序能找到这些动态链接库。如果设置不对,会出现类似如下的错误:

test: error while loading shared libraries: libexampleso.so.0: cannot open shared object file: No such file or directory

这是因为没有把动态链接库的安装路径(例如说是 /usr/local/lib )放到变量 LD_LIBRARY_PATH 里。

这时,可以用命令 export 来临时测试确认是不是这个问题:

export LD_LIBRARY_PATH=/usr/local/lib

在终端里运行上面这行命令,再运行这个可执行文件,如果运行正常就说明是这个问题。

接下来的问题是:以上做法,只是临时设置变量 LD_LIBRARY_PATH ,下次开机,一切设置将不复存在;如何把这个值持续写到 LD_LIBRARY_PATH 里呢?

我们可以在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次。我的习惯是加到 ~/.bashrc 中,在该文件的未尾,可采用如下语句来使设置生效:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

修改完后,记得关掉当前终端并重新打开一个新的终端,从而使上面的配置生效。

http://blog.csdn.net/liuxiabing150/article/details/52035621

DeepLab V2下载website:

https://bitbucket.org/aquariusjay/deeplab-public-ver2

在页面左上角clone即可

然后再依次执行下列命令:

cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired)
make all
make pycaffe
make test # NOT mandatory
make runtest # NOT mandatory

注:在make all的时候,会报错:

bug1:matio.h no such file or directory

解决方法:执行下列命令即可:

[html] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. sudo apt-get install libmatio-dev  

参考网址:https://bugs.launchpad.NET/ubuntu/+source/dynare/+bug/1537380

bug2:caffe/common.cu error: function atomicadd has already been defined

解决方法:https://github.com/vlfeat/matconvnet/issues/575

即找到/include/caffe目录下的common.cuh文件,在atomicAdd 函数的上下方添加以下code:

[html] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. #if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 600  
  2. #else  
  3. <... place here your own pre-pascal atomicAdd definition ...>注:这里即common.cuh中atomicAdd函数的定义  
  4. #endif  


For this error
ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory

I have executed this command to solve it
sudo ldconfig /usr/local/cuda/lib64


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术管理者怎样跳出“泥潭”

近几年面试了不少新人&#xff0c;当问到职业规划时&#xff0c;大多都会说先积累技术&#xff0c;然后往架构师的方向发展。这可能是技术人的一个特质&#xff0c;喜欢跟机器相处&#xff0c;沉浸在代码之中&#xff0c;而不喜欢跟人打交道。现实的情况是&#xff0c;一些中小…

你或许以为你不需要领域驱动设计

作者&#xff1a;邹溪源&#xff0c;长沙资深互联网从业者&#xff0c;架构师社区合伙人&#xff01;一犹记得刚刚参加工作时&#xff0c;是地图厂商四维图新集团旗下的一家子公司&#xff0c;主要从事规划测绘相关软件研发的公司。当时我的项目是为勘测设计院提供相对应的应用…

undefined reference to Mat_VarCreate'

我们之前所写的方法&#xff0c;发现只能在QT编译模式下解决这个问题&#xff0c;而在指令行模式下不能编译通过&#xff0c;因为QT模式基于cmake&#xff0c;而make all基于Makefile 因而我们参照DeepLab的Makefile文件&#xff1a; 发现只要将其中关于matio的内容加到我们的…

redis为什么这么火该怎么用

最近一些人在介绍方案时&#xff0c;经常会出现redis这个词&#xff0c;于是很多小伙伴百度完redis也就觉得它是一个缓存&#xff0c;然后项目里面把数据丢进去完事&#xff0c;甚至有例如将实体属性拆分塞进redis hash里面的奇怪用法等等&#xff01;原因是什么呢&#xff1f;…

Deeplab训练时候unexpected label

先说一些有意义的答案&#xff1a; https://groups.google.com/forum/#!topic/caffe-users/CLF4IZ2Tkqk You probably need to save your labels as 1 Channel png images. Where the labels are encoded with a 0-based index --> in case of voc12 you would needs 21 l…

.Net Core实现健康检查

ASP.NET Core 提供运行状况检查中间件和库&#xff0c;以用于报告应用基础结构组件的运行状况。运行状况探测可以由容器业务流程协调程和负载均衡器用于检查应用的状态。例如&#xff0c;容器业务流程协调程序可以通过停止滚动部署或重新启动容器来响应失败的运行状况检查。负载…

微软宣布加入 OpenJDK,看网上各派的热闹

微软宣布加入 OpenJDK 项目&#xff08;https://www.oschina.net/news/111036/microsoft-to-participate-in-openidk&#xff09;&#xff0c;这两天在微信公众号里面有几种论调&#xff1a;上面这些都是Javaer的观点&#xff0c;在CSharper 对这件事情的反应更奇怪了&#xff…

cannot find #include caffe/proto/caffe.pb.h

https://github.com/BVLC/caffe/issues/1761 protoc src/caffe/proto/caffe.proto --cpp_out. mkdir include/caffe/protomv src/caffe/proto/caffe.pb.h include/caffe/proto

cell操作-matlab

celldisp&#xff1a;显示所有的内容cell&#xff1a;创建空的元胞数组 cellplot&#xff1a;利用图形方式显示内容cell2mat&#xff1a;将数组转变成为普通的矩阵 mat2cell&#xff1a;将数值矩阵转变成为cell数组num2cell&#xff1a;将数值数组转变成为cell数组cell2struct&…

这6点解释了罗永浩为什么要卖艺

01是的&#xff0c;我们的‘老赖又上热搜了。&#xff08;ps:还是传统的语法&#xff0c;换了个人而已&#xff0c;味道有点改变&#xff09;11 月 3 日下午&#xff0c;罗永浩因锤子科技的 375 万欠款被江苏丹阳法院限制高消费&#xff0c;他不得乘坐飞机头等舱、软卧、高铁等…

微软发布研究报告:企业数据管理普遍混乱,揭秘大数据分析趋势以及PowerBI的崛起机遇...

本文非常重要&#xff0c;忽略者责任自负。我们时常看到很多新闻说企业的数据分析或大数据如何如何高大上&#xff0c;但你自己感觉你自己所处的环境呢&#xff1f;很多小伙伴在群里真切的抱怨到&#xff1a;感觉是一坨祥云。为什么你看到的和你感受到的有如此巨大的反差&#…

目标跟踪-粒子滤波算法

http://blog.csdn.net/hujingshuang/article/details/45535423 前言&#xff1a; 粒子滤波广泛的应用于目标跟踪&#xff0c;粒子滤波器是一种序列蒙特卡罗滤波方法&#xff0c;其实质是利用一系列随机抽取的样本&#xff08;即粒子&#xff09;来替代状态的后验概率分布。在此…

Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装

Magicodes.Pay&#xff0c;打造开箱即用的统一支付库&#xff0c;已提供ABP模块封装简介Magicodes.Pay&#xff0c;是心莱科技团队提供的统一支付库&#xff0c;相关库均使用.NET标准库编写&#xff0c;支持.NET Framework以及.NET Core。目前已提供Abp模块的封装&#xff0c;支…

在.NET Core 3.0中发布单个Exe文件(PublishSingleFile)

假设我有一个简单的“ Hello World”控制台应用程序&#xff0c;我想发送给朋友来运行。朋友没有安装.NET Core&#xff0c;所以我知道我需要为他构建一个独立的应用程序。很简单&#xff0c;我只需在项目目录中运行以下命令&#xff1a;dotnet publish -r win-x64 -c Release …

python import 问题

https://my.oschina.net/leejun2005/blog/109679 python中&#xff0c;每个py文件被称之为模块&#xff0c;每个具有__init__.py文件的目录被称为包。只要模块或者包所在的目录在sys.path中&#xff0c;就可以使用import 模块或import 包来使用。 如果想使用非当前模块中的…

.NET如何写正确的“抽奖”——数组乱序算法

.NET如何写正确的“抽奖”——数组乱序算法数组乱序算法常用于抽奖等生成临时数据操作。就拿年会抽奖来说&#xff0c;如果你的算法有任何瑕疵&#xff0c;造成了任何不公平&#xff0c;在年会现场 code review时&#xff0c;搞不好不能活着走出去。这个算法听起来很简单&#…

maximum mean discrepancy

http://blog.csdn.net/a1154761720/article/details/51516273 MMD&#xff1a;maximum mean discrepancy。最大平均差异。最先提出的时候用于双样本的检测&#xff08;two-sample test&#xff09;问题&#xff0c;用于判断两个分布p和q是否相同。它的基本假设是&#xff1a;如…

FineUICore基础版部署到docker实战

文 | 蒙古海军司令 合作者FineUI用了好多年&#xff0c;最近出了FineUICore版本&#xff0c;一直没时间是试一下docker&#xff0c;前几天买了一个腾讯云服务器&#xff0c;1核2g&#xff0c;装了centos7.6&#xff0c;开始的时候主要是整个个人博客&#xff0c;在腾讯云安装了…

Hebbian principle理解

http://blog.csdn.net/mao_xiao_feng/article/details/53350798 Hebbian principle 目前图像领域的深度学习&#xff0c;是使用更深的网络提升representation power&#xff0c;从而提高准确率&#xff0c;但是这会导致网络需要更新的参数爆炸式增长&#xff0c;导致两个严重的…

2019全球Microsoft 365开发者训练营(北京站)

Microsoft365介绍&#xff1a;Microsoft365不仅仅是Office 365&#xff0c;它还包括Windows 10操作系统&#xff0c;以及诸多企业级移动和安全应用。它是一套可用于从小型到集团化企业的办公、协作、沟通的企业信息化解决方案。在2017年7月11日举行的Inspire年度合作伙伴大会上…