Something on RoIAlign --- basic introduction and implementation
Something on RoIAlign --- basic introduction and implementation
2018-10-22 22:40:09
Paper: Mask RCNN
Code: https://github.com/longcw/RoIAlign.pytorch
Blog:
1. https://www.cnblogs.com/wangyong/p/8523814.html
2. https://blog.csdn.net/JNingWei/article/details/78822159
3. https://blog.csdn.net/Julialove102123/article/details/80567827
=========== Introduction ===========
see this blog: https://www.cnblogs.com/wangxiaocvpr/p/9840230.html
=========== Implementation ===========
git clone https://github.com/longcw/RoIAlign.pytorch
cd RoIAlign.pytorch
modify the script install.sh and test.sh into the following way:
#!/usr/bin/env bash CUDA_PATH=/usr/local/cuda echo "Compiling crop_and_resize kernels by nvcc..."
cd roi_align/src/cuda
$CUDA_PATH/bin/nvcc -c -o crop_and_resize_kernel.cu.o crop_and_resize_kernel.cu -x cu -Xcompiler -fPIC -arch=sm_30 \
-gencode=arch=compute_30,code=sm_30 \
-gencode=arch=compute_50,code=sm_50 \
-gencode=arch=compute_52,code=sm_52 \
-gencode=arch=compute_60,code=sm_60 \
-gencode=arch=compute_61,code=sm_61 \
-gencode=arch=compute_62,code=sm_62 \ cd ../../../roi_align
python3 build.py cd ..
python3 setup.py install
#find $CONDA_PREFIX -name roi_align | awk '{mkdir $0 "/_ext" }' |bash
#find $CONDA_PREFIX -name roi_align | awk '{print "cp -r roi_align/_ext/* " $0 "/_ext/" }' |bash
python3 tests/test.py
python3 tests/test2.py
python3 tests/crop_and_resize_example.py
then, run the test.sh, you can found this:
wangxiao@AHU:/media/wangxiao/b8efbc67-7ea5-476d-9631-70da75f84e2d/reference_code/RoIAlign.pytorch$ sh ./test.sh
/usr/local/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: compiletime version 3.5 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6
return f(*args, **kwds)
pytorch forward and backward start
pytorch forward and backward end
2018-10-22 22:38:28.483699: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2018-10-22 22:38:28.492705: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:892] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2018-10-22 22:38:28.493019: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Found device 0 with properties:
name: GeForce GTX 1080 major: 6 minor: 1 memoryClockRate(GHz): 1.898
pciBusID: 0000:02:00.0
totalMemory: 7.92GiB freeMemory: 6.29GiB
2018-10-22 22:38:28.493047: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:02:00.0, compute capability: 6.1)
2018-10-22 22:38:28.737003: E tensorflow/stream_executor/cuda/cuda_dnn.cc:378] Loaded runtime CuDNN library: 7102 (compatibility version 7100) but source was compiled with 6021 (compatibility version 6000). If using a binary install, upgrade your CuDNN library to match. If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
2018-10-22 22:38:28.737107: F tensorflow/core/kernels/conv_ops.cc:667] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)
Aborted
tensor([[[[0., 1., 2.],
[0., 1., 2.],
[0., 1., 2.]]]], grad_fn=<CropAndResizeFunction>)
torch.Size([2, 3, 500, 500])
Some Bug you may meet:
1. cffi.error.VerificationError: LinkError: command 'x86_64-linux-gnu-gcc' failed with exit status 1
==>> run the followings in the terminal before you run "sh make.sh":
export CUDA_PATH=/usr/local/cuda/
export CXXFLAGS="-std=c++11"
export CFLAGS="-std=c99"
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export CPATH=/usr/local/cuda-8.0/include${CPATH:+:${CPATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
then, it will shown you the followings:
wangxiao@AHU:~/Documents/Detectron.pytorch/lib$ sh make.sh
running build_ext
building 'utils.cython_bbox' extension
creating build
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/utils
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -I/usr/local/lib/python2./dist-packages/numpy/core/include -I/usr/include/python2. -c utils/cython_bbox.c -o build/temp.linux-x86_64-2.7/utils/cython_bbox.o -Wno-cpp
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/utils
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE= -g -fstack-protector --param=ssp-buffer-size= -Wformat -Werror=format-security -std=c99 build/temp.linux-x86_64-2.7/utils/cython_bbox.o -o build/lib.linux-x86_64-2.7/utils/cython_bbox.so
building 'utils.cython_nms' extension
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -I/usr/local/lib/python2./dist-packages/numpy/core/include -I/usr/include/python2. -c utils/cython_nms.c -o build/temp.linux-x86_64-2.7/utils/cython_nms.o -Wno-cpp
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE= -g -fstack-protector --param=ssp-buffer-size= -Wformat -Werror=format-security -std=c99 build/temp.linux-x86_64-2.7/utils/cython_nms.o -o build/lib.linux-x86_64-2.7/utils/cython_nms.so
copying build/lib.linux-x86_64-2.7/utils/cython_bbox.so -> utils
copying build/lib.linux-x86_64-2.7/utils/cython_nms.so -> utils
Compiling nms kernels by nvcc...
Including CUDA code.
/home/wangxiao/Documents/Detectron.pytorch/lib/model/nms
['/home/wangxiao/Documents/Detectron.pytorch/lib/model/nms/src/nms_cuda_kernel.cu.o']
generating /tmp/tmp1cFjY6/_nms.c
setting the current directory to '/tmp/tmp1cFjY6'
running build_ext
building '_nms' extension
creating home
creating home/wangxiao
creating home/wangxiao/Documents
creating home/wangxiao/Documents/Detectron.pytorch
creating home/wangxiao/Documents/Detectron.pytorch/lib
creating home/wangxiao/Documents/Detectron.pytorch/lib/model
creating home/wangxiao/Documents/Detectron.pytorch/lib/model/nms
creating home/wangxiao/Documents/Detectron.pytorch/lib/model/nms/src
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c _nms.c -o ./_nms.o
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c /home/wangxiao/Documents/Detectron.pytorch/lib/model/nms/src/nms_cuda.c -o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/nms/src/nms_cuda.o
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE= -g -fstack-protector --param=ssp-buffer-size= -Wformat -Werror=format-security -std=c99 ./_nms.o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/nms/src/nms_cuda.o /home/wangxiao/Documents/Detectron.pytorch/lib/model/nms/src/nms_cuda_kernel.cu.o -o ./_nms.so
Compiling roi pooling kernels by nvcc...
Including CUDA code.
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling
generating /tmp/tmpUUPhTw/_roi_pooling.c
setting the current directory to '/tmp/tmpUUPhTw'
running build_ext
building '_roi_pooling' extension
creating home
creating home/wangxiao
creating home/wangxiao/Documents
creating home/wangxiao/Documents/Detectron.pytorch
creating home/wangxiao/Documents/Detectron.pytorch/lib
creating home/wangxiao/Documents/Detectron.pytorch/lib/model
creating home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling
creating home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling/src
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c _roi_pooling.c -o ./_roi_pooling.o
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c /home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling/src/roi_pooling.c -o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling/src/roi_pooling.o
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c /home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling/src/roi_pooling_cuda.c -o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling/src/roi_pooling_cuda.o
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE= -g -fstack-protector --param=ssp-buffer-size= -Wformat -Werror=format-security -std=c99 ./_roi_pooling.o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling/src/roi_pooling.o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling/src/roi_pooling_cuda.o /home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_pooling/src/roi_pooling.cu.o -o ./_roi_pooling.so
Compiling roi crop kernels by nvcc...
Including CUDA code.
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop
generating /tmp/tmp2NBTVb/_roi_crop.c
setting the current directory to '/tmp/tmp2NBTVb'
running build_ext
building '_roi_crop' extension
creating home
creating home/wangxiao
creating home/wangxiao/Documents
creating home/wangxiao/Documents/Detectron.pytorch
creating home/wangxiao/Documents/Detectron.pytorch/lib
creating home/wangxiao/Documents/Detectron.pytorch/lib/model
creating home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop
creating home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c _roi_crop.c -o ./_roi_crop.o
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c /home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c -o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.o
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c: In function ‘BilinearSamplerBHWD_updateGradInput’:
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘inBottomRight’ [-Wunused-variable]
real inBottomRight=;
^
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘inBottomLeft’ [-Wunused-variable]
real inBottomLeft=;
^
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘inTopRight’ [-Wunused-variable]
real inTopRight=;
^
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘inTopLeft’ [-Wunused-variable]
real inTopLeft=;
^
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘v’ [-Wunused-variable]
real v=;
^
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c: In function ‘BilinearSamplerBCHW_updateGradInput’:
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘inBottomRight’ [-Wunused-variable]
real inBottomRight=;
^
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘inBottomLeft’ [-Wunused-variable]
real inBottomLeft=;
^
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘inTopRight’ [-Wunused-variable]
real inTopRight=;
^
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘inTopLeft’ [-Wunused-variable]
real inTopLeft=;
^
/home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.c::: warning: unused variable ‘v’ [-Wunused-variable]
real v=;
^
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c /home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop_cuda.c -o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop_cuda.o
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE= -g -fstack-protector --param=ssp-buffer-size= -Wformat -Werror=format-security -std=c99 ./_roi_crop.o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop.o ./home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop_cuda.o /home/wangxiao/Documents/Detectron.pytorch/lib/model/roi_crop/src/roi_crop_cuda_kernel.cu.o -o ./_roi_crop.so
Compiling roi align kernels by nvcc...
Including CUDA code.
/home/wangxiao/Documents/Detectron.pytorch/lib/modeling/roi_xfrom/roi_align
generating /tmp/tmptraHMG/_roi_align.c
setting the current directory to '/tmp/tmptraHMG'
running build_ext
building '_roi_align' extension
creating home
creating home/wangxiao
creating home/wangxiao/Documents
creating home/wangxiao/Documents/Detectron.pytorch
creating home/wangxiao/Documents/Detectron.pytorch/lib
creating home/wangxiao/Documents/Detectron.pytorch/lib/modeling
creating home/wangxiao/Documents/Detectron.pytorch/lib/modeling/roi_xfrom
creating home/wangxiao/Documents/Detectron.pytorch/lib/modeling/roi_xfrom/roi_align
creating home/wangxiao/Documents/Detectron.pytorch/lib/modeling/roi_xfrom/roi_align/src
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c _roi_align.c -o ./_roi_align.o
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/TH -I/usr/local/lib/python2./dist-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/usr/include/python2. -c /home/wangxiao/Documents/Detectron.pytorch/lib/modeling/roi_xfrom/roi_align/src/roi_align_cuda.c -o ./home/wangxiao/Documents/Detectron.pytorch/lib/modeling/roi_xfrom/roi_align/src/roi_align_cuda.o
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE= -g -fstack-protector --param=ssp-buffer-size= -Wformat -Werror=format-security -std=c99 ./_roi_align.o ./home/wangxiao/Documents/Detectron.pytorch/lib/modeling/roi_xfrom/roi_align/src/roi_align_cuda.o /home/wangxiao/Documents/Detectron.pytorch/lib/modeling/roi_xfrom/roi_align/src/roi_align_kernel.cu.o -o ./_roi_align.so
wangxiao@AHU:~/Documents/Detectron.pytorch/lib$
2. You may also meet the following issues: AttributeError: 'module' object has no attribute 'getLogger'
Traceback (most recent call last):
File "tools/train_net_step.py", line , in <module>
import utils.net as net_utils
File "/home/Detectron.pytorch/lib/utils/net.py", line , in <module>
logger = logging.getLogger(__name__)
AttributeError: 'module' object has no attribute 'getLogger'
you need to re-compile the lib with python3.6. i.e. change the make.sh into follows:
#!/usr/bin/env bash CUDA_PATH=/usr/local/cuda/ python3 setup.py build_ext --inplace
rm -rf build # Choose cuda arch as you need
CUDA_ARCH="-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 "
# -gencode arch=compute_70,code=sm_70 " # compile NMS
cd model/nms/src
echo "Compiling nms kernels by nvcc..."
nvcc -c -o nms_cuda_kernel.cu.o nms_cuda_kernel.cu \
-D GOOGLE_CUDA= -x cu -Xcompiler -fPIC $CUDA_ARCH cd ../
python3 build.py # compile roi_pooling
cd ../../
cd model/roi_pooling/src
echo "Compiling roi pooling kernels by nvcc..."
nvcc -c -o roi_pooling.cu.o roi_pooling_kernel.cu \
-D GOOGLE_CUDA= -x cu -Xcompiler -fPIC $CUDA_ARCH
cd ../
python3 build.py # # compile roi_align
# cd ../../
# cd model/roi_align/src
# echo "Compiling roi align kernels by nvcc..."
# nvcc -c -o roi_align_kernel.cu.o roi_align_kernel.cu \
# -D GOOGLE_CUDA= -x cu -Xcompiler -fPIC $CUDA_ARCH
# cd ../
# python3 build.py # compile roi_crop
cd ../../
cd model/roi_crop/src
echo "Compiling roi crop kernels by nvcc..."
nvcc -c -o roi_crop_cuda_kernel.cu.o roi_crop_cuda_kernel.cu \
-D GOOGLE_CUDA= -x cu -Xcompiler -fPIC $CUDA_ARCH
cd ../
python3 build.py # compile roi_align (based on Caffe2's implementation)
cd ../../
cd modeling/roi_xfrom/roi_align/src
echo "Compiling roi align kernels by nvcc..."
nvcc -c -o roi_align_kernel.cu.o roi_align_kernel.cu \
-D GOOGLE_CUDA= -x cu -Xcompiler -fPIC $CUDA_ARCH
cd ../
python3 build.py
you also need to copy the file: e2e_mask_rcnn_R-50-C4_1x.yaml and rename it as: e2e_mask_rcnn_R-50-C4.yml
then, you can run the script to train the model:
$ python3 tools/train_net_step.py --dataset coco2017 --cfg configs/baselines/e2e_mask_rcnn_R-50-C4.yml --use_tfboard --bs 5 --nw 2
wangxiao@AHU:~/Documents/Detectron.pytorch$ python3 tools/train_net_step.py --dataset coco2017 --cfg configs/baselines/e2e_mask_rcnn_R--C4.yml --use_tfboard --bs --nw
Called with args:
Namespace(batch_size=, cfg_file='configs/baselines/e2e_mask_rcnn_R-50-C4.yml', cuda=True, dataset='coco2017', disp_interval=, iter_size=, load_ckpt=None, load_detectron=None, lr=None, lr_decay_gamma=None, no_save=False, num_workers=, optimizer=None, resume=False, set_cfgs=[], start_step=, use_tfboard=True)
effective_batch_size = batch_size * iter_size = *
Adaptive config changes:
effective_batch_size: -->
NUM_GPUS: -->
IMS_PER_BATCH: -->
Adjust BASE_LR linearly according to batch_size change:
BASE_LR: 0.01 --> 0.00125
Adjust SOLVER.STEPS and SOLVER.MAX_ITER linearly based on effective_batch_size change:
SOLVER.STEPS: [, , ] --> [, , ]
SOLVER.MAX_ITER: -->
Number of data loading threads:
loading annotations into memory...
Done (t=.39s)
creating index...
index created!
INFO json_dataset.py: : Loading cached gt_roidb from /home/wangxiao/Documents/Detectron.pytorch/data/cache/coco_2017_train_gt_roidb.pkl
INFO roidb.py: : Appending horizontally-flipped training examples...
INFO roidb.py: : Loaded dataset: coco_2017_train
INFO roidb.py: : Filtered roidb entries: ->
INFO roidb.py: : Computing image aspect ratios and ordering the ratios...
INFO roidb.py: : done
INFO roidb.py: : Computing bounding-box regression targets...
INFO roidb.py: : done
INFO train_net_step.py: : roidb entries
INFO train_net_step.py: : Takes 93.39 sec(s) to construct roidb
INFO train_net_step.py: : Training starts !
INFO net.py: : Changing learning rate 0.000000 -> 0.000417
/usr/local/lib/python3./site-packages/torch/nn/functional.py:: UserWarning: nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.
warnings.warn("nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.")
/usr/local/lib/python3./site-packages/torch/nn/functional.py:: UserWarning: size_average and reduce args will be deprecated, please use reduction='sum' instead.
warnings.warn(warning.format(ret))
[Nov24---26_AHU_step][e2e_mask_rcnn_R--C4.yml][Step / ]
loss: 6.916170, lr: 0.000417 time: 0.721983, eta: days, ::
accuracy_cls: 0.001953
loss_cls: 4.648660, loss_bbox: 0.030453, loss_mask: 0.858463
loss_rpn_cls: 0.676336, loss_rpn_bbox: 0.702258
==
Something on RoIAlign --- basic introduction and implementation的更多相关文章
- The basic introduction to MIX language and machine
reference: The MIX Computer, The MIX Introduction sets, The basic info storage unit in MIX computer ...
- RESTFul basic introduction
http://www.ruanyifeng.com/blog/2011/09/restful.html
- 可分离卷积详解及计算量 Basic Introduction to Separable Convolutions
任何看过MobileNet架构的人都会遇到可分离卷积(separable convolutions)这个概念.但什么是“可分离卷积”,它与标准的卷积又有什么区别?可分离卷积主要有两种类型: 空间可分离 ...
- Cyber Security - Palo Alto Basic Introduction
Preparation of the Lab Environment: Download and Install Pan-OS from the following website https://d ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 机器学习公开课笔记(4):神经网络(Neural Network)——表示
动机(Motivation) 对于非线性分类问题,如果用多元线性回归进行分类,需要构造许多高次项,导致特征特多学习参数过多,从而复杂度太高. 神经网络(Neural Network) 一个简单的神经网 ...
- TensorFlow tutorial
代码示例来自https://github.com/aymericdamien/TensorFlow-Examples tensorflow先定义运算图,在run的时候才会进行真正的运算. run之前需 ...
- CSC 172 (Data Structures and Algorithms)
Project #3 (STREET MAPPING)CSC 172 (Data Structures and Algorithms), Spring 2019,University of Roche ...
- How do I learn machine learning?
https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644 How Can I Learn X? ...
随机推荐
- 怎么用js实现jq的removeClass方法
1.addClass:为指定的dom元素添加样式. 2.removeClass:删除指定dom元素的样式. 3.toggleClass:如果存在(不存在),就删除(添加)一个样式. 4.hasClas ...
- 20175320 2018-2019-2 《Java程序设计》第4周学习总结
20175320 2018-2019-2 <Java程序设计>第4周学习总结 教材学习内容总结 本周学习了教材的第五章的内容.在这章中介绍了子类与继承,着重讲了子类继承的规则以及使用sup ...
- P1_jemeter安装--jdk安装
学习的python,需要下载jemter做接口测试. 一..jMeter介绍 Apache组织开发的基于JAVA压力测试工具 100%纯JAVA开发,完全可移植性 可用于测试静态和动态资源 多协议-- ...
- vue 之 筛选功能实现
要实现的效果如下:根据输入框里面输入的内容筛选下面列表: 推荐实现代码如下:其中 allProductData 就是用来下拉列表的数据,allProductList 为从获取的所有列表的数据:
- jQuery 学习笔记(5)(事件绑定与解绑、事件冒泡与事件默认行为、事件的自动触发、自定义事件、事件命名空间、事件委托、移入移出事件)
1.事件绑定: .eventName(fn) //编码效率略高,但部分事件jQuery没有实现 .on(eventName, fn) //编码效率略低,所有事件均可以添加 注意点:可以同时添加多个相同 ...
- cocos2d-x在Android上的编译过程(3):简化Android.mk文件的编写
在编译动态库时.要求我们要去编写jni/Android.mk文件.告诉编译器编译出来的库时应包括包括编译文件和其它引用库.但对于一个大项目来说,维护这个文件肯定是一件比較繁琐的事情.由于每加一个文件或 ...
- 九、使用多线程——NSThread,GCD和NSOperation
概述 早上起床,你先打开洗衣机,然后用热水把泡面泡上,接着打开电脑开启一天的码农生活.其中“洗衣服”.“泡泡面”和“码代码”3个任务(线程)同时进行,这就是多线程.网上有许多关于多线程的经典解释,此处 ...
- 关于win10安装NET Framework 3.5,错误87的终极解答0x80070057
链接:https://pan.baidu.com/s/1z6fZLQTW_b7Qe5tF0xNEuw 密码:ef0d 所有错误87的朋友,你们这样试试,错误原因主要是CAB文件没解压造成.请按以下步骤 ...
- ubuntu12下subversion 1.6升级为1.8版本
应用场景是.android源码体积太大.我从服务器上svn co过来,速度很慢.服务器是ubuntu14版本,我工作的机器是ubuntu12版本,14上面svn版本是1.8.8,12上svn的版本是1 ...
- HTML 鼠标坐标和元素坐标
在这一篇文章中,将会介绍鼠标坐标.元素坐标以及鼠标在指定元素内的坐标. 1. 鼠标坐标 在触发鼠标相关事件时(如:click.mousemove),可以通过事件对象获取当前鼠标的坐标. 获取的坐标可分 ...