| 110 | } |
| 111 | |
| 112 | static std::vector<tensor_case> tensor_cases() { |
| 113 | return { |
| 114 | {"sam_pe_sparse", "Prompt sparse embeddings"}, |
| 115 | {"sam_pe_dense", "Prompt dense embeddings"}, |
| 116 | {"sam_pe_image_pe", "Prompt image PE"}, |
| 117 | {"sam_dec_image_feats", "Decoder image features"}, |
| 118 | {"sam_dec_tokens_initial", "Decoder initial tokens"}, |
| 119 | {"sam_dec_block0_queries", "Decoder block 0 queries"}, |
| 120 | {"sam_dec_block0_keys", "Decoder block 0 keys"}, |
| 121 | {"sam_dec_block1_queries", "Decoder block 1 queries"}, |
| 122 | {"sam_dec_block1_keys", "Decoder block 1 keys"}, |
| 123 | {"sam_dec_final_queries", "Decoder final queries"}, |
| 124 | {"sam_dec_feat_s1_proj", "Decoder s1 projection"}, |
| 125 | {"sam_dec_feat_s0_proj", "Decoder s0 projection"}, |
| 126 | {"sam_dec_upscaled", "Decoder upscaled embedding"}, |
| 127 | {"sam_dec_mask_tokens", "Decoder mask tokens"}, |
| 128 | {"sam_dec_masks", "Decoder mask logits"}, |
| 129 | {"sam_dec_iou", "Decoder IoU predictions"}, |
| 130 | {"sam_dec_obj_score", "Decoder object score logit"}, |
| 131 | {"sam_dec_sam_token", "Decoder SAM token"}, |
| 132 | }; |
| 133 | } |
| 134 | |
| 135 | static float tolerance_for(const std::string & name) { |
| 136 | if (name == "sam_dec_block1_queries" || |