Download lib/python3.9/site-packages/caffe2/python/crf_predict.py from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 1.16 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/caffe2/python/crf_predict.py
- Command line
-
hf download hf://camenduru/slahmr-test/lib/python3.9/site-packages/caffe2/python/crf_predict.py
-
curl -L -o crf_predict.py https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/caffe2/python/crf_predict.py
1.16 kB
| import numpy as np | |
| from caffe2.python.crf import CRFWithLoss | |
| def crf_update_predictions(model, crf_with_loss, classes): | |
| return apply_crf( | |
| model.param_init_net, | |
| model.net, | |
| crf_with_loss.transitions, | |
| classes, | |
| crf_with_loss.num_classes, | |
| ) | |
| def apply_crf(init_net, net, transitions, predictions, num_classes): | |
| padded_classes = CRFWithLoss.pad_predictions( | |
| predictions, init_net, net, num_classes | |
| ) | |
| bestPath = net.ViterbiPath([padded_classes, transitions]) | |
| new_padded_classes = net.SwapBestPath([padded_classes, bestPath]) | |
| # Revert the effect of pad_predictions by removing the last two rows and | |
| # the last two columns | |
| new_classes = net.RemovePadding( | |
| [new_padded_classes], padding_width=1, end_padding_width=1 | |
| ) | |
| slice_starts = np.array([0, 0]).astype(np.int32) | |
| slice_ends = np.array([-1, -3]).astype(np.int32) | |
| slice_starts = net.GivenTensorIntFill([], shape=[2], values=slice_starts) | |
| slice_ends = net.GivenTensorIntFill([], shape=[2], values=slice_ends) | |
| new_classes = net.Slice([new_classes, slice_starts, slice_ends]) | |
| return new_classes | |