小行星

热爱平淡,向往未知


  • 首页

  • 分类

  • 归档

  • 关于

  • 阅读排行

  • 搜索

jupyter 扩展

发表于 2018-02-Thu | 阅读次数:
1
2
3
4
5
6
7
8
9
10
# Install Jupyterextension package
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install —-user
# Install configurator
pip install jupyter_nbextensions_configurator
# Install theme
pip install jupyterthemes
## Change theme (This is my default)
jt -t grade3 -T
jt -r

install

1
2
3
4
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

tensorflow 镜像

发表于 2018-02-Wed | 阅读次数:
1
http://mirrors.nju.edu.cn/tensorflow/linux/gpu

tensorflow faster-rcnn 包安装

发表于 2018-02-Wed | 阅读次数:
1
2
3
4
5
6
pip install opencv-python
pip install matplotlib
pip install Pillow
pip install scipy
pip install cpython
pip install pyaml

conda常用命令

发表于 2018-02-Wed | 阅读次数:

列出所有环境

1
conda info --envs

安装环境

1
conda create -n tensorflow python=2.7

激活环境

1
source activate tensorflow

if __name__ == '__main__' 理解

发表于 2018-02-Sun | 阅读次数:

c++, java 有统一的入口main函数

python 也就是从脚本第一行开始运行,没有统一的入口

faster-rcnn fancy数据结构

发表于 2018-02-Sun | 阅读次数:

easydict

1
2
3
4
5
6
7
8
9
10
>>> from easydict import EasyDict as edict
>>> d = edict({'foo':3, 'bar':{'x':1, 'y':2}})
>>> d.foo
3
>>> d.bar.x
1

>>> d = edict(foo=3)
>>> d.foo
3

https://github.com/makinacorpus/easydict

argparse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def parse_args():
"""Parse input arguments."""
parser = argparse.ArgumentParser(description='Faster R-CNN demo')
parser.add_argument('--gpu', dest='gpu_id', help='GPU device id to use [0]',
default=0, type=int)
parser.add_argument('--cpu', dest='cpu_mode',
help='Use CPU mode (overrides --gpu)',
action='store_true')

args = parser.parse_args()

return args

if __name__ == '__main__':
args = parse_args()
print (args)

os.path

获得当前路径

1
2
3
4
import os.path as osp

if __name__ == '__main__':
print(osp.abspath(osp.dirname(__file__)))

yml使用

语法

大小写敏感
缩进时不允许使用Tab键,只允许使用空格。

python

数组操作

1
2
for k, v in zip(cfg_list[0::2], cfg_list[1::2]):
pass

文件不存在

1
2
3
if not os.path.isfile(caffemodel):                                                  
raise IOError(('{:s} not found.\nDid you run ./data/script/'
'fetch_faster_rcnn_models.sh?').format(caffemodel))

format

用 {} .format 代替 %s %

1
2
3
print '\n\nLoaded network {:s}'.format(caffemodel)
print ('Detection took {:.3f}s for {:d} object proposals')
.format(timer.total_time, boxes.shape[0])

读文件

1
cv2.imread(im_file)

1维度添加一个维度

1
2
3
4
cls_scores
(300,)
cls_scores[:, np.newaxis]
(300, 1)

排序和反排序

1
2
order = scores.argsort()
order = scores.argsort()[::-1]

transpose

1
im = im[:, :, (2, 1, 0)]

copy=true

1
im_orig = im.astype(np.float32, copy=True)

resize

1
im = cv2.resize(im_orig, None, None, fx=im_scale, fy=im_scale,interpolation=cv2.INTER_LINEAR)

每一个维度取最大

1
max_shape = np.array([im.shape for im in ims]).max(axis=0) # 每一位取最大的

os.path.join

solvers = [[net_name, n, ‘stage1_rpn_solver60k80k.pt’],
[net_name, n, ‘stage1_fast_rcnn_solver30k40k.pt’]]
solvers = [os.path.join(cfg.MODELS_DIR, *s) for s in solvers]

随机数

1
2
3
# fix the random seeds (numpy and caffe) for reproducibility
np.random.seed(cfg.RNG_SEED)
caffe.set_random_seed(cfg.RNG_SEED)

split

1
2
3
for year in ['2007', '2012']:
for split in ['train', 'val', 'trainval', 'test']:
name = 'voc_{}_{}'.format(year, split)

_class_to_ind

1
self._class_to_ind = dict(zip(self.classes, xrange(self.num_classes)))

path.exists

1
2
assert os.path.exists(image_set_file), \
'Path does not exist: {}'.format(image_set_file)

readline

1
with open(image_set_file) as f:

caffe

1
net = caffe.Net(prototxt, caffemodel, caffe.TEST)

blob

Blob是Caffe的基本数据结构,具有CPU和GPU之间同步的能力,它是4维的数组(Num, Channels, Height, Width)
访问data或diff有两种方法:

1
2
const Dtype* cpu_data() const; //不修改值
Dtype* mutable_cpu_data(); //修改值

dump

1
2
with open(cache_file, 'wb') as fid:
cPickle.dump(gt_roidb, fid, cPickle.HIGHEST_PROTOCOL)

pretrained model

1
2
self.solver = caffe.SGDSolver(solver_prototxt)
self.solver.net.copy_from(pretrained_model)

bash

1
2
3
4
5
6
7
8
set -x 输出执行的命令
set -e 错误就停止
${foo,} lowercase the first letter
${foo,,} lowercase all the letters
${foo^^} uppercase all the letters
${string/regexp/replacement}
`date +'%Y-%m-%d_%H-%M-%S'`
time

bash set -e -x

发表于 2018-02-Sat | 阅读次数:
1
2
set -x	set -o xtrace	执行命令之前打印命令。
set -e 你写的每个脚本都应该在文件开头加上set -e,这句语句告诉bash如果任何语句的执行结果不是true则应该退出

caffe编译

发表于 2018-02-Sat | 阅读次数:

编译

1
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

可以直接把caffe-faster-rcnn替换成caffe最新版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd $FRCN_ROOT/lib
make

cd $FRCN_ROOT/caffe-fast-rcnn
# Now follow the Caffe installation instructions here:
# http://caffe.berkeleyvision.org/installation.html

# If you're experienced with Caffe and have all of the requirements installed
# and your Makefile.config in place, then simply do:
make -j8 && make pycaffe

cd $FRCN_ROOT
./data/scripts/fetch_faster_rcnn_models.sh

cd $FRCN_ROOT
./tools/demo.py

训练

module has no attribute ‘text_format’

解决:

1
2
lib/fast_rcnn/train.py
adding import google.protobuf.text_format

py-faster-rcnn 更新caffe

发表于 2018-02-Sat | 阅读次数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# set path of lastest caffe and caffe in py-faster-rcnn
CAFFE_ROOT=/data1/public/caffe
CAFFE_FAST_RCNN=/data6/yunfeng/py-faster-rcnn/caffe-fast-rcnn

# copy head files
cp $CAFFE_ROOT/include/caffe/util/cudnn.hpp $CAFFE_FAST_RCNN/include/caffe/util/cudnn.hpp

cp $CAFFE_ROOT/include/caffe/layers/cudnn_conv_layer.hpp $CAFFE_FAST_RCNN/include/caffe/layers/cudnn_conv_layer.hpp
cp $CAFFE_ROOT/include/caffe/layers/cudnn_lcn_layer.hpp $CAFFE_FAST_RCNN/include/caffe/layers/cudnn_lcn_layer.hpp
cp $CAFFE_ROOT/include/caffe/layers/cudnn_lrn_layer.hpp $CAFFE_FAST_RCNN/include/caffe/layers/cudnn_lrn_layer.hpp
cp $CAFFE_ROOT/include/caffe/layers/cudnn_pooling_layer.hpp $CAFFE_FAST_RCNN/include/caffe/layers/cudnn_pooling_layer.hpp
cp $CAFFE_ROOT/include/caffe/layers/cudnn_relu_layer.hpp $CAFFE_FAST_RCNN/include/caffe/layers/cudnn_relu_layer.hpp
cp $CAFFE_ROOT/include/caffe/layers/cudnn_sigmoid_layer.hpp $CAFFE_FAST_RCNN/include/caffe/layers/cudnn_sigmoid_layer.hpp
cp $CAFFE_ROOT/include/caffe/layers/cudnn_softmax_layer.hpp $CAFFE_FAST_RCNN/include/caffe/layers/cudnn_softmax_layer.hpp
cp $CAFFE_ROOT/include/caffe/layers/cudnn_tanh_layer.hpp $CAFFE_FAST_RCNN/include/caffe/layers/cudnn_tanh_layer.hpp

# copy cpp files
cp $CAFFE_ROOT/src/caffe/layers/cudnn_conv_layer.cpp $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_conv_layer.cpp
cp $CAFFE_ROOT/src/caffe/layers/cudnn_lcn_layer.cpp $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_lcn_layer.cpp
cp $CAFFE_ROOT/src/caffe/layers/cudnn_lrn_layer.cpp $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_lrn_layer.cpp
cp $CAFFE_ROOT/src/caffe/layers/cudnn_pooling_layer.cpp $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_pooling_layer.cpp
cp $CAFFE_ROOT/src/caffe/layers/cudnn_relu_layer.cpp $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_relu_layer.cpp
cp $CAFFE_ROOT/src/caffe/layers/cudnn_sigmoid_layer.cpp $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_sigmoid_layer.cpp
cp $CAFFE_ROOT/src/caffe/layers/cudnn_softmax_layer.cpp $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_softmax_layer.cpp
cp $CAFFE_ROOT/src/caffe/layers/cudnn_tanh_layer.cpp $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_tanh_layer.cpp

# copy cu files
cp $CAFFE_ROOT/src/caffe/layers/cudnn_conv_layer.cu $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_conv_layer.cu
cp $CAFFE_ROOT/src/caffe/layers/cudnn_lcn_layer.cu $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_lcn_layer.cu
cp $CAFFE_ROOT/src/caffe/layers/cudnn_lrn_layer.cu $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_lrn_layer.cu
cp $CAFFE_ROOT/src/caffe/layers/cudnn_pooling_layer.cu $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_pooling_layer.cu
cp $CAFFE_ROOT/src/caffe/layers/cudnn_relu_layer.cu $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_relu_layer.cu
cp $CAFFE_ROOT/src/caffe/layers/cudnn_sigmoid_layer.cu $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_sigmoid_layer.cu
cp $CAFFE_ROOT/src/caffe/layers/cudnn_softmax_layer.cu $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_softmaxlayer.cu
cp $CAFFE_ROOT/src/caffe/layers/cudnn_tanh_layer.cu $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_tanh_layer.cu


# update source code using v3 of cudnn
sed -i 's/cudnnConvolutionBackwardData_v3/cudnnConvolutionBackwardData/g' $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_conv_layer.cu
sed -i 's/cudnnConvolutionBackwardFilter_v3/cudnnConvolutionBackwardFilter/g' $CAFFE_FAST_RCNN/src/caffe/layers/cudnn_conv_layer.cu

mac 使用特定程序打开文件

发表于 2018-02-Sat | 阅读次数:
1
open -a "QuickTime Player" ~/Desktop/filename.mp4
1…505152…59
fangyh

fangyh

最爱的是那苍穹之外的浩渺宇宙

588 日志
4 分类
66 标签
© 2020 fangyh
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.3
|本站总访问量次