Anurag1734/cuda-error-resolution-analysis
07
1[2 {3 "post_stream": {4 "posts": [5 {6 "id": 397110,7 "name": "Tiance Wang",8 "username": "wangtiance",9 "avatar_template": "/user_avatar/discuss.pytorch.org/wangtiance/{size}/55445_2.png",10 "created_at": "2023-04-12T09:59:07.184Z",11 "cooked": "<p>When I apply default qconfig to my model, it automatically puts minmaxobserver on conv and batchnorm layers, but not activation layers. But I need to get the min/max values of those layers too. Is there a simple way to do that?</p>\n<pre><code class=\"lang-auto\">import torch.ao.quantization as Q\ntestmodel = nn.Sequential(\n nn.Conv2d(10,10,3),\n nn.BatchNorm2d(10),\n nn.PReLU(10),\n)\ntestmodel.qconfig = Q.default_qconfig\nQ.prepare(testmodel, inplace=True)\nprint(testmodel) # no observer on prelu\n</code></pre>",12 "post_number": 1,13 "post_type": 1,14 "posts_count": 5,15 "updated_at": "2023-04-12T09:59:07.184Z",16 "reply_count": 0,17 "reply_to_post_number": null,18 "quote_count": 0,19 "incoming_link_count": 61,20 "reads": 9,21 "readers_count": 8,22 "score": 306.8,23 "yours": false,24 "topic_id": 177329,25 "topic_slug": "place-minmaxobserver-on-activation-layer",26 "display_username": "Tiance Wang",27 "primary_group_name": null,28 "flair_name": null,29 "flair_url": null,30 "flair_bg_color": null,31 "flair_color": null,32 "flair_group_id": null,33 "badges_granted": [],34 "version": 1,35 "can_edit": false,36 "can_delete": false,37 "can_recover": false,38 "can_see_hidden_post": false,39 "can_wiki": false,40 "read": true,41 "user_title": null,42 "bookmarked": false,43 "actions_summary": [],44 "moderator": false,45 "admin": false,46 "staff": false,47 "user_id": 61559,48 "hidden": false,49 "trust_level": 1,50 "deleted_at": null,51 "user_deleted": false,52 "edit_reason": null,53 "can_view_edit_history": true,54 "wiki": false,55 "post_url": "/t/place-minmaxobserver-on-activation-layer/177329/1",56 "can_accept_answer": false,57 "can_unaccept_answer": false,58 "accepted_answer": false,59 "topic_accepted_answer": true,60 "can_vote": false61 },62 {63 "id": 397130,64 "name": "Fisher",65 "username": "111357",66 "avatar_template": "/letter_avatar_proxy/v4/letter/1/74df32/{size}.png",67 "created_at": "2023-04-12T12:29:17.688Z",68 "cooked": "<p>What’s the <code>activation layers</code> refer to? <code>nn.PRelu</code>?</p>",69 "post_number": 2,70 "post_type": 1,71 "posts_count": 5,72 "updated_at": "2023-04-12T12:29:17.688Z",73 "reply_count": 1,74 "reply_to_post_number": null,75 "quote_count": 0,76 "incoming_link_count": 1,77 "reads": 8,78 "readers_count": 7,79 "score": 11.6,80 "yours": false,81 "topic_id": 177329,82 "topic_slug": "place-minmaxobserver-on-activation-layer",83 "display_username": "Fisher",84 "primary_group_name": null,85 "flair_name": null,86 "flair_url": null,87 "flair_bg_color": null,88 "flair_color": null,89 "flair_group_id": null,90 "badges_granted": [],91 "version": 1,92 "can_edit": false,93 "can_delete": false,94 "can_recover": false,95 "can_see_hidden_post": false,96 "can_wiki": false,97 "read": true,98 "user_title": "",99 "bookmarked": false,100 "actions_summary": [],101 "moderator": false,102 "admin": false,103 "staff": false,104 "user_id": 33800,105 "hidden": false,106 "trust_level": 2,107 "deleted_at": null,108 "user_deleted": false,109 "edit_reason": null,110 "can_view_edit_history": true,111 "wiki": false,112 "post_url": "/t/place-minmaxobserver-on-activation-layer/177329/2",113 "can_accept_answer": false,114 "can_unaccept_answer": false,115 "accepted_answer": false,116 "topic_accepted_answer": true117 },118 {119 "id": 397197,120 "name": "Tiance Wang",121 "username": "wangtiance",122 "avatar_template": "/user_avatar/discuss.pytorch.org/wangtiance/{size}/55445_2.png",123 "created_at": "2023-04-13T01:28:19.860Z",124 "cooked": "<p>Yes. If it was relu or sigmoid I could infer the value range from the batchnorm output, but that’s not the case for prelu</p>",125 "post_number": 3,126 "post_type": 1,127 "posts_count": 5,128 "updated_at": "2023-04-13T01:28:19.860Z",129 "reply_count": 0,130 "reply_to_post_number": 2,131 "quote_count": 0,132 "incoming_link_count": 0,133 "reads": 8,134 "readers_count": 7,135 "score": 1.6,136 "yours": false,137 "topic_id": 177329,138 "topic_slug": "place-minmaxobserver-on-activation-layer",139 "display_username": "Tiance Wang",140 "primary_group_name": null,141 "flair_name": null,142 "flair_url": null,143 "flair_bg_color": null,144 "flair_color": null,145 "flair_group_id": null,146 "badges_granted": [],147 "version": 1,148 "can_edit": false,149 "can_delete": false,150 "can_recover": false,151 "can_see_hidden_post": false,152 "can_wiki": false,153 "read": true,154 "user_title": null,155 "reply_to_user": {156 "id": 33800,157 "username": "111357",158 "name": "Fisher",159 "avatar_template": "/letter_avatar_proxy/v4/letter/1/74df32/{size}.png"160 },161 "bookmarked": false,162 "actions_summary": [],163 "moderator": false,164 "admin": false,165 "staff": false,166 "user_id": 61559,167 "hidden": false,168 "trust_level": 1,169 "deleted_at": null,170 "user_deleted": false,171 "edit_reason": null,172 "can_view_edit_history": true,173 "wiki": false,174 "post_url": "/t/place-minmaxobserver-on-activation-layer/177329/3",175 "can_accept_answer": false,176 "can_unaccept_answer": false,177 "accepted_answer": false,178 "topic_accepted_answer": true179 },180 {181 "id": 399394,182 "name": "Tiance Wang",183 "username": "wangtiance",184 "avatar_template": "/user_avatar/discuss.pytorch.org/wangtiance/{size}/55445_2.png",185 "created_at": "2023-04-25T10:29:19.723Z",186 "cooked": "<p>I found that some activation modules (including nn.Hardtanh, nn.Hardswish) get an observer, but others don’t. I’m not sure where the difference lies.</p>",187 "post_number": 4,188 "post_type": 1,189 "posts_count": 5,190 "updated_at": "2023-04-25T10:29:19.723Z",191 "reply_count": 0,192 "reply_to_post_number": null,193 "quote_count": 0,194 "incoming_link_count": 1,195 "reads": 5,196 "readers_count": 4,197 "score": 6.0,198 "yours": false,199 "topic_id": 177329,200 "topic_slug": "place-minmaxobserver-on-activation-layer",201 "display_username": "Tiance Wang",202 "primary_group_name": null,203 "flair_name": null,204 "flair_url": null,205 "flair_bg_color": null,206 "flair_color": null,207 "flair_group_id": null,208 "badges_granted": [],209 "version": 1,210 "can_edit": false,211 "can_delete": false,212 "can_recover": false,213 "can_see_hidden_post": false,214 "can_wiki": false,215 "read": true,216 "user_title": null,217 "bookmarked": false,218 "actions_summary": [],219 "moderator": false,220 "admin": false,221 "staff": false,222 "user_id": 61559,223 "hidden": false,224 "trust_level": 1,225 "deleted_at": null,226 "user_deleted": false,227 "edit_reason": null,228 "can_view_edit_history": true,229 "wiki": false,230 "post_url": "/t/place-minmaxobserver-on-activation-layer/177329/4",231 "can_accept_answer": false,232 "can_unaccept_answer": false,233 "accepted_answer": false,234 "topic_accepted_answer": true235 },236 {237 "id": 399587,238 "name": "Tiance Wang",239 "username": "wangtiance",240 "avatar_template": "/user_avatar/discuss.pytorch.org/wangtiance/{size}/55445_2.png",241 "created_at": "2023-04-26T08:31:26.510Z",242 "cooked": "<p>It seems to has to do with the function<br>\ntorch.ao.quantization.quantization_mappings.get_default_qconfig_propagation_list(),<br>\nwhich lists all quantizable modules. I can override it by specifying the allow_list in torch.ao.quantization.prepare()</p>",243 "post_number": 5,244 "post_type": 1,245 "posts_count": 5,246 "updated_at": "2023-04-26T08:31:26.510Z",247 "reply_count": 0,248 "reply_to_post_number": null,249 "quote_count": 0,250 "incoming_link_count": 1,251 "reads": 5,252 "readers_count": 4,253 "score": 6.0,254 "yours": false,255 "topic_id": 177329,256 "topic_slug": "place-minmaxobserver-on-activation-layer",257 "display_username": "Tiance Wang",258 "primary_group_name": null,259 "flair_name": null,260 "flair_url": null,261 "flair_bg_color": null,262 "flair_color": null,263 "flair_group_id": null,264 "badges_granted": [],265 "version": 1,266 "can_edit": false,267 "can_delete": false,268 "can_recover": false,269 "can_see_hidden_post": false,270 "can_wiki": false,271 "read": true,272 "user_title": null,273 "bookmarked": false,274 "actions_summary": [],275 "moderator": false,276 "admin": false,277 "staff": false,278 "user_id": 61559,279 "hidden": false,280 "trust_level": 1,281 "deleted_at": null,282 "user_deleted": false,283 "edit_reason": null,284 "can_view_edit_history": true,285 "wiki": false,286 "post_url": "/t/place-minmaxobserver-on-activation-layer/177329/5",287 "can_accept_answer": false,288 "can_unaccept_answer": false,289 "accepted_answer": true,290 "topic_accepted_answer": true291 }292 ],293 "stream": [294 397110,295 397130,296 397197,297 399394,298 399587299 ]300 },301 "timeline_lookup": [302 [303 1,304 927305 ],306 [307 4,308 914309 ],310 [311 5,312 913313 ]314 ],315 "suggested_topics": [316 {317 "fancy_title": "Quantized LLM inference vs quantized matrix multiplication speed in CPU",318 "id": 217166,319 "title": "Quantized LLM inference vs quantized matrix multiplication speed in CPU",320 "slug": "quantized-llm-inference-vs-quantized-matrix-multiplication-speed-in-cpu",321 "posts_count": 3,322 "reply_count": 0,323 "highest_post_number": 3,324 "image_url": null,325 "created_at": "2025-02-26T03:29:32.009Z",326 "last_posted_at": "2025-04-06T00:11:53.424Z",327 "bumped": true,328 "bumped_at": "2025-04-06T00:11:53.424Z",329 "archetype": "regular",330 "unseen": false,331 "pinned": false,332 "unpinned": null,333 "visible": true,334 "closed": false,335 "archived": false,336 "bookmarked": null,337 "liked": null,338 "tags_descriptions": {},339 "like_count": 0,340 "views": 110,341 "category_id": 17,342 "featured_link": null,343 "has_accepted_answer": false,344 "posters": [345 {346 "extras": null,347 "description": "Original Poster",348 "user": {349 "id": 82918,350 "username": "luentong",351 "name": "Entong Lu",352 "avatar_template": "/user_avatar/discuss.pytorch.org/luentong/{size}/75863_2.png",353 "trust_level": 1354 }355 },356 {357 "extras": "latest",358 "description": "Most Recent Poster",359 "user": {360 "id": 21770,361 "username": "jerryzh168",362 "name": "Jerry Zhang",363 "avatar_template": "/user_avatar/discuss.pytorch.org/jerryzh168/{size}/15217_2.png",364 "trust_level": 2365 }366 }367 ]368 },369 {370 "fancy_title": "Logits mismatch between PyTorch inference and manual implementation",371 "id": 219568,372 "title": "Logits mismatch between PyTorch inference and manual implementation",373 "slug": "logits-mismatch-between-pytorch-inference-and-manual-implementation",374 "posts_count": 2,375 "reply_count": 0,376 "highest_post_number": 2,377 "image_url": null,378 "created_at": "2025-04-28T18:57:49.995Z",379 "last_posted_at": "2025-04-29T00:42:05.572Z",380 "bumped": true,381 "bumped_at": "2025-04-29T00:42:05.572Z",382 "archetype": "regular",383 "unseen": false,384 "pinned": false,385 "unpinned": null,386 "visible": true,387 "closed": false,388 "archived": false,389 "bookmarked": null,390 "liked": null,391 "tags_descriptions": {},392 "like_count": 1,393 "views": 79,394 "category_id": 17,395 "featured_link": null,396 "has_accepted_answer": false,397 "posters": [398 {399 "extras": null,400 "description": "Original Poster",401 "user": {402 "id": 84057,403 "username": "greifswald",404 "name": "",405 "avatar_template": "/letter_avatar_proxy/v4/letter/g/90db22/{size}.png",406 "trust_level": 1407 }408 },409 {410 "extras": "latest",411 "description": "Most Recent Poster",412 "user": {413 "id": 21770,414 "username": "jerryzh168",415 "name": "Jerry Zhang",416 "avatar_template": "/user_avatar/discuss.pytorch.org/jerryzh168/{size}/15217_2.png",417 "trust_level": 2418 }419 }420 ]421 },422 {423 "fancy_title": "Auto-cast and pytorch 2 export quantization",424 "id": 212660,425 "title": "Auto-cast and pytorch 2 export quantization",426 "slug": "auto-cast-and-pytorch-2-export-quantization",427 "posts_count": 9,428 "reply_count": 7,429 "highest_post_number": 9,430 "image_url": null,431 "created_at": "2024-11-07T11:22:22.891Z",432 "last_posted_at": "2024-12-09T14:27:40.330Z",433 "bumped": true,434 "bumped_at": "2024-12-09T14:27:40.330Z",435 "archetype": "regular",436 "unseen": false,437 "pinned": false,438 "unpinned": null,439 "visible": true,440 "closed": false,441 "archived": false,442 "bookmarked": null,443 "liked": null,444 "tags_descriptions": {},445 "like_count": 2,446 "views": 538,447 "category_id": 17,448 "featured_link": null,449 "has_accepted_answer": false,450 "posters": [451 {452 "extras": "latest",453 "description": "Original Poster, Most Recent Poster",454 "user": {455 "id": 80748,456 "username": "Jorge_Lamperez",457 "name": "Jorge Lamperez",458 "avatar_template": "/user_avatar/discuss.pytorch.org/jorge_lamperez/{size}/73831_2.png",459 "trust_level": 1460 }461 },462 {463 "extras": null,464 "description": "Frequent Poster",465 "user": {466 "id": 45475,467 "username": "HDCharles",468 "name": "Hd Charles",469 "avatar_template": "/user_avatar/discuss.pytorch.org/hdcharles/{size}/38408_2.png",470 "trust_level": 2471 }472 },473 {474 "extras": null,475 "description": "Frequent Poster",476 "user": {477 "id": 21770,478 "username": "jerryzh168",479 "name": "Jerry Zhang",480 "avatar_template": "/user_avatar/discuss.pytorch.org/jerryzh168/{size}/15217_2.png",481 "trust_level": 2482 }483 }484 ]485 },486 {487 "fancy_title": "Quantized::linear (xnnpack): xnn create operator failed(2)",488 "id": 216583,489 "title": "Quantized::linear (xnnpack): xnn create operator failed(2)",490 "slug": "quantized-linear-xnnpack-xnn-create-operator-failed-2",491 "posts_count": 2,492 "reply_count": 0,493 "highest_post_number": 2,494 "image_url": null,495 "created_at": "2025-02-12T15:02:03.632Z",496 "last_posted_at": "2025-02-12T19:19:18.537Z",497 "bumped": true,498 "bumped_at": "2025-02-12T19:19:18.537Z",499 "archetype": "regular",500 "unseen": false,501 "pinned": false,502 "unpinned": null,503 "visible": true,504 "closed": false,505 "archived": false,506 "bookmarked": null,507 "liked": null,508 "tags_descriptions": {},509 "like_count": 0,510 "views": 160,511 "category_id": 17,512 "featured_link": null,513 "has_accepted_answer": false,514 "posters": [515 {516 "extras": "latest single",517 "description": "Original Poster, Most Recent Poster",518 "user": {519 "id": 77103,520 "username": "GangnamStyle",521 "name": "Brian Provost",522 "avatar_template": "/user_avatar/discuss.pytorch.org/gangnamstyle/{size}/75622_2.png",523 "trust_level": 1524 }525 }526 ]527 },528 {529 "fancy_title": "Why is there such a significant difference between floating-point convolution and quantized integer convolution results?",530 "id": 220920,531 "title": "Why is there such a significant difference between floating-point convolution and quantized integer convolution results?",532 "slug": "why-is-there-such-a-significant-difference-between-floating-point-convolution-and-quantized-integer-convolution-results",533 "posts_count": 3,534 "reply_count": 0,535 "highest_post_number": 3,536 "image_url": "https://discuss.pytorch.org/uploads/default/original/3X/f/0/f08b1bd84e46ac092e1a83b23aa03ee6a164134d.png",537 "created_at": "2025-06-19T13:35:50.498Z",538 "last_posted_at": "2025-06-30T11:28:31.675Z",539 "bumped": true,540 "bumped_at": "2025-06-30T11:28:31.675Z",541 "archetype": "regular",542 "unseen": false,543 "pinned": false,544 "unpinned": null,545 "visible": true,546 "closed": false,547 "archived": false,548 "bookmarked": null,549 "liked": null,550 "tags_descriptions": {},551 "like_count": 0,552 "views": 47,553 "category_id": 17,554 "featured_link": null,555 "has_accepted_answer": false,556 "posters": [557 {558 "extras": null,559 "description": "Original Poster",560 "user": {561 "id": 84745,562 "username": "bitzs",563 "name": "",564 "avatar_template": "/letter_avatar_proxy/v4/letter/b/da6949/{size}.png",565 "trust_level": 1566 }567 },568 {569 "extras": null,570 "description": "Frequent Poster",571 "user": {572 "id": 84865,573 "username": "Hamza_Javaid",574 "name": "Hamza Javaid",575 "avatar_template": "/user_avatar/discuss.pytorch.org/hamza_javaid/{size}/77517_2.png",576 "trust_level": 2577 }578 },579 {580 "extras": "latest",581 "description": "Most Recent Poster",582 "user": {583 "id": 84884,584 "username": "Jack_Qasim",585 "name": "Jack Qasim",586 "avatar_template": "/user_avatar/discuss.pytorch.org/jack_qasim/{size}/74623_2.png",587 "trust_level": 0588 }589 }590 ]591 }592 ],593 "tags_descriptions": {},594 "fancy_title": "Place minmaxobserver on activation layer",595 "id": 177329,596 "title": "Place minmaxobserver on activation layer",597 "posts_count": 5,598 "created_at": "2023-04-12T09:59:07.107Z",599 "views": 621,600 "reply_count": 1,601 "like_count": 0,602 "last_posted_at": "2023-04-26T08:31:26.510Z",603 "visible": true,604 "closed": false,605 "archived": false,606 "has_summary": false,607 "archetype": "regular",608 "slug": "place-minmaxobserver-on-activation-layer",609 "category_id": 17,610 "word_count": 169,611 "deleted_at": null,612 "user_id": 61559,613 "featured_link": null,614 "pinned_globally": false,615 "pinned_at": null,616 "pinned_until": null,617 "image_url": null,618 "slow_mode_seconds": 0,619 "draft": null,620 "draft_key": "topic_177329",621 "draft_sequence": null,622 "unpinned": null,623 "pinned": false,624 "current_post_number": 1,625 "highest_post_number": 5,626 "deleted_by": null,627 "actions_summary": [628 {629 "id": 4,630 "count": 0,631 "hidden": false,632 "can_act": false633 },634 {635 "id": 8,636 "count": 0,637 "hidden": false,638 "can_act": false639 },640 {641 "id": 10,642 "count": 0,643 "hidden": false,644 "can_act": false645 },646 {647 "id": 7,648 "count": 0,649 "hidden": false,650 "can_act": false651 }652 ],653 "chunk_size": 20,654 "bookmarked": false,655 "topic_timer": null,656 "message_bus_last_id": 0,657 "participant_count": 2,658 "show_read_indicator": false,659 "thumbnails": null,660 "slow_mode_enabled_until": null,661 "accepted_answer": {662 "post_number": 5,663 "username": "wangtiance",664 "name": "Tiance Wang",665 "excerpt": "It seems to has to do with the function \ntorch.ao.quantization.quantization_mappings.get_default_qconfig_propagation_list(), \nwhich lists all quantizable modules. I can override it by specifying the allow_list in torch.ao.quantization.prepare()"666 },667 "can_vote": false,668 "vote_count": 0,669 "user_voted": false,670 "discourse_zendesk_plugin_zendesk_id": null,671 "discourse_zendesk_plugin_zendesk_url": "https://your-url.zendesk.com/agent/tickets/",672 "details": {673 "can_edit": false,674 "notification_level": 1,675 "participants": [676 {677 "id": 61559,678 "username": "wangtiance",679 "name": "Tiance Wang",680 "avatar_template": "/user_avatar/discuss.pytorch.org/wangtiance/{size}/55445_2.png",681 "post_count": 4,682 "primary_group_name": null,683 "flair_name": null,684 "flair_url": null,685 "flair_color": null,686 "flair_bg_color": null,687 "flair_group_id": null,688 "trust_level": 1689 },690 {691 "id": 33800,692 "username": "111357",693 "name": "Fisher",694 "avatar_template": "/letter_avatar_proxy/v4/letter/1/74df32/{size}.png",695 "post_count": 1,696 "primary_group_name": null,697 "flair_name": null,698 "flair_url": null,699 "flair_color": null,700 "flair_bg_color": null,701 "flair_group_id": null,702 "trust_level": 2703 }704 ],705 "created_by": {706 "id": 61559,707 "username": "wangtiance",708 "name": "Tiance Wang",709 "avatar_template": "/user_avatar/discuss.pytorch.org/wangtiance/{size}/55445_2.png"710 },711 "last_poster": {712 "id": 61559,713 "username": "wangtiance",714 "name": "Tiance Wang",715 "avatar_template": "/user_avatar/discuss.pytorch.org/wangtiance/{size}/55445_2.png"716 }717 },718 "bookmarks": []719 },720 {721 "post_stream": {722 "posts": [723 {724 "id": 399582,725 "name": "Ajith",726 "username": "Ajith",727 "avatar_template": "/user_avatar/discuss.pytorch.org/ajith/{size}/59949_2.png",728 "created_at": "2023-04-26T08:09:39.952Z",729 "cooked": "<p>I have a pretrained model and i want to remove the last layer of it and convert to tflite model . This is the yaml file <a href=\"https://github.com/ultralytics/ultralytics/blob/main/ultralytics/models/v8/yolov8.yaml\" class=\"inline-onebox\" rel=\"noopener nofollow ugc\">ultralytics/yolov8.yaml at main · ultralytics/ultralytics · GitHub</a> . i tried by using</p>\n<pre><code class=\"lang-auto\">model = YOLO(\"path to pretrained model\")\nmodel = torch.nn.Sequential(*list(model1.model.children())[:-1])\nmodel1.export(format=\"tflite\")\n</code></pre>\n<p>but it seems that that is not correct method . Is there any way by changing in yolov8.yaml file and removing the last layer and then converting to tflite.</p>",730 "post_number": 1,731 "post_type": 1,732 "posts_count": 1,733 "updated_at": "2023-04-26T08:09:39.952Z",734 "reply_count": 0,735 "reply_to_post_number": null,736 "quote_count": 0,737 "incoming_link_count": 623,738 "reads": 5,739 "readers_count": 4,740 "score": 3101.0,741 "yours": false,742 "topic_id": 178553,743 "topic_slug": "removing-last-layer-from-yolov8-pretrained-model",744 "display_username": "Ajith",745 "primary_group_name": null,746 "flair_name": null,747 "flair_url": null,748 "flair_bg_color": null,749 "flair_color": null,750 "flair_group_id": null,751 "badges_granted": [],752 "version": 1,753 "can_edit": false,754 "can_delete": false,755 "can_recover": false,756 "can_see_hidden_post": false,757 "can_wiki": false,758 "link_counts": [759 {760 "url": "https://github.com/ultralytics/ultralytics/blob/main/ultralytics/models/v8/yolov8.yaml",761 "internal": false,762 "reflection": false,763 "title": "ultralytics/yolov8.yaml at main · ultralytics/ultralytics · GitHub",764 "clicks": 23765 }766 ],767 "read": true,768 "user_title": null,769 "bookmarked": false,770 "actions_summary": [],771 "moderator": false,772 "admin": false,773 "staff": false,774 "user_id": 10040,775 "hidden": false,776 "trust_level": 1,777 "deleted_at": null,778 "user_deleted": false,779 "edit_reason": null,780 "can_view_edit_history": true,781 "wiki": false,782 "post_url": "/t/removing-last-layer-from-yolov8-pretrained-model/178553/1",783 "can_accept_answer": false,784 "can_unaccept_answer": false,785 "accepted_answer": false,786 "topic_accepted_answer": null,787 "can_vote": false788 }789 ],790 "stream": [791 399582792 ]793 },794 "timeline_lookup": [795 [796 1,797 913798 ]799 ],800 "suggested_topics": [801 {802 "fancy_title": "Pooling with a custom kernel?",803 "id": 217660,804 "title": "Pooling with a custom kernel?",805 "slug": "pooling-with-a-custom-kernel",806 "posts_count": 2,807 "reply_count": 0,808 "highest_post_number": 2,809 "image_url": null,810 "created_at": "2025-03-10T11:11:41.968Z",811 "last_posted_at": "2025-03-10T15:10:50.281Z",812 "bumped": true,813 "bumped_at": "2025-03-10T15:10:50.281Z",814 "archetype": "regular",815 "unseen": false,816 "pinned": false,817 "unpinned": null,818 "visible": true,819 "closed": false,820 "archived": false,821 "bookmarked": null,822 "liked": null,823 "tags_descriptions": {},824 "like_count": 0,825 "views": 65,826 "category_id": 5,827 "featured_link": null,828 "has_accepted_answer": false,829 "posters": [830 {831 "extras": null,832 "description": "Original Poster",833 "user": {834 "id": 83175,835 "username": "shroomite",836 "name": "Karol",837 "avatar_template": "/user_avatar/discuss.pytorch.org/shroomite/{size}/76075_2.png",838 "trust_level": 1839 }840 },841 {842 "extras": "latest",843 "description": "Most Recent Poster",844 "user": {845 "id": 18088,846 "username": "KFrank",847 "name": "K. Frank",848 "avatar_template": "/letter_avatar_proxy/v4/letter/k/ecb155/{size}.png",849 "trust_level": 2850 }851 }852 ]853 },854 {855 "fancy_title": "Parallel processing a RealESRGAN",856 "id": 217772,857 "title": "Parallel processing a RealESRGAN",858 "slug": "parallel-processing-a-realesrgan",859 "posts_count": 1,860 "reply_count": 0,861 "highest_post_number": 1,862 "image_url": null,863 "created_at": "2025-03-13T04:18:41.381Z",864 "last_posted_at": "2025-03-13T04:18:41.420Z",865 "bumped": true,866 "bumped_at": "2025-03-13T04:18:41.420Z",867 "archetype": "regular",868 "unseen": false,869 "pinned": false,870 "unpinned": null,871 "visible": true,872 "closed": false,873 "archived": false,874 "bookmarked": null,875 "liked": null,876 "tags_descriptions": {},877 "like_count": 0,878 "views": 24,879 "category_id": 5,880 "featured_link": null,881 "has_accepted_answer": false,882 "posters": [883 {884 "extras": "latest single",885 "description": "Original Poster, Most Recent Poster",886 "user": {887 "id": 83232,888 "username": "HAli",889 "name": "",890 "avatar_template": "/user_avatar/discuss.pytorch.org/hali/{size}/76127_2.png",891 "trust_level": 0892 }893 }894 ]895 },896 {897 "fancy_title": "Image classifier for dataset of images with some attributes",898 "id": 216708,899 "title": "Image classifier for dataset of images with some attributes",900 "slug": "image-classifier-for-dataset-of-images-with-some-attributes",901 "posts_count": 1,902 "reply_count": 0,903 "highest_post_number": 1,904 "image_url": null,905 "created_at": "2025-02-15T12:32:21.917Z",906 "last_posted_at": "2025-02-15T12:32:21.957Z",907 "bumped": true,908 "bumped_at": "2025-02-15T12:32:21.957Z",909 "archetype": "regular",910 "unseen": false,911 "pinned": false,912 "unpinned": null,913 "visible": true,914 "closed": false,915 "archived": false,916 "bookmarked": null,917 "liked": null,918 "tags_descriptions": {},919 "like_count": 0,920 "views": 21,921 "category_id": 5,922 "featured_link": null,923 "has_accepted_answer": false,924 "posters": [925 {926 "extras": "latest single",927 "description": "Original Poster, Most Recent Poster",928 "user": {929 "id": 82704,930 "username": "2U3_1967",931 "name": null,932 "avatar_template": "/letter_avatar_proxy/v4/letter/2/cab0a1/{size}.png",933 "trust_level": 1934 }935 }936 ]937 },938 {939 "fancy_title": "Significantly Different Results Using cuDNN",940 "id": 214089,941 "title": "Significantly Different Results Using cuDNN",942 "slug": "significantly-different-results-using-cudnn",943 "posts_count": 7,944 "reply_count": 4,945 "highest_post_number": 7,946 "image_url": null,947 "created_at": "2024-12-11T09:09:33.628Z",948 "last_posted_at": "2025-01-16T21:57:08.119Z",949 "bumped": true,950 "bumped_at": "2025-01-16T21:57:08.119Z",951 "archetype": "regular",952 "unseen": false,953 "pinned": false,954 "unpinned": null,955 "visible": true,956 "closed": false,957 "archived": false,958 "bookmarked": null,959 "liked": null,960 "tags_descriptions": {},961 "like_count": 3,962 "views": 213,963 "category_id": 5,964 "featured_link": null,965 "has_accepted_answer": false,966 "posters": [967 {968 "extras": null,969 "description": "Original Poster",970 "user": {971 "id": 81445,972 "username": "al21",973 "name": "",974 "avatar_template": "/letter_avatar_proxy/v4/letter/a/90db22/{size}.png",975 "trust_level": 0976 }977 },978 {979 "extras": "latest",980 "description": "Most Recent Poster",981 "user": {982 "id": 1,983 "username": "smth",984 "name": "",985 "avatar_template": "/user_avatar/discuss.pytorch.org/smth/{size}/13_2.png",986 "admin": true,987 "moderator": true,988 "trust_level": 2989 }990 }991 ]992 },993 {994 "fancy_title": "Why is there such a huge performance gap between bfloat16, float16, and float32?",995 "id": 219536,996 "title": "Why is there such a huge performance gap between bfloat16, float16, and float32?",997 "slug": "why-is-there-such-a-huge-performance-gap-between-bfloat16-float16-and-float32",998 "posts_count": 5,999 "reply_count": 2,1000 "highest_post_number": 5,1001 "image_url": null,1002 "created_at": "2025-04-28T04:53:55.145Z",1003 "last_posted_at": "2025-04-29T01:13:37.655Z",1004 "bumped": true,1005 "bumped_at": "2025-04-29T01:13:37.655Z",1006 "archetype": "regular",1007 "unseen": false,1008 "pinned": false,1009 "unpinned": null,1010 "visible": true,1011 "closed": false,1012 "archived": false,1013 "bookmarked": null,1014 "liked": null,1015 "tags_descriptions": {},1016 "like_count": 0,1017 "views": 332,1018 "category_id": 5,1019 "featured_link": null,1020 "has_accepted_answer": false,1021 "posters": [1022 {1023 "extras": "latest",1024 "description": "Original Poster, Most Recent Poster",1025 "user": {1026 "id": 71147,1027 "username": "yinjun1131",1028 "name": "yinjun",1029 "avatar_template": "/letter_avatar_proxy/v4/letter/y/439d5e/{size}.png",1030 "trust_level": 11031 }1032 },1033 {1034 "extras": null,1035 "description": "Frequent Poster",1036 "user": {1037 "id": 3534,1038 "username": "ptrblck",1039 "name": "",1040 "avatar_template": "/user_avatar/discuss.pytorch.org/ptrblck/{size}/1823_2.png",1041 "admin": true,1042 "moderator": true,1043 "trust_level": 21044 }1045 }1046 ]1047 }1048 ],1049 "tags_descriptions": {},1050 "fancy_title": "Removing last layer from yolov8 pretrained model",1051 "id": 178553,1052 "title": "Removing last layer from yolov8 pretrained model",1053 "posts_count": 1,1054 "created_at": "2023-04-26T08:09:39.872Z",1055 "views": 1133,1056 "reply_count": 0,1057 "like_count": 0,1058 "last_posted_at": "2023-04-26T08:09:39.952Z",1059 "visible": true,1060 "closed": false,1061 "archived": false,1062 "has_summary": false,1063 "archetype": "regular",1064 "slug": "removing-last-layer-from-yolov8-pretrained-model",1065 "category_id": 5,1066 "word_count": 89,1067 "deleted_at": null,1068 "user_id": 10040,1069 "featured_link": null,1070 "pinned_globally": false,1071 "pinned_at": null,1072 "pinned_until": null,1073 "image_url": null,1074 "slow_mode_seconds": 0,1075 "draft": null,1076 "draft_key": "topic_178553",1077 "draft_sequence": null,1078 "unpinned": null,1079 "pinned": false,1080 "current_post_number": 1,1081 "highest_post_number": 1,1082 "deleted_by": null,1083 "actions_summary": [1084 {1085 "id": 4,1086 "count": 0,1087 "hidden": false,1088 "can_act": false1089 },1090 {1091 "id": 8,1092 "count": 0,1093 "hidden": false,1094 "can_act": false1095 },1096 {1097 "id": 10,1098 "count": 0,1099 "hidden": false,1100 "can_act": false1101 },1102 {1103 "id": 7,1104 "count": 0,1105 "hidden": false,1106 "can_act": false1107 }1108 ],1109 "chunk_size": 20,1110 "bookmarked": false,1111 "topic_timer": null,1112 "message_bus_last_id": 0,1113 "participant_count": 1,1114 "show_read_indicator": false,1115 "thumbnails": null,1116 "slow_mode_enabled_until": null,1117 "can_vote": false,1118 "vote_count": 0,1119 "user_voted": false,1120 "discourse_zendesk_plugin_zendesk_id": null,1121 "discourse_zendesk_plugin_zendesk_url": "https://your-url.zendesk.com/agent/tickets/",1122 "details": {1123 "can_edit": false,1124 "notification_level": 1,1125 "participants": [1126 {1127 "id": 10040,1128 "username": "Ajith",1129 "name": "Ajith",1130 "avatar_template": "/user_avatar/discuss.pytorch.org/ajith/{size}/59949_2.png",1131 "post_count": 1,1132 "primary_group_name": null,1133 "flair_name": null,1134 "flair_url": null,1135 "flair_color": null,1136 "flair_bg_color": null,1137 "flair_group_id": null,1138 "trust_level": 11139 }1140 ],1141 "created_by": {1142 "id": 10040,1143 "username": "Ajith",1144 "name": "Ajith",1145 "avatar_template": "/user_avatar/discuss.pytorch.org/ajith/{size}/59949_2.png"1146 },1147 "last_poster": {1148 "id": 10040,1149 "username": "Ajith",1150 "name": "Ajith",1151 "avatar_template": "/user_avatar/discuss.pytorch.org/ajith/{size}/59949_2.png"1152 },1153 "links": [1154 {1155 "url": "https://github.com/ultralytics/ultralytics/blob/main/ultralytics/models/v8/yolov8.yaml",1156 "title": "ultralytics/yolov8.yaml at main · ultralytics/ultralytics · GitHub",1157 "internal": false,1158 "attachment": false,1159 "reflection": false,1160 "clicks": 23,1161 "user_id": 10040,1162 "domain": "github.com",1163 "root_domain": "github.com"1164 }1165 ]1166 },1167 "bookmarks": []1168 },1169 {1170 "post_stream": {1171 "posts": [1172 {1173 "id": 395555,1174 "name": "Julian Büchel",1175 "username": "Julian_Buchel",1176 "avatar_template": "/user_avatar/discuss.pytorch.org/julian_buchel/{size}/37532_2.png",1177 "created_at": "2023-04-03T13:41:31.168Z",1178 "cooked": "<p>I created a Conv2d layer that uses unfolding followed by an MVM. I then combine it with a BatchNorm operation in a Sequential model. I do the same but this time with a normal Conv2d layer. I then profile both and compare the outputs.<br>\nI see that the batch norm call <code>aten::batch_norm</code> takes 3.5x longer with the unfolded convolution. I put everything on Cuda. Here is a small snippet to reproduce:<br>\nWhy am I seeing this slow-down in the batch norm? Is there some fusing going on internally?</p>\n<pre><code class=\"lang-auto\">import torch\n\nclass ConvUnfold(torch.nn.Conv2d):\n def __init__(\n self,\n in_channels: int,\n out_channels: int,\n kernel_size,\n bias,\n device,\n ):\n super().__init__(\n in_channels,\n out_channels,\n kernel_size,\n bias=bias,\n device=device,\n )\n self.linear_weight = self.weight.reshape(shape=(out_channels, in_channels*kernel_size**2))\n self.linear_weight = self.linear_weight.to(device)\n\n def _mvm(self, input):\n return input @ self.linear_weight.T\n\n def _forward_unfold(self, x_input):\n im_shape = x_input.shape\n x_input_ = torch.nn.functional.unfold(x_input, kernel_size=self.kernel_size, dilation=self.dilation,\n padding=self.padding, stride=self.stride).transpose(1, 2)\n out = self._mvm(x_input_).transpose(1, 2)\n out_size = (im_shape[2] + 2 * self.padding[0]\n - self.dilation[0] * (self.kernel_size[0] - 1) - 1) // self.stride[0] + 1\n return out.view(im_shape[0], self.out_channels, out_size, -1)\n\n def forward(self, input):\n out = self._forward_unfold(input)\n return out\n\n\nif __name__ == \"__main__\":\n device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n input = torch.randn(size=(128,3,32,32)).to(device)\n unf = torch.nn.Sequential(ConvUnfold(3, 16, 3, bias=False, device=device), torch.nn.BatchNorm2d(16))\n conv = torch.nn.Sequential(torch.nn.Conv2d(3, 16, 3, bias=False), torch.nn.BatchNorm2d(16))\n unf.eval(); conv.eval()\n\n unf.to(device); conv.to(device)\n conv.load_state_dict(unf.state_dict())\n\n from torch.profiler import profile, record_function, ProfilerActivity\n with profile(activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA]) as prof_unf:\n with record_function(\"model_inference\"):\n unf(input)\n\n with profile(activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA]) as prof_conv:\n with record_function(\"model_inference\"):\n conv(input)\n\n print(prof_unf.key_averages().table(sort_by=\"cuda_time_total\", row_limit=10))\n print(prof_conv.key_averages().table(sort_by=\"cuda_time_total\", row_limit=10))\n\n</code></pre>",1179 "post_number": 1,1180 "post_type": 1,1181 "posts_count": 5,1182 "updated_at": "2023-04-03T13:42:16.147Z",1183 "reply_count": 1,1184 "reply_to_post_number": null,1185 "quote_count": 0,1186 "incoming_link_count": 210,1187 "reads": 12,1188 "readers_count": 11,1189 "score": 1057.4,1190 "yours": false,1191 "topic_id": 176543,1192 "topic_slug": "why-does-batch-norm-slow-down-when-conv2d-is-executed-in-unfolded-fashion",1193 "display_username": "Julian Büchel",1194 "primary_group_name": null,1195 "flair_name": null,1196 "flair_url": null,1197 "flair_bg_color": null,1198 "flair_color": null,1199 "flair_group_id": null,1200 "badges_granted": [],