dingmyu / HR-NAS

HR-NAS: Searching Efficient High-Resolution Neural Architectures with Lightweight Transformers (CVPR21 Oral)
MIT License
137 stars 19 forks source link

No retrain.yml for segmentation tasks #4

Open bachml opened 3 years ago

bachml commented 3 years ago

Hi,

There is no retrain.yml available in the configs folder. I am wondering how to retrain the searched models for cityscapes.

Also, when I train the search model with the seg_cityscapes.yml, there will be an issue comes up when evaluating the model:

Traceback (most recent call last): File "train.py", line 655, in main() File "train.py", line 651, in main train_val_test() File "train.py", line 507, in train_val_test get_prune_weights(model_eval_wrapper), prune_threshold) # get mask for all bn weights (depth-wise) File "/mnt/lustre/zengguohang/HR-NAS/utils/prune.py", line 274, in cal_mask_network_slimming_by_threshold weights = torch.cat(bn_weights_abs) RuntimeError: There were no tensor arguments to this function (e.g., you passed an empty list of Tensors), but no fallback function is registered for schema aten::_cat. This usually means that this function requires a non-empty list of Tensors. Available functions are [CPU, CUDA, QuantizedCPU, BackendSelect, Named, AutogradOther, AutogradCPU, AutogradCUDA, AutogradXLA, AutogradNestedTensor, UNKNOWN_TENSOR_TYPE_ID, AutogradPrivateUse1, AutogradPrivateUse2, AutogradPrivateUse3, Tracer, Autocast, Batched, VmapMode]

dingmyu commented 3 years ago

Hi,

  1. The searched segmentation model can be directly used for inference. Retraining the model provides almost no gains. You can still try retraining by using the searched network parameters and setting:
    bn_prune_filter: ~,
    rho: 0.0, 
  2. It seems that the weights for pruning are not collected. Did you use the default setting for training? Can the model be trained but not evaluated?

Regards, Mingyu