一、测试错误,运行如下代码

python2 tools/test_net.py     --cfg experiments/e2e_faster_rcnn_resnet--FPN_pascal2007.yaml     TEST.WEIGHTS /home/learner/github/detectron/experiments/output/train/voc_2007_train/generalized_rcnn/model_final.pkl NUM_GPUS 

报错如下:

INFO test_engine.py: : Wrote detections to: /home/learner/github/detectron/test/voc_2007_test/generalized_rcnn/detections.pkl
INFO test_engine.py: : Total inference time: .493s
INFO task_evaluation.py: : Evaluating detections
Traceback (most recent call last):
File "tools/test_net.py", line , in <module>
check_expected_results=True,
File "/home/learner/github/detectron/detectron/core/test_engine.py", line , in run_inference
all_results = result_getter()
File "/home/learner/github/detectron/detectron/core/test_engine.py", line , in result_getter
multi_gpu=multi_gpu_testing
File "/home/learner/github/detectron/detectron/core/test_engine.py", line , in test_net_on_dataset
dataset, all_boxes, all_segms, all_keyps, output_dir
File "/home/learner/github/detectron/detectron/datasets/task_evaluation.py", line , in evaluate_all
dataset, all_boxes, output_dir, use_matlab=use_matlab
File "/home/learner/github/detectron/detectron/datasets/task_evaluation.py", line , in evaluate_boxes
dataset, all_boxes, output_dir, use_matlab=use_matlab
File "/home/learner/github/detectron/detectron/datasets/voc_dataset_evaluator.py", line , in evaluate_boxes
filenames = _write_voc_results_files(json_dataset, all_boxes, salt)
File "/home/learner/github/detectron/detectron/datasets/voc_dataset_evaluator.py", line , in _write_voc_results_files
assert index == image_index[i]
AssertionError

报错大意为图片的标注文件的名称test.txt文件中的xml文件名称与test.json中xml文件顺序不相符。运行以下两个代码,将结果替换原先文件,可实现均一致,编号从小到大。

附配置文件:

Found Detectron ops lib: /usr/local/lib/libcaffe2_detectron_ops_gpu.so
INFO test_net.py: 98: Called with args:
INFO test_net.py: 99: Namespace(cfg_file='experiments/e2e_faster_rcnn_resnet-50-FPN_pascal2007.yaml', multi_gpu_testing=False, opts=['TEST.WEIGHTS', '/home/learner/github/detectron/experiments/output/train/voc_2007_train/generalized_rcnn/model_final.pkl', 'NUM_GPUS', ''], range=None, vis=False, wait=True)
INFO test_net.py: 105: Testing with config:
INFO test_net.py: 106: {'BBOX_XFORM_CLIP': 4.135166556742356,
'CLUSTER': {'ON_CLUSTER': False},
'DATA_LOADER': {'BLOBS_QUEUE_CAPACITY': 8,
'MINIBATCH_QUEUE_SIZE': 64,
'NUM_THREADS': 4},
'DEDUP_BOXES': 0.0625,
'DOWNLOAD_CACHE': '/tmp/detectron-download-cache',
'EPS': 1e-14,
'EXPECTED_RESULTS': [],
'EXPECTED_RESULTS_ATOL': 0.005,
'EXPECTED_RESULTS_EMAIL': '',
'EXPECTED_RESULTS_RTOL': 0.1,
'EXPECTED_RESULTS_SIGMA_TOL': 4,
'FAST_RCNN': {'CONV_HEAD_DIM': 256,
'MLP_HEAD_DIM': 1024,
'NUM_STACKED_CONVS': 4,
'ROI_BOX_HEAD': 'fast_rcnn_heads.add_roi_2mlp_head',
'ROI_XFORM_METHOD': 'RoIAlign',
'ROI_XFORM_RESOLUTION': 7,
'ROI_XFORM_SAMPLING_RATIO': 2},
'FPN': {'COARSEST_STRIDE': 32,
'DIM': 256,
'EXTRA_CONV_LEVELS': False,
'FPN_ON': True,
'MULTILEVEL_ROIS': True,
'MULTILEVEL_RPN': True,
'ROI_CANONICAL_LEVEL': 4,
'ROI_CANONICAL_SCALE': 224,
'ROI_MAX_LEVEL': 5,
'ROI_MIN_LEVEL': 2,
'RPN_ANCHOR_START_SIZE': 32,
'RPN_ASPECT_RATIOS': (0.5, 1, 2),
'RPN_MAX_LEVEL': 6,
'RPN_MIN_LEVEL': 2,
'USE_GN': False,
'ZERO_INIT_LATERAL': False},
'GROUP_NORM': {'DIM_PER_GP': -1, 'EPSILON': 1e-05, 'NUM_GROUPS': 32},
'KRCNN': {'CONV_HEAD_DIM': 256,
'CONV_HEAD_KERNEL': 3,
'CONV_INIT': 'GaussianFill',
'DECONV_DIM': 256,
'DECONV_KERNEL': 4,
'DILATION': 1,
'HEATMAP_SIZE': -1,
'INFERENCE_MIN_SIZE': 0,
'KEYPOINT_CONFIDENCE': 'bbox',
'LOSS_WEIGHT': 1.0,
'MIN_KEYPOINT_COUNT_FOR_VALID_MINIBATCH': 20,
'NMS_OKS': False,
'NORMALIZE_BY_VISIBLE_KEYPOINTS': True,
'NUM_KEYPOINTS': -1,
'NUM_STACKED_CONVS': 8,
'ROI_KEYPOINTS_HEAD': '',
'ROI_XFORM_METHOD': 'RoIAlign',
'ROI_XFORM_RESOLUTION': 7,
'ROI_XFORM_SAMPLING_RATIO': 0,
'UP_SCALE': -1,
'USE_DECONV': False,
'USE_DECONV_OUTPUT': False},
'MATLAB': 'matlab',
'MEMONGER': True,
'MEMONGER_SHARE_ACTIVATIONS': False,
'MODEL': {'BBOX_REG_WEIGHTS': (10.0, 10.0, 5.0, 5.0),
'CLS_AGNOSTIC_BBOX_REG': False,
'CONV_BODY': 'FPN.add_fpn_ResNet50_conv5_body',
'EXECUTION_TYPE': 'dag',
'FASTER_RCNN': True,
'KEYPOINTS_ON': False,
'MASK_ON': False,
'NUM_CLASSES': 4,
'RPN_ONLY': False,
'TYPE': 'generalized_rcnn'},
'MRCNN': {'CLS_SPECIFIC_MASK': True,
'CONV_INIT': 'GaussianFill',
'DILATION': 2,
'DIM_REDUCED': 256,
'RESOLUTION': 14,
'ROI_MASK_HEAD': '',
'ROI_XFORM_METHOD': 'RoIAlign',
'ROI_XFORM_RESOLUTION': 7,
'ROI_XFORM_SAMPLING_RATIO': 0,
'THRESH_BINARIZE': 0.5,
'UPSAMPLE_RATIO': 1,
'USE_FC_OUTPUT': False,
'WEIGHT_LOSS_MASK': 1.0},
'NUM_GPUS': 1,
'OUTPUT_DIR': '.',
'PIXEL_MEANS': array([[[102.9801, 115.9465, 122.7717]]]),
'RESNETS': {'NUM_GROUPS': 1,
'RES5_DILATION': 1,
'SHORTCUT_FUNC': 'basic_bn_shortcut',
'STEM_FUNC': 'basic_bn_stem',
'STRIDE_1X1': True,
'TRANS_FUNC': 'bottleneck_transformation',
'WIDTH_PER_GROUP': 64},
'RETINANET': {'ANCHOR_SCALE': 4,
'ASPECT_RATIOS': (0.5, 1.0, 2.0),
'BBOX_REG_BETA': 0.11,
'BBOX_REG_WEIGHT': 1.0,
'CLASS_SPECIFIC_BBOX': False,
'INFERENCE_TH': 0.05,
'LOSS_ALPHA': 0.25,
'LOSS_GAMMA': 2.0,
'NEGATIVE_OVERLAP': 0.4,
'NUM_CONVS': 4,
'POSITIVE_OVERLAP': 0.5,
'PRE_NMS_TOP_N': 1000,
'PRIOR_PROB': 0.01,
'RETINANET_ON': False,
'SCALES_PER_OCTAVE': 3,
'SHARE_CLS_BBOX_TOWER': False,
'SOFTMAX': False},
'RFCN': {'PS_GRID_SIZE': 3},
'RNG_SEED': 3,
'ROOT_DIR': '/home/learner/github/detectron',
'RPN': {'ASPECT_RATIOS': (0.5, 1, 2),
'RPN_ON': True,
'SIZES': (64, 128, 256, 512),
'STRIDE': 16},
'SOLVER': {'BASE_LR': 0.0025,
'GAMMA': 0.1,
'LOG_LR_CHANGE_THRESHOLD': 1.1,
'LRS': [],
'LR_POLICY': 'steps_with_decay',
'MAX_ITER': 60000,
'MOMENTUM': 0.9,
'SCALE_MOMENTUM': True,
'SCALE_MOMENTUM_THRESHOLD': 1.1,
'STEPS': [0, 30000, 40000],
'STEP_SIZE': 30000,
'WARM_UP_FACTOR': 0.3333333333333333,
'WARM_UP_ITERS': 500,
'WARM_UP_METHOD': u'linear',
'WEIGHT_DECAY': 0.0001,
'WEIGHT_DECAY_GN': 0.0},
'TEST': {'BBOX_AUG': {'AREA_TH_HI': 32400,
'AREA_TH_LO': 2500,
'ASPECT_RATIOS': (),
'ASPECT_RATIO_H_FLIP': False,
'COORD_HEUR': 'UNION',
'ENABLED': False,
'H_FLIP': False,
'MAX_SIZE': 4000,
'SCALES': (),
'SCALE_H_FLIP': False,
'SCALE_SIZE_DEP': False,
'SCORE_HEUR': 'UNION'},
'BBOX_REG': True,
'BBOX_VOTE': {'ENABLED': False,
'SCORING_METHOD': 'ID',
'SCORING_METHOD_BETA': 1.0,
'VOTE_TH': 0.8},
'COMPETITION_MODE': True,
'DATASETS': ('voc_2007_test',),
'DETECTIONS_PER_IM': 100,
'FORCE_JSON_DATASET_EVAL': False,
'KPS_AUG': {'AREA_TH': 32400,
'ASPECT_RATIOS': (),
'ASPECT_RATIO_H_FLIP': False,
'ENABLED': False,
'HEUR': 'HM_AVG',
'H_FLIP': False,
'MAX_SIZE': 4000,
'SCALES': (),
'SCALE_H_FLIP': False,
'SCALE_SIZE_DEP': False},
'MASK_AUG': {'AREA_TH': 32400,
'ASPECT_RATIOS': (),
'ASPECT_RATIO_H_FLIP': False,
'ENABLED': False,
'HEUR': 'SOFT_AVG',
'H_FLIP': False,
'MAX_SIZE': 4000,
'SCALES': (),
'SCALE_H_FLIP': False,
'SCALE_SIZE_DEP': False},
'MAX_SIZE': 833,
'NMS': 0.5,
'PRECOMPUTED_PROPOSALS': False,
'PROPOSAL_FILES': (),
'PROPOSAL_LIMIT': 2000,
'RPN_MIN_SIZE': 0,
'RPN_NMS_THRESH': 0.7,
'RPN_POST_NMS_TOP_N': 1000,
'RPN_PRE_NMS_TOP_N': 1000,
'SCALE': 500,
'SCORE_THRESH': 0.05,
'SOFT_NMS': {'ENABLED': False, 'METHOD': 'linear', 'SIGMA': 0.5},
'WEIGHTS': '/home/learner/github/detectron/experiments/output/train/voc_2007_train/generalized_rcnn/model_final.pkl'},
'TRAIN': {'ASPECT_GROUPING': True,
'AUTO_RESUME': True,
'BATCH_SIZE_PER_IM': 512,
'BBOX_THRESH': 0.5,
'BG_THRESH_HI': 0.5,
'BG_THRESH_LO': 0.0,
'COPY_WEIGHTS': False,
'CROWD_FILTER_THRESH': 0.7,
'DATASETS': ('voc_2007_train',),
'FG_FRACTION': 0.25,
'FG_THRESH': 0.5,
'FREEZE_AT': 2,
'FREEZE_CONV_BODY': False,
'GT_MIN_AREA': -1,
'IMS_PER_BATCH': 2,
'MAX_SIZE': 833,
'PROPOSAL_FILES': (),
'RPN_BATCH_SIZE_PER_IM': 256,
'RPN_FG_FRACTION': 0.5,
'RPN_MIN_SIZE': 0,
'RPN_NEGATIVE_OVERLAP': 0.3,
'RPN_NMS_THRESH': 0.7,
'RPN_POSITIVE_OVERLAP': 0.7,
'RPN_POST_NMS_TOP_N': 2000,
'RPN_PRE_NMS_TOP_N': 2000,
'RPN_STRADDLE_THRESH': 0,
'SCALES': (500,),
'SNAPSHOT_ITERS': 20000,
'USE_FLIPPED': True,
'WEIGHTS': '/home/learner/github/detectron/pretrained_model/R-50.pkl'},
'USE_NCCL': False,
'VIS': False,
'VIS_TH': 0.9}
loading annotations into memory...
Done (t=0.02s)
creating index...
index created!
loading annotations into memory...
Done (t=0.02s)
creating index...
index created!
WARNING cnn.py: 25: [====DEPRECATE WARNING====]: you are creating an object from CNNModelHelper class which will be deprecated soon. Please use ModelHelper object with brew module. For more information, please refer to caffe2.ai and python/brew.py, python/brew_test.py for more information.
INFO net.py: 60: Loading weights from: /home/learner/github/detectron/experiments/output/train/voc_2007_train/generalized_rcnn/model_final.pkl

test.json文件生成(xmltojson.py):

# -*- coding: utf-8 -*-
"""
Created on Tue Aug 28 15:01:03 2018 @author: Administrator
"""
#!/usr/bin/python
# -*- coding:utf-8 -*-
# @Author: hbchen
# @Time: 2018-01-29
# @Description: xml转换到coco数据集json格式 import os, sys, json,xmltodict from xml.etree.ElementTree import ElementTree, Element
from collections import OrderedDict XML_PATH = "/home/learner/datasets/VOCdevkit2007/VOC2007/Annotations/test"
JSON_PATH = "./test.json"
json_obj = {}
images = []
annotations = []
categories = []
categories_list = []
annotation_id = 1 def read_xml(in_path):
'''读取并解析xml文件'''
tree = ElementTree()
tree.parse(in_path)
return tree def if_match(node, kv_map):
'''判断某个节点是否包含所有传入参数属性
node: 节点
kv_map: 属性及属性值组成的map'''
for key in kv_map:
if node.get(key) != kv_map.get(key):
return False
return True def get_node_by_keyvalue(nodelist, kv_map):
'''根据属性及属性值定位符合的节点,返回节点
nodelist: 节点列表
kv_map: 匹配属性及属性值map'''
result_nodes = []
for node in nodelist:
if if_match(node, kv_map):
result_nodes.append(node)
return result_nodes def find_nodes(tree, path):
'''查找某个路径匹配的所有节点
tree: xml树
path: 节点路径'''
return tree.findall(path) print ("-----------------Start------------------")
xml_names = []
for xml in os.listdir(XML_PATH):
#os.path.splitext(xml)
xml=xml.replace('Cow_','')
xml_names.append(xml) '''xml_path_list=os.listdir(XML_PATH)
os.path.split
xml_path_list.sort(key=len)'''
xml_names.sort(key=lambda x:int(x[:-4]))
new_xml_names = []
for i in xml_names:
j = 'Cow_' + i
new_xml_names.append(j) #print xml_names
#print new_xml_names
for xml in new_xml_names:
tree = read_xml(XML_PATH + "/" + xml)
object_nodes = get_node_by_keyvalue(find_nodes(tree, "object"), {})
if len(object_nodes) == 0:
print (xml, "no object")
continue
else:
image = OrderedDict()
file_name = os.path.splitext(xml)[0]; # 文件名
#print os.path.splitext(xml)
para1 = file_name + ".jpg" height_nodes = get_node_by_keyvalue(find_nodes(tree, "size/height"), {})
para2 = int(height_nodes[0].text) width_nodes = get_node_by_keyvalue(find_nodes(tree, "size/width"), {})
para3 = int(width_nodes[0].text) fname=file_name[4:]
para4 = int(fname) for f,i in [("file_name",para1),("height",para2),("width",para3),("id",para4)]:
image.setdefault(f,i) #print(image)
images.append(image) #构建images name_nodes = get_node_by_keyvalue(find_nodes(tree, "object/name"), {})
xmin_nodes = get_node_by_keyvalue(find_nodes(tree, "object/bndbox/xmin"), {})
ymin_nodes = get_node_by_keyvalue(find_nodes(tree, "object/bndbox/ymin"), {})
xmax_nodes = get_node_by_keyvalue(find_nodes(tree, "object/bndbox/xmax"), {})
ymax_nodes = get_node_by_keyvalue(find_nodes(tree, "object/bndbox/ymax"), {})
# print ymax_nodes
for index, node in enumerate(object_nodes):
annotation = {}
segmentation = []
bbox = []
seg_coordinate = [] #坐标
seg_coordinate.append(int(xmin_nodes[index].text))
seg_coordinate.append(int(ymin_nodes[index].text))
seg_coordinate.append(int(xmin_nodes[index].text))
seg_coordinate.append(int(ymax_nodes[index].text))
seg_coordinate.append(int(xmax_nodes[index].text))
seg_coordinate.append(int(ymax_nodes[index].text))
seg_coordinate.append(int(xmax_nodes[index].text))
seg_coordinate.append(int(ymin_nodes[index].text))
segmentation.append(seg_coordinate)
width = int(xmax_nodes[index].text) - int(xmin_nodes[index].text)
height = int(ymax_nodes[index].text) - int(ymin_nodes[index].text)
area = width * height
bbox.append(int(xmin_nodes[index].text))
bbox.append(int(ymin_nodes[index].text))
bbox.append(width)
bbox.append(height) annotation["segmentation"] = segmentation
annotation["area"] = area
annotation["iscrowd"] = 0
fname=file_name[4:]
annotation["image_id"] = int(fname)
annotation["bbox"] = bbox
cate=name_nodes[index].text
if cate=='head':
category_id=1
elif cate=='eye':
category_id=2
elif cate=='nose':
category_id=3
annotation["category_id"] = category_id
annotation["id"] = annotation_id
annotation_id += 1
annotation["ignore"] = 0
annotations.append(annotation) if category_id in categories_list:
pass
else:
categories_list.append(category_id)
categorie = {}
categorie["supercategory"] = "none"
categorie["id"] = category_id
categorie["name"] = name_nodes[index].text
categories.append(categorie) json_obj["images"] = images
json_obj["type"] = "instances"
json_obj["annotations"] = annotations
json_obj["categories"] = categories f = open(JSON_PATH, "w")
#json.dump(json_obj, f)
json_str = json.dumps(json_obj)
f.write(json_str)
print ("------------------End-------------------")

test.txt生成(test.py):

import os,sys
XML_PATH = "/home/learner/datasets/VOCdevkit2007/VOC2007/Annotations/test"
final_path = "./test.txt"
xml_names = []
for xml in os.listdir(XML_PATH):
#os.path.splitext(xml)
xml=xml.replace('Cow_','')
xml_names.append(xml) '''xml_path_list=os.listdir(XML_PATH)
os.path.split
xml_path_list.sort(key=len)'''
xml_names.sort(key=lambda x:int(x[:-4]))
new_xml_names = []
for i in xml_names:
j = 'Cow_' + i
new_xml_names.append(j) #print xml_names
#print new_xml_names
f = open(final_path,"w")
for xml in new_xml_names:
file_name = os.path.splitext(xml)[0];
f.write(file_name)
f.write('\n')

二、计算inference类别标的有问题,比如本应该是head,框显示car:

commend如下:

python2 tools/infer_simple.py --cfg experiments/e2e_faster_rcnn_resnet-50-FPN_pascal2007.yaml --output-dir experiments/test_out/ --wts experiments/output/train/voc_2007_train/generalized_rcnn/model_final.pkl test_demo_cow

修改dummy_datasets.py中的类别信息:

def get_COCO_dataset():
"""A dummy VOC dataset"""
ds = AttrDict()
classes = ['__background__',
'eye', 'nose', 'head']
ds.classes = {i:name for i, name in enumerate(classes)}
return ds

三、train的代码

python2 tools/train_net.py --cfg experiments/e2e_faster_rcnn_resnet-50-FPN_pascal2007.yaml  OUTPUT_DIR experiments/output

会报一些错,需要将起初权重改为R-50.pkl,参考http://www.yueye.org/2018/train-object-detection-model-using-detectron.html。

四、更换model

运行代码

python2 tools/train_net.py --cfg experiments/e2e_faster_rcnn_X--64x4d-FPN_1x.yaml  OUTPUT_DIR experiments/outputx

报错如下:

INFO net.py: : End of model: generalized_rcnn
json_stats: {"accuracy_cls": 0.228516, "eta": "17 days, 2:30:10", "iter": , "loss": 2.118356, "loss_bbox": 0.047415, "loss_cls": 1.357394, "loss_rpn_bbox_fpn2": 0.000000, "loss_rpn_bbox_fpn3": 0.000000, "loss_rpn_bbox_fpn4": 0.017527, "loss_rpn_bbox_fpn5": 0.000000, "loss_rpn_bbox_fpn6": 0.002472, "loss_rpn_cls_fpn2": 0.510349, "loss_rpn_cls_fpn3": 0.129855, "loss_rpn_cls_fpn4": 0.039958, "loss_rpn_cls_fpn5": 0.005469, "loss_rpn_cls_fpn6": 0.007917, "lr": 0.003333, "mb_qsize": , "mem": , "time": 8.210058}
json_stats: {"accuracy_cls": 0.961914, "eta": "2 days, 17:47:12", "iter": , "loss": 1.014767, "loss_bbox": 0.064824, "loss_cls": 0.274080, "loss_rpn_bbox_fpn2": 0.011057, "loss_rpn_bbox_fpn3": 0.005120, "loss_rpn_bbox_fpn4": 0.004911, "loss_rpn_bbox_fpn5": 0.000987, "loss_rpn_bbox_fpn6": 0.002837, "loss_rpn_cls_fpn2": 0.424010, "loss_rpn_cls_fpn3": 0.099319, "loss_rpn_cls_fpn4": 0.031872, "loss_rpn_cls_fpn5": 0.007901, "loss_rpn_cls_fpn6": 0.009875, "lr": 0.003600, "mb_qsize": , "mem": , "time": 1.315882}
json_stats: {"accuracy_cls": 0.941406, "eta": "1 day, 22:37:55", "iter": , "loss": 0.620170, "loss_bbox": 0.130436, "loss_cls": 0.284250, "loss_rpn_bbox_fpn2": 0.025175, "loss_rpn_bbox_fpn3": 0.006801, "loss_rpn_bbox_fpn4": 0.000663, "loss_rpn_bbox_fpn5": 0.001616, "loss_rpn_bbox_fpn6": 0.000000, "loss_rpn_cls_fpn2": 0.087775, "loss_rpn_cls_fpn3": 0.043141, "loss_rpn_cls_fpn4": 0.019907, "loss_rpn_cls_fpn5": 0.008191, "loss_rpn_cls_fpn6": 0.002730, "lr": 0.003867, "mb_qsize": , "mem": , "time": 0.932848}
json_stats: {"accuracy_cls": 0.947266, "eta": "1 day, 23:10:17", "iter": , "loss": 0.508122, "loss_bbox": 0.112828, "loss_cls": 0.233173, "loss_rpn_bbox_fpn2": 0.003497, "loss_rpn_bbox_fpn3": 0.003379, "loss_rpn_bbox_fpn4": 0.002439, "loss_rpn_bbox_fpn5": 0.000000, "loss_rpn_bbox_fpn6": 0.002276, "loss_rpn_cls_fpn2": 0.051088, "loss_rpn_cls_fpn3": 0.028643, "loss_rpn_cls_fpn4": 0.017298, "loss_rpn_cls_fpn5": 0.006002, "loss_rpn_cls_fpn6": 0.006945, "lr": 0.004133, "mb_qsize": , "mem": , "time": 0.943747}
/home/learner/github/detectron/detectron/utils/boxes.py:: RuntimeWarning: overflow encountered in multiply
pred_ctr_x = dx * widths[:, np.newaxis] + ctr_x[:, np.newaxis]
/home/learner/github/detectron/detectron/utils/boxes.py:: RuntimeWarning: overflow encountered in multiply
pred_ctr_y = dy * heights[:, np.newaxis] + ctr_y[:, np.newaxis]
/usr/local/lib/python2./dist-packages/numpy/lib/function_base.py:: RuntimeWarning: Invalid value encountered in median
r = func(a, **kwargs)
json_stats: {"accuracy_cls": 0.974609, "eta": "1 day, 23:20:54", "iter": , "loss": NaN, "loss_bbox": NaN, "loss_cls": NaN, "loss_rpn_bbox_fpn2": NaN, "loss_rpn_bbox_fpn3": NaN, "loss_rpn_bbox_fpn4": NaN, "loss_rpn_bbox_fpn5": NaN, "loss_rpn_bbox_fpn6": NaN, "loss_rpn_cls_fpn2": NaN, "loss_rpn_cls_fpn3": NaN, "loss_rpn_cls_fpn4": NaN, "loss_rpn_cls_fpn5": NaN, "loss_rpn_cls_fpn6": 0.004436, "lr": 0.004400, "mb_qsize": , "mem": , "time": 0.947391}
CRITICAL train.py: : Loss is NaN
INFO loader.py: : Stopping enqueue thread
INFO loader.py: : Stopping mini-batch loading thread
INFO loader.py: : Stopping mini-batch loading thread
INFO loader.py: : Stopping mini-batch loading thread
INFO loader.py: : Stopping mini-batch loading thread
Traceback (most recent call last):
File "tools/train_net.py", line , in <module>
main()
File "tools/train_net.py", line , in main
checkpoints = detectron.utils.train.train_model()
File "/home/learner/github/detectron/detectron/utils/train.py", line , in train_model
handle_critical_error(model, 'Loss is NaN')
File "/home/learner/github/detectron/detectron/utils/train.py", line , in handle_critical_error
raise Exception(msg)
Exception: Loss is NaN

修改BASE_LR的值从0.01改为0.001(在此e2e_faster_rcnn_X-101-64x4d-FPN_1x.yaml文件中)

X参考博客:

Inference:

https://blog.csdn.net/blateyang/article/details/79815490

https://blog.csdn.net/Blateyang/article/details/80655802

https://github.com/facebookresearch/Detectron/issues/485

https://github.com/royhuang9/Detectron/blob/master/README.md

其余参考博客:

http://www.yueye.org/2018/train-object-detection-model-using-detectron.html

os.path

https://blog.csdn.net/T1243_3/article/details/80170006

源码解读

https://blog.csdn.net/zziahgf/article/details/79652946

各种model

https://github.com/royhuang9/Detectron/blob/master/MODEL_ZOO.md

detectron——test 错误集锦的更多相关文章

  1. SVN下错误集锦

    SVN下错误集锦 一SVN下的文件被locked不能update和commit 最近做项目的时候,遇到这个问题,SVN下的文件被locked不能update和commit.其提示如下: 解决办法:执行 ...

  2. (转)Hadoop之常见错误集锦

     Hadoop之常见错误集锦            下文中没有特殊说明,环境都是CentOS下Hadoop 2.2.0.1.伪分布模式下执行start-dfs.sh脚本启动HDFS时出现如下错误:   ...

  3. 在Hadoop 2.3上运行C++程序各种疑难杂症(Hadoop Pipes选择、错误集锦、Hadoop2.3编译等)

    首记 感觉Hadoop是一个坑,打着大数据最佳解决方案的旗帜到处坑害良民.记得以前看过一篇文章,说1TB以下的数据就不要用Hadoop了,体现不 出太大的优势,有时候反而会成为累赘.因此Hadoop的 ...

  4. drp错误集锦---“Cannot return from outside a function or method”

    好久都不动的项目,今天打开项目突然是红色感叹号.详细错误表现为: 也就是说,如今MyEclipse已经不识别在JSP页面中使用的return方法了(并且不止一处这种警告),那怎么办?????顿时闹钟一 ...

  5. django 2.0 xadmin 错误集锦

    转载 django 2.0 xadmin 错误集锦 2018-03-26 10:39:18 Snail0Li 阅读数 5188更多 分类专栏: python   1.django2.0把from dj ...

  6. Tensorflow 错误集锦

    文章目录 参考文献 本文记录笔者在Tensorflow使用上的一些错误的集锦,方便后来人迅速查阅解决问题. 我是留白. 我是留白. CreateSession still waiting for re ...

  7. Python:常见错误集锦(持续更新ing)

    初学Python,很容易与各种错误不断的遭遇.通过集锦,可以快速的找到错误的原因和解决方法. 1.IndentationError:expected an indented block 说明此处需要缩 ...

  8. Caffe2 Detectron安装错误记录

    caffe2 caffe2的安装方法有几种.其中最方便的是conda install.但是要求必须安装Anaconda. conda install -c caffe2 caffe2-cuda8.0- ...

  9. centos7安装mplayer 错误集锦

    (1)在 linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了:./tests: error w ...

随机推荐

  1. Sublime Text 配置成 C++ IDE

    在Windows中将Sublime Text配置成C++的IDE.首先,为了运行C++需要安装g++编译器,g++可直接在codeblocks中找到.codeblock的官网下载地址是http://w ...

  2. 20.Bulk Write Operations-官方文档摘录

    1.有序操作列表将会串行执行,但如果在一个写操作过程出现异常错误,则不会处理剩余的任何写操作 2.无序操作列表将会并发执行,如果在一个写操作过程出现异常错误,则不影响,继续执行(并发无序) 3.对比无 ...

  3. getApplicationContext()、Activity.this、 getBaseContext区别

    getApplicationContext()返回应用的上下文,生命周期是整个应用,应用退出它才被摧毁 Activity.this 返回当前activity的上下文,属于activity ,activ ...

  4. 前端 javascript 数据类型 字符串

    字符串是由字符组成的数组,但在JavaScript中字符串是不可变的:可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法. obj.charAt(n) 返回字符串中 ...

  5. Jmeter(七)Mongodb的增删改查

    1.启动JMeter,新建线程组,设置线程组属性 2.右键添加-MongoDB Source Config 设置属性Server Address List:192.168.0.99 MongoDB S ...

  6. 揭秘DOM中data和nodeValue属性同步改变那些事

    问题引发:最近在整理DOM系列的一些知识点,发现在DOM的某些接口API中,存在一些我想不通的现象.就随便举个例子吧:DOM文档模型中的文本节点,可以通过nodeValue或data属性访问文本节点的 ...

  7. 模块讲解----json与pickle模块的区别

    1.在生产中,dumps和loads只进行一次,而且要用w把原来的数据冲掉,从而保证每次都是最新的. 2.虚拟机的快照,是每个快照都有一个文件,而不是全都不放在一起. 3.如果想生产好几个序列化,就生 ...

  8. labview 的连接

    https://www.youtube.com/watch?v=AsQ56CmnfEA&list=PLp02wZHiCj4tcot7tPumcOeVR51oqzf6V

  9. The Cheap KD 8 is rumored to arrive online

    Nike and also the Oklahoma City Thunder star revealed the Cheap KD 8, which they are calling probabl ...

  10. td中不包含汉字的字符串不换行,包含汉字的能换行的问题原因及解决方法

    今天项目中遇到一个问题,一长串的字符串如:003403FF0014E54016030CC655BC3242,但是如:中国河北省石家庄市裕华区槐安路雅清街交口 这样的就可以换行. 原因是:英文字母之间如 ...