想尝试 更深更强的网络,或者自己写了一个费显存的层,发现1080 ti的11G显存不够用了,老师报显存不够怎么办?
Check failed: error == cudaSuccess (2 vs. 0) out of memory
调小batch_size的大小。
怎么调呢?
调这个文件:
experiments/cfgs/faster_rcnn_end2end.yml
EXP_DIR: faster_rcnn_end2end
TRAIN:
HAS_RPN: True
IMS_PER_BATCH: 1
BBOX_NORMALIZE_TARGETS_PRECOMPUTED: True
RPN_POSITIVE_OVERLAP: 0.7
#RPN_BATCHSIZE: 256
RPN_BATCHSIZE: 160
PROPOSAL_METHOD: gt
BG_THRESH_LO: 0.0
#BATCH_SIZE: 64
BATCH_SIZE: 32
#RPN_POST_NMS_TOP_N: 700
RPN_POST_NMS_TOP_N: 500
USE_OHEM: True
ASPECT_GROUPING: False
TEST:
HAS_RPN: True
当然,写代码的方式也可以。比如说写一个batch_norm层,来归一化参数。让每一层的参数没那么凌乱。不过这个减少的显存还是比较小的。