2017年终总结
2017年过去已经有几天了,这几天我总结了2017年的学习、找工作、阅读和影视方面的大大小小的事情,希望坚持每年写一个年终总结,整理去年发生的事,更好地认识自我,做更好的自己。
2017年过去已经有几天了,这几天我总结了2017年的学习、找工作、阅读和影视方面的大大小小的事情,希望坚持每年写一个年终总结,整理去年发生的事,更好地认识自我,做更好的自己。
简言之2条命令即可:
1 | # 在命令行下 |
或者在python文件中,import caffe或tensorflow之前,执行如下的语句:
1 | # 在Python文件中 |
参考:
有的时候系统安装的OpenCV版本和你需要的版本不一样,而你又没有权限或者为了兼容不能修改系统的OpenCV,这个时候你就得自己编译OpenCV,然后在需要的代码里面引用你编译的版本。整个过程不复杂,但是之前一直没搞清楚,最近经师弟点拨才明白,这里记录一下。
在Linux环境下执行程序的时候,有的时候会出现段错误(‘segment fault’),同时显示core dumped,就像下面这样:
1 | [1] 15428 segmentation fault (core dumped) ./a.out |
下面是我网上找到的段错误的定义和说明:
A segmentation fault (often shortened to segfault) is a particular error condition that can occur during the operation of computer software. In short, a segmentation fault occurs when a program attempts to access a memory location that it is not allowed to access, or attempts to access a memory location in a way that is not allowed (e.g., attempts to write to a read-only location, or to overwrite part of the operating system). Systems based on processors like the Motorola 68000 tend to refer to these events as Address or Bus errors.
Segmentation is one approach to memory management and protection in the operating system. It has been superseded by paging for most purposes, but much of the terminology of segmentation is still used, "segmentation fault" being an example. Some operating systems still have segmentation at some logical level although paging is used as the main memory management policy.
On Unix-like operating systems, a process that accesses invalid memory receives the SIGSEGV signal. On Microsoft Windows, a process that accesses invalid memory receives the STATUS_ACCESS_VIOLATION exception.
简单理解就是访问了不该访问的内存就会产生段错误。
而core dump是一种将出错时的调用堆栈等信息写入到一个文件中,方便后面调试。Ubuntu下需要进行一些设置才能正确地调试core dump,下面是详细的说明。
因为CuDNN函数接口更新的原因,以前用低版本写的项目在新版本的CuDNN环境下编译就会出问题。例如,py-faster-rcnn代码在最新版的CuDNN6上面编译时就会报错。
解决这个问题的一个方法是禁用CUDNN,即修改Makefile.config
里面的第5行,在前面加#
。这种方法没法使用CuDNN加速,不推荐。这里我们使用一种比较土的方法,即将使用了旧的CuDNN函数的文件都换成新的caffe里面的文件即可。
因为这台GPU服务器闲置了很久,经过这两天的安装,现在基本能用了。整个过程其实挺坎坷的,因此记录下此次安装过程中遇到的坑,后面好参考。服务器从原先的OpenSuse换成了Ubuntu 16.04 LTS 发行版。