Anurag1734/cuda-error-resolution-analysis
07
1[2 {3 "post_stream": {4 "posts": [5 {6 "id": 421594,7 "name": "Marc Slavin",8 "username": "Marc_Slavin",9 "avatar_template": "/user_avatar/discuss.pytorch.org/marc_slavin/{size}/64919_2.png",10 "created_at": "2023-10-24T12:40:21.062Z",11 "cooked": "<p>Hello everyone,</p>\n<p>I embarked on a project to teach a DQN to play the classic Pong from the OpenAI gym. I encountered a peculiar issue where the agent struggled to learn an effective strategy, often losing games. To break down the problem and understand it more intuitively, I designed an extremely simplified version of the Pong environment. It’s a basic 2x3 matrix where the ball consistently moves from right to left. The agent earns a reward for successfully hitting the ball and incurs a penalty for missing it.</p>\n<p>However, even with such a straightforward setup, my DQN frequently falls into local minima. An observation I made was that when I use <code>numpy.seed()</code>, the main factor for the agent’s learning capability becomes the seed value chosen initially. How could i make the learning process less depending on the seed value?</p>\n<p>Thank you in advance for your advice and expertise!</p>\n<pre><code class=\"lang-auto\">import torch\nimport torch.nn as nn\nimport torch.optim as optim\nimport numpy as np\n\nnp.random.seed(123)\n\nclass SimplePong:\n def __init__(self):\n self.reset()\n\n def reset(self):\n self.state = np.array([1, 0, 0, 0, 0, 0])\n self.next_state = self.state.copy()\n starting_positions = [2, 5]\n np.random.shuffle(starting_positions)\n self.state[starting_positions[0]] = 1\n return self.state\n\n def move_ball(self):\n # Check ball's position and move it\n if self.state[1] == 1: # Ball is in the top middle\n self.next_state[1], self.next_state[0] = 0, 1\n elif self.state[2] == 1: # Ball is in the top right\n self.next_state[2], self.next_state[1] = 0, 1\n elif self.state[4] == 1: # Ball is in the bottom middle\n self.next_state[4], self.next_state[3] = 0, 1\n elif self.state[5] == 1: # Ball is in the bottom right\n self.next_state[5], self.next_state[4] = 0, 1\n return self.next_state\n\n def take_action(self, action):\n if action == 1:\n self.next_state = self.state.copy()\n self.next_state[0], self.next_state[3] = self.next_state[3], self.next_state[0]\n\n def get_reward(self):\n if np.sum(self.next_state) == 1:\n return 1 # Ball was hit by paddle\n elif self.next_state[0] and self.next_state[3]:\n return -1 # Ball passed the paddle\n else:\n return 0\n\n def step(self, state, action, next_state):\n self.state = state\n self.next_state = next_state\n \"\"\"Perform one game step.\"\"\"\n self.take_action(action)\n self.next_state = self.move_ball()\n reward = self.get_reward()\n return self.state, reward, self.next_state\n\nclass DQNAgent(nn.Module):\n def __init__(self):\n super(DQNAgent, self).__init__()\n self.input_size = 6\n self.hidden_size = 4\n self.output_size = 2\n\n self.fc1 = nn.Linear(self.input_size, self.hidden_size)\n self.fc2 = nn.Linear(self.hidden_size, self.output_size)\n self.relu = nn.ReLU() # Activation function\n\n self.gamma = 0.99\n self.optimizer = optim.Adam(self.parameters(), lr=0.00005)\n self.loss_fn = nn.MSELoss()\n\n def forward(self, x):\n x = self.fc1(x)\n x = self.relu(x) # Apply activation after first layer\n y_hat = self.fc2(x)\n return y_hat\n\n def get_action(self, x, epsilon=0.1):\n if np.random.rand() < epsilon:\n return np.random.choice([0, 1])\n \n x = torch.tensor(x, dtype=torch.float32)\n q_values = self.forward(x)\n return torch.argmax(q_values).item()\n\n def train(self, state, action, reward, next_state):\n state = torch.tensor(state, dtype=torch.float32)\n next_state = torch.tensor(next_state, dtype=torch.float32)\n\n y_hat = self.forward(state)\n next_q_values = self.forward(next_state)\n\n target = y_hat.clone().detach()\n target[action] = reward + self.gamma * torch.max(next_q_values)\n\n loss = self.loss_fn(y_hat, target)\n\n self.optimizer.zero_grad()\n loss.backward()\n self.optimizer.step()\n\n\nif __name__ == '__main__':\n env = SimplePong()\n agent = DQNAgent()\n episodes = 5000\n rewards_history = []\n\n for episode in range(episodes):\n state = env.reset()\n next_state = state.copy()\n total_reward = 0\n\n for _ in range(200):\n epsilon = max(0.01, 0.1 - episode * 0.0001)\n action = agent.get_action(state, epsilon)\n state, reward, next_state = env.step(state, action, next_state)\n\n agent.train(state, action, reward, next_state)\n\n if reward != 0:\n state = env.reset()\n next_state = state.copy()\n else:\n state = next_state.copy()\n\n total_reward += reward\n\n rewards_history.append(total_reward)\n\n if episode % 100 == 0:\n avg_reward_last_100 = np.mean(rewards_history[-100:])\n print(f\"Episode {episode}, Average Reward (Last 100 episodes): {avg_reward_last_100}\")\n\n</code></pre>",12 "post_number": 1,13 "post_type": 1,14 "posts_count": 2,15 "updated_at": "2023-10-24T13:16:30.350Z",16 "reply_count": 0,17 "reply_to_post_number": null,18 "quote_count": 0,19 "incoming_link_count": 339,20 "reads": 7,21 "readers_count": 6,22 "score": 1696.4,23 "yours": false,24 "topic_id": 190567,25 "topic_slug": "difficulty-training-dqn-on-simplified-pong-environment-prone-to-local-minima",26 "display_username": "Marc Slavin",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": 2,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": 70388,48 "hidden": false,49 "trust_level": 0,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/difficulty-training-dqn-on-simplified-pong-environment-prone-to-local-minima/190567/1",56 "can_accept_answer": false,57 "can_unaccept_answer": false,58 "accepted_answer": false,59 "topic_accepted_answer": null,60 "can_vote": false61 },62 {63 "id": 421642,64 "name": "Marc Slavin",65 "username": "Marc_Slavin",66 "avatar_template": "/user_avatar/discuss.pytorch.org/marc_slavin/{size}/64919_2.png",67 "created_at": "2023-10-24T18:03:47.631Z",68 "cooked": "<p>I now get better results. In the end it was just quite a lot of hyperparameter tuning <img src=\"https://discuss.pytorch.org/images/emoji/apple/wink.png?v=12\" title=\":wink:\" class=\"emoji\" alt=\":wink:\" loading=\"lazy\" width=\"20\" height=\"20\"></p>",69 "post_number": 2,70 "post_type": 1,71 "posts_count": 2,72 "updated_at": "2023-10-24T18:03:47.631Z",73 "reply_count": 0,74 "reply_to_post_number": null,75 "quote_count": 0,76 "incoming_link_count": 0,77 "reads": 7,78 "readers_count": 6,79 "score": 1.4,80 "yours": false,81 "topic_id": 190567,82 "topic_slug": "difficulty-training-dqn-on-simplified-pong-environment-prone-to-local-minima",83 "display_username": "Marc Slavin",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": null,99 "bookmarked": false,100 "actions_summary": [],101 "moderator": false,102 "admin": false,103 "staff": false,104 "user_id": 70388,105 "hidden": false,106 "trust_level": 0,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/difficulty-training-dqn-on-simplified-pong-environment-prone-to-local-minima/190567/2",113 "can_accept_answer": false,114 "can_unaccept_answer": false,115 "accepted_answer": false,116 "topic_accepted_answer": null117 }118 ],119 "stream": [120 421594,121 421642122 ]123 },124 "timeline_lookup": [125 [126 1,127 732128 ]129 ],130 "suggested_topics": [131 {132 "fancy_title": "Help understanding data collectors",133 "id": 221438,134 "title": "Help understanding data collectors",135 "slug": "help-understanding-data-collectors",136 "posts_count": 2,137 "reply_count": 0,138 "highest_post_number": 3,139 "image_url": null,140 "created_at": "2025-07-11T12:17:32.291Z",141 "last_posted_at": "2025-08-04T21:38:41.562Z",142 "bumped": true,143 "bumped_at": "2025-08-04T21:38:41.562Z",144 "archetype": "regular",145 "unseen": false,146 "pinned": false,147 "unpinned": null,148 "visible": true,149 "closed": false,150 "archived": false,151 "bookmarked": null,152 "liked": null,153 "tags_descriptions": {},154 "like_count": 1,155 "views": 49,156 "category_id": 6,157 "featured_link": null,158 "has_accepted_answer": false,159 "posters": [160 {161 "extras": null,162 "description": "Original Poster",163 "user": {164 "id": 23119,165 "username": "icarosadero",166 "name": "Ícaro",167 "avatar_template": "/user_avatar/discuss.pytorch.org/icarosadero/{size}/16461_2.png",168 "trust_level": 1169 }170 },171 {172 "extras": "latest",173 "description": "Most Recent Poster",174 "user": {175 "id": 33609,176 "username": "vmoens",177 "name": "Vincent Moens",178 "avatar_template": "/user_avatar/discuss.pytorch.org/vmoens/{size}/26121_2.png",179 "trust_level": 2180 }181 }182 ]183 },184 {185 "fancy_title": "Batching a multicategorical spec",186 "id": 221780,187 "title": "Batching a multicategorical spec",188 "slug": "batching-a-multicategorical-spec",189 "posts_count": 5,190 "reply_count": 2,191 "highest_post_number": 5,192 "image_url": null,193 "created_at": "2025-07-24T11:34:39.452Z",194 "last_posted_at": "2025-08-27T07:41:52.199Z",195 "bumped": true,196 "bumped_at": "2025-08-27T07:41:52.199Z",197 "archetype": "regular",198 "unseen": false,199 "pinned": false,200 "unpinned": null,201 "visible": true,202 "closed": false,203 "archived": false,204 "bookmarked": null,205 "liked": null,206 "tags_descriptions": {},207 "like_count": 0,208 "views": 83,209 "category_id": 6,210 "featured_link": null,211 "has_accepted_answer": false,212 "posters": [213 {214 "extras": "latest",215 "description": "Original Poster, Most Recent Poster",216 "user": {217 "id": 74393,218 "username": "rsarpongstreetor",219 "name": "Richard Sarpong-Streetor",220 "avatar_template": "/user_avatar/discuss.pytorch.org/rsarpongstreetor/{size}/68703_2.png",221 "trust_level": 1222 }223 },224 {225 "extras": null,226 "description": "Frequent Poster",227 "user": {228 "id": 33609,229 "username": "vmoens",230 "name": "Vincent Moens",231 "avatar_template": "/user_avatar/discuss.pytorch.org/vmoens/{size}/26121_2.png",232 "trust_level": 2233 }234 }235 ]236 },237 {238 "fancy_title": "Reward averages to 0 instead of increasing",239 "id": 213859,240 "title": "Reward averages to 0 instead of increasing",241 "slug": "reward-averages-to-0-instead-of-increasing",242 "posts_count": 1,243 "reply_count": 0,244 "highest_post_number": 1,245 "image_url": "https://discuss.pytorch.org/uploads/default/original/3X/4/f/4f49f318b656109cd04ed572c9cde3e2ee73c556.png",246 "created_at": "2024-12-05T14:50:39.629Z",247 "last_posted_at": "2024-12-05T14:50:39.693Z",248 "bumped": true,249 "bumped_at": "2024-12-05T14:52:40.803Z",250 "archetype": "regular",251 "unseen": false,252 "pinned": false,253 "unpinned": null,254 "visible": true,255 "closed": false,256 "archived": false,257 "bookmarked": null,258 "liked": null,259 "tags_descriptions": {},260 "like_count": 0,261 "views": 132,262 "category_id": 6,263 "featured_link": null,264 "has_accepted_answer": false,265 "posters": [266 {267 "extras": "latest single",268 "description": "Original Poster, Most Recent Poster",269 "user": {270 "id": 81331,271 "username": "ChrisAB",272 "name": "Chris ",273 "avatar_template": "/user_avatar/discuss.pytorch.org/chrisab/{size}/74374_2.png",274 "trust_level": 1275 }276 }277 ]278 },279 {280 "fancy_title": "Multi-agent RL with different agent action spaces",281 "id": 220775,282 "title": "Multi-agent RL with different agent action spaces",283 "slug": "multi-agent-rl-with-different-agent-action-spaces",284 "posts_count": 1,285 "reply_count": 0,286 "highest_post_number": 1,287 "image_url": null,288 "created_at": "2025-06-12T20:04:10.315Z",289 "last_posted_at": "2025-06-12T20:04:10.357Z",290 "bumped": true,291 "bumped_at": "2025-06-14T05:31:12.178Z",292 "archetype": "regular",293 "unseen": false,294 "pinned": false,295 "unpinned": null,296 "visible": true,297 "closed": false,298 "archived": false,299 "bookmarked": null,300 "liked": null,301 "tags_descriptions": {},302 "like_count": 0,303 "views": 51,304 "category_id": 6,305 "featured_link": null,306 "has_accepted_answer": false,307 "posters": [308 {309 "extras": "latest single",310 "description": "Original Poster, Most Recent Poster",311 "user": {312 "id": 84679,313 "username": "acoursey",314 "name": null,315 "avatar_template": "/letter_avatar_proxy/v4/letter/a/dec6dc/{size}.png",316 "trust_level": 0317 }318 }319 ]320 },321 {322 "fancy_title": "Question about TorchRL ParallelEnv error on single-gpu device",323 "id": 222004,324 "title": "Question about TorchRL ParallelEnv error on single-gpu device",325 "slug": "question-about-torchrl-parallelenv-error-on-single-gpu-device",326 "posts_count": 4,327 "reply_count": 3,328 "highest_post_number": 5,329 "image_url": null,330 "created_at": "2025-08-02T16:44:33.651Z",331 "last_posted_at": "2025-08-05T07:28:51.594Z",332 "bumped": true,333 "bumped_at": "2025-08-05T07:28:51.594Z",334 "archetype": "regular",335 "unseen": false,336 "pinned": false,337 "unpinned": null,338 "visible": true,339 "closed": false,340 "archived": false,341 "bookmarked": null,342 "liked": null,343 "tags_descriptions": {},344 "like_count": 0,345 "views": 52,346 "category_id": 6,347 "featured_link": null,348 "has_accepted_answer": false,349 "posters": [350 {351 "extras": "latest",352 "description": "Original Poster, Most Recent Poster",353 "user": {354 "id": 85330,355 "username": "Ivar_Gaitan",356 "name": "Ivar Gaitan",357 "avatar_template": "/user_avatar/discuss.pytorch.org/ivar_gaitan/{size}/77850_2.png",358 "trust_level": 1359 }360 },361 {362 "extras": null,363 "description": "Frequent Poster",364 "user": {365 "id": 33609,366 "username": "vmoens",367 "name": "Vincent Moens",368 "avatar_template": "/user_avatar/discuss.pytorch.org/vmoens/{size}/26121_2.png",369 "trust_level": 2370 }371 }372 ]373 }374 ],375 "tags_descriptions": {},376 "fancy_title": "Difficulty Training DQN on Simplified Pong Environment - Prone to Local Minima",377 "id": 190567,378 "title": "Difficulty Training DQN on Simplified Pong Environment - Prone to Local Minima",379 "posts_count": 2,380 "created_at": "2023-10-24T12:40:20.999Z",381 "views": 749,382 "reply_count": 0,383 "like_count": 0,384 "last_posted_at": "2023-10-24T18:03:47.631Z",385 "visible": true,386 "closed": false,387 "archived": false,388 "has_summary": false,389 "archetype": "regular",390 "slug": "difficulty-training-dqn-on-simplified-pong-environment-prone-to-local-minima",391 "category_id": 6,392 "word_count": 669,393 "deleted_at": null,394 "user_id": 70388,395 "featured_link": null,396 "pinned_globally": false,397 "pinned_at": null,398 "pinned_until": null,399 "image_url": null,400 "slow_mode_seconds": 0,401 "draft": null,402 "draft_key": "topic_190567",403 "draft_sequence": null,404 "unpinned": null,405 "pinned": false,406 "current_post_number": 1,407 "highest_post_number": 2,408 "deleted_by": null,409 "actions_summary": [410 {411 "id": 4,412 "count": 0,413 "hidden": false,414 "can_act": false415 },416 {417 "id": 8,418 "count": 0,419 "hidden": false,420 "can_act": false421 },422 {423 "id": 10,424 "count": 0,425 "hidden": false,426 "can_act": false427 },428 {429 "id": 7,430 "count": 0,431 "hidden": false,432 "can_act": false433 }434 ],435 "chunk_size": 20,436 "bookmarked": false,437 "topic_timer": null,438 "message_bus_last_id": 0,439 "participant_count": 1,440 "show_read_indicator": false,441 "thumbnails": null,442 "slow_mode_enabled_until": null,443 "can_vote": false,444 "vote_count": 0,445 "user_voted": false,446 "discourse_zendesk_plugin_zendesk_id": null,447 "discourse_zendesk_plugin_zendesk_url": "https://your-url.zendesk.com/agent/tickets/",448 "details": {449 "can_edit": false,450 "notification_level": 1,451 "participants": [452 {453 "id": 70388,454 "username": "Marc_Slavin",455 "name": "Marc Slavin",456 "avatar_template": "/user_avatar/discuss.pytorch.org/marc_slavin/{size}/64919_2.png",457 "post_count": 2,458 "primary_group_name": null,459 "flair_name": null,460 "flair_url": null,461 "flair_color": null,462 "flair_bg_color": null,463 "flair_group_id": null,464 "trust_level": 0465 }466 ],467 "created_by": {468 "id": 70388,469 "username": "Marc_Slavin",470 "name": "Marc Slavin",471 "avatar_template": "/user_avatar/discuss.pytorch.org/marc_slavin/{size}/64919_2.png"472 },473 "last_poster": {474 "id": 70388,475 "username": "Marc_Slavin",476 "name": "Marc Slavin",477 "avatar_template": "/user_avatar/discuss.pytorch.org/marc_slavin/{size}/64919_2.png"478 }479 },480 "bookmarks": []481 },482 {483 "post_stream": {484 "posts": [485 {486 "id": 421548,487 "name": "",488 "username": "_Sandeep",489 "avatar_template": "/letter_avatar_proxy/v4/letter/_/9dc877/{size}.png",490 "created_at": "2023-10-24T02:04:45.827Z",491 "cooked": "<p>I have a graph neural network which has an architure that is roughly:<br>\nBackbone → Graph network.<br>\nIn order to compute an embedding for neighbor nodes, I have to pass them through the backbone, however I don’t want to update the backbone based on gradients from neighbors–only the targets. Is there a way to achieve this?</p>\n<p>I think the most simple approach would be to run a forward on the backbone on neighbor nodes and then just pass in the embeddings, but that seems a bit clunky.</p>",492 "post_number": 1,493 "post_type": 1,494 "posts_count": 3,495 "updated_at": "2023-10-24T02:05:15.347Z",496 "reply_count": 0,497 "reply_to_post_number": null,498 "quote_count": 0,499 "incoming_link_count": 5,500 "reads": 3,501 "readers_count": 2,502 "score": 25.6,503 "yours": false,504 "topic_id": 190537,505 "topic_slug": "not-backpropogating-through-neighbor-examples-in-graph-network-backbone",506 "display_username": "",507 "primary_group_name": null,508 "flair_name": null,509 "flair_url": null,510 "flair_bg_color": null,511 "flair_color": null,512 "flair_group_id": null,513 "badges_granted": [],514 "version": 1,515 "can_edit": false,516 "can_delete": false,517 "can_recover": false,518 "can_see_hidden_post": false,519 "can_wiki": false,520 "read": true,521 "user_title": null,522 "bookmarked": false,523 "actions_summary": [],524 "moderator": false,525 "admin": false,526 "staff": false,527 "user_id": 70376,528 "hidden": false,529 "trust_level": 1,530 "deleted_at": null,531 "user_deleted": false,532 "edit_reason": null,533 "can_view_edit_history": true,534 "wiki": false,535 "post_url": "/t/not-backpropogating-through-neighbor-examples-in-graph-network-backbone/190537/1",536 "can_accept_answer": false,537 "can_unaccept_answer": false,538 "accepted_answer": false,539 "topic_accepted_answer": null,540 "can_vote": false541 },542 {543 "id": 421598,544 "name": "",545 "username": "soulitzer",546 "avatar_template": "/letter_avatar_proxy/v4/letter/s/839c29/{size}.png",547 "created_at": "2023-10-24T13:28:09.583Z",548 "cooked": "<p>If you want to backward to a particular set of parameters, you can specify those parameters using the <code>inputs=</code> parameter <code>.backward()</code>.</p>",549 "post_number": 2,550 "post_type": 1,551 "posts_count": 3,552 "updated_at": "2023-10-24T13:28:09.583Z",553 "reply_count": 1,554 "reply_to_post_number": null,555 "quote_count": 0,556 "incoming_link_count": 1,557 "reads": 3,558 "readers_count": 2,559 "score": 25.6,560 "yours": false,561 "topic_id": 190537,562 "topic_slug": "not-backpropogating-through-neighbor-examples-in-graph-network-backbone",563 "display_username": "",564 "primary_group_name": null,565 "flair_name": null,566 "flair_url": null,567 "flair_bg_color": null,568 "flair_color": null,569 "flair_group_id": null,570 "badges_granted": [],571 "version": 1,572 "can_edit": false,573 "can_delete": false,574 "can_recover": false,575 "can_see_hidden_post": false,576 "can_wiki": false,577 "read": true,578 "user_title": null,579 "bookmarked": false,580 "actions_summary": [581 {582 "id": 2,583 "count": 1584 }585 ],586 "moderator": false,587 "admin": false,588 "staff": false,589 "user_id": 41396,590 "hidden": false,591 "trust_level": 2,592 "deleted_at": null,593 "user_deleted": false,594 "edit_reason": null,595 "can_view_edit_history": true,596 "wiki": false,597 "post_url": "/t/not-backpropogating-through-neighbor-examples-in-graph-network-backbone/190537/2",598 "can_accept_answer": false,599 "can_unaccept_answer": false,600 "accepted_answer": false,601 "topic_accepted_answer": null602 },603 {604 "id": 421632,605 "name": "",606 "username": "_Sandeep",607 "avatar_template": "/letter_avatar_proxy/v4/letter/_/9dc877/{size}.png",608 "created_at": "2023-10-24T17:18:33.387Z",609 "cooked": "<p>Yeah that works, but then I have to do more work in the backwards method (like backpropping through groups of params individually, which can get annoying and is hard to do with lightning).</p>",610 "post_number": 3,611 "post_type": 1,612 "posts_count": 3,613 "updated_at": "2023-10-24T17:18:33.387Z",614 "reply_count": 0,615 "reply_to_post_number": 2,616 "quote_count": 0,617 "incoming_link_count": 1,618 "reads": 3,619 "readers_count": 2,620 "score": 5.6,621 "yours": false,622 "topic_id": 190537,623 "topic_slug": "not-backpropogating-through-neighbor-examples-in-graph-network-backbone",624 "display_username": "",625 "primary_group_name": null,626 "flair_name": null,627 "flair_url": null,628 "flair_bg_color": null,629 "flair_color": null,630 "flair_group_id": null,631 "badges_granted": [],632 "version": 1,633 "can_edit": false,634 "can_delete": false,635 "can_recover": false,636 "can_see_hidden_post": false,637 "can_wiki": false,638 "read": true,639 "user_title": null,640 "reply_to_user": {641 "id": 41396,642 "username": "soulitzer",643 "name": "",644 "avatar_template": "/letter_avatar_proxy/v4/letter/s/839c29/{size}.png"645 },646 "bookmarked": false,647 "actions_summary": [],648 "moderator": false,649 "admin": false,650 "staff": false,651 "user_id": 70376,652 "hidden": false,653 "trust_level": 1,654 "deleted_at": null,655 "user_deleted": false,656 "edit_reason": null,657 "can_view_edit_history": true,658 "wiki": false,659 "post_url": "/t/not-backpropogating-through-neighbor-examples-in-graph-network-backbone/190537/3",660 "can_accept_answer": false,661 "can_unaccept_answer": false,662 "accepted_answer": false,663 "topic_accepted_answer": null664 }665 ],666 "stream": [667 421548,668 421598,669 421632670 ]671 },672 "timeline_lookup": [673 [674 1,675 733676 ],677 [678 2,679 732680 ]681 ],682 "suggested_topics": [683 {684 "fancy_title": "Building torch from source is failing",685 "id": 212524,686 "title": "Building torch from source is failing",687 "slug": "building-torch-from-source-is-failing",688 "posts_count": 8,689 "reply_count": 5,690 "highest_post_number": 8,691 "image_url": null,692 "created_at": "2024-11-04T22:36:43.710Z",693 "last_posted_at": "2024-11-05T20:28:20.673Z",694 "bumped": true,695 "bumped_at": "2024-11-05T20:28:20.673Z",696 "archetype": "regular",697 "unseen": false,698 "pinned": false,699 "unpinned": null,700 "visible": true,701 "closed": false,702 "archived": false,703 "bookmarked": null,704 "liked": null,705 "tags_descriptions": {},706 "like_count": 0,707 "views": 461,708 "category_id": 1,709 "featured_link": null,710 "has_accepted_answer": false,711 "posters": [712 {713 "extras": "latest",714 "description": "Original Poster, Most Recent Poster",715 "user": {716 "id": 80660,717 "username": "venkataramesh",718 "name": "Venkata Ramesh (Venkat)",719 "avatar_template": "/letter_avatar_proxy/v4/letter/v/a3d4f5/{size}.png",720 "trust_level": 1721 }722 },723 {724 "extras": null,725 "description": "Frequent Poster",726 "user": {727 "id": 3534,728 "username": "ptrblck",729 "name": "",730 "avatar_template": "/user_avatar/discuss.pytorch.org/ptrblck/{size}/1823_2.png",731 "admin": true,732 "moderator": true,733 "trust_level": 2734 }735 },736 {737 "extras": null,738 "description": "Frequent Poster",739 "user": {740 "id": 34486,741 "username": "leimao",742 "name": "Lei Mao",743 "avatar_template": "/user_avatar/discuss.pytorch.org/leimao/{size}/26860_2.png",744 "trust_level": 2745 }746 }747 ]748 },749 {750 "fancy_title": "How to (efficiently) apply a function without a “dim” argument to each row of a 2D tensor?",751 "id": 215365,752 "title": "How to (efficiently) apply a function without a \"dim\" argument to each row of a 2D tensor?",753 "slug": "how-to-efficiently-apply-a-function-without-a-dim-argument-to-each-row-of-a-2d-tensor",754 "posts_count": 1,755 "reply_count": 0,756 "highest_post_number": 1,757 "image_url": null,758 "created_at": "2025-01-14T10:42:36.374Z",759 "last_posted_at": "2025-01-14T10:42:36.448Z",760 "bumped": true,761 "bumped_at": "2025-01-14T10:42:36.448Z",762 "archetype": "regular",763 "unseen": false,764 "pinned": false,765 "unpinned": null,766 "visible": true,767 "closed": false,768 "archived": false,769 "bookmarked": null,770 "liked": null,771 "tags_descriptions": {},772 "like_count": 0,773 "views": 83,774 "category_id": 1,775 "featured_link": null,776 "has_accepted_answer": false,777 "posters": [778 {779 "extras": "latest single",780 "description": "Original Poster, Most Recent Poster",781 "user": {782 "id": 82080,783 "username": "Matt_T1",784 "name": "Matt T.",785 "avatar_template": "/user_avatar/discuss.pytorch.org/matt_t1/{size}/75097_2.png",786 "trust_level": 1787 }788 }789 ]790 },791 {792 "fancy_title": "Does PyTorch provide packages with _GLIBCXX_USE_CXX11_ABI=1?",793 "id": 214957,794 "title": "Does PyTorch provide packages with _GLIBCXX_USE_CXX11_ABI=1?",795 "slug": "does-pytorch-provide-packages-with-glibcxx-use-cxx11-abi-1",796 "posts_count": 3,797 "reply_count": 1,798 "highest_post_number": 3,799 "image_url": null,800 "created_at": "2025-01-04T10:53:53.137Z",801 "last_posted_at": "2025-01-06T06:58:20.181Z",802 "bumped": true,803 "bumped_at": "2025-01-06T06:58:20.181Z",804 "archetype": "regular",805 "unseen": false,806 "pinned": false,807 "unpinned": null,808 "visible": true,809 "closed": false,810 "archived": false,811 "bookmarked": null,812 "liked": null,813 "tags_descriptions": {},814 "like_count": 0,815 "views": 54,816 "category_id": 1,817 "featured_link": null,818 "has_accepted_answer": false,819 "posters": [820 {821 "extras": "latest",822 "description": "Original Poster, Most Recent Poster",823 "user": {824 "id": 81828,825 "username": "risemeup1",826 "name": "Risemeup1",827 "avatar_template": "/user_avatar/discuss.pytorch.org/risemeup1/{size}/74854_2.png",828 "trust_level": 1829 }830 },831 {832 "extras": null,833 "description": "Frequent Poster",834 "user": {835 "id": 3534,836 "username": "ptrblck",837 "name": "",838 "avatar_template": "/user_avatar/discuss.pytorch.org/ptrblck/{size}/1823_2.png",839 "admin": true,840 "moderator": true,841 "trust_level": 2842 }843 }844 ]845 },846 {847 "fancy_title": "Extremely slow training, high single CPU usage",848 "id": 214985,849 "title": "Extremely slow training, high single CPU usage",850 "slug": "extremely-slow-training-high-single-cpu-usage",851 "posts_count": 2,852 "reply_count": 0,853 "highest_post_number": 2,854 "image_url": null,855 "created_at": "2025-01-05T00:22:33.181Z",856 "last_posted_at": "2025-01-05T21:23:19.190Z",857 "bumped": true,858 "bumped_at": "2025-01-05T21:23:19.190Z",859 "archetype": "regular",860 "unseen": false,861 "pinned": false,862 "unpinned": null,863 "visible": true,864 "closed": false,865 "archived": false,866 "bookmarked": null,867 "liked": null,868 "tags_descriptions": {},869 "like_count": 0,870 "views": 209,871 "category_id": 1,872 "featured_link": null,873 "has_accepted_answer": false,874 "posters": [875 {876 "extras": null,877 "description": "Original Poster",878 "user": {879 "id": 81883,880 "username": "Lion-Lawliet",881 "name": "Lion Lawliet",882 "avatar_template": "/user_avatar/discuss.pytorch.org/lion-lawliet/{size}/74907_2.png",883 "trust_level": 1884 }885 },886 {887 "extras": "latest",888 "description": "Most Recent Poster",889 "user": {890 "id": 41396,891 "username": "soulitzer",892 "name": "",893 "avatar_template": "/letter_avatar_proxy/v4/letter/s/839c29/{size}.png",894 "trust_level": 2895 }896 }897 ]898 },899 {900 "fancy_title": "Feedback on a New Library to Replace Long, Repetitive Training Loops in PyTorch",901 "id": 218922,902 "title": "Feedback on a New Library to Replace Long, Repetitive Training Loops in PyTorch",903 "slug": "feedback-on-a-new-library-to-replace-long-repetitive-training-loops-in-pytorch",904 "posts_count": 1,905 "reply_count": 0,906 "highest_post_number": 1,907 "image_url": null,908 "created_at": "2025-04-10T00:46:55.251Z",909 "last_posted_at": "2025-04-10T00:46:55.293Z",910 "bumped": true,911 "bumped_at": "2025-04-10T10:09:17.622Z",912 "archetype": "regular",913 "unseen": false,914 "pinned": false,915 "unpinned": null,916 "visible": true,917 "closed": false,918 "archived": false,919 "bookmarked": null,920 "liked": null,921 "tags_descriptions": {},922 "like_count": 0,923 "views": 35,924 "category_id": 1,925 "featured_link": null,926 "has_accepted_answer": false,927 "posters": [928 {929 "extras": "latest single",930 "description": "Original Poster, Most Recent Poster",931 "user": {932 "id": 83731,933 "username": "amirhosseinghanipour",934 "name": "Amirhossein Ghanipour",935 "avatar_template": "/user_avatar/discuss.pytorch.org/amirhosseinghanipour/{size}/76555_2.png",936 "trust_level": 0937 }938 }939 ]940 }941 ],942 "tags_descriptions": {},943 "fancy_title": "Not backpropogating through neighbor examples in graph network backbone",944 "id": 190537,945 "title": "Not backpropogating through neighbor examples in graph network backbone",946 "posts_count": 3,947 "created_at": "2023-10-24T02:04:45.776Z",948 "views": 199,949 "reply_count": 1,950 "like_count": 1,951 "last_posted_at": "2023-10-24T17:18:33.387Z",952 "visible": true,953 "closed": false,954 "archived": false,955 "has_summary": false,956 "archetype": "regular",957 "slug": "not-backpropogating-through-neighbor-examples-in-graph-network-backbone",958 "category_id": 1,959 "word_count": 142,960 "deleted_at": null,961 "user_id": 70376,962 "featured_link": null,963 "pinned_globally": false,964 "pinned_at": null,965 "pinned_until": null,966 "image_url": null,967 "slow_mode_seconds": 0,968 "draft": null,969 "draft_key": "topic_190537",970 "draft_sequence": null,971 "unpinned": null,972 "pinned": false,973 "current_post_number": 1,974 "highest_post_number": 3,975 "deleted_by": null,976 "actions_summary": [977 {978 "id": 4,979 "count": 0,980 "hidden": false,981 "can_act": false982 },983 {984 "id": 8,985 "count": 0,986 "hidden": false,987 "can_act": false988 },989 {990 "id": 10,991 "count": 0,992 "hidden": false,993 "can_act": false994 },995 {996 "id": 7,997 "count": 0,998 "hidden": false,999 "can_act": false1000 }1001 ],1002 "chunk_size": 20,1003 "bookmarked": false,1004 "topic_timer": null,1005 "message_bus_last_id": 0,1006 "participant_count": 2,1007 "show_read_indicator": false,1008 "thumbnails": null,1009 "slow_mode_enabled_until": null,1010 "can_vote": false,1011 "vote_count": 0,1012 "user_voted": false,1013 "discourse_zendesk_plugin_zendesk_id": null,1014 "discourse_zendesk_plugin_zendesk_url": "https://your-url.zendesk.com/agent/tickets/",1015 "details": {1016 "can_edit": false,1017 "notification_level": 1,1018 "participants": [1019 {1020 "id": 70376,1021 "username": "_Sandeep",1022 "name": "",1023 "avatar_template": "/letter_avatar_proxy/v4/letter/_/9dc877/{size}.png",1024 "post_count": 2,1025 "primary_group_name": null,1026 "flair_name": null,1027 "flair_url": null,1028 "flair_color": null,1029 "flair_bg_color": null,1030 "flair_group_id": null,1031 "trust_level": 11032 },1033 {1034 "id": 41396,1035 "username": "soulitzer",1036 "name": "",1037 "avatar_template": "/letter_avatar_proxy/v4/letter/s/839c29/{size}.png",1038 "post_count": 1,1039 "primary_group_name": null,1040 "flair_name": null,1041 "flair_url": null,1042 "flair_color": null,1043 "flair_bg_color": null,1044 "flair_group_id": null,1045 "trust_level": 21046 }1047 ],1048 "created_by": {1049 "id": 70376,1050 "username": "_Sandeep",1051 "name": "",1052 "avatar_template": "/letter_avatar_proxy/v4/letter/_/9dc877/{size}.png"1053 },1054 "last_poster": {1055 "id": 70376,1056 "username": "_Sandeep",1057 "name": "",1058 "avatar_template": "/letter_avatar_proxy/v4/letter/_/9dc877/{size}.png"1059 }1060 },1061 "bookmarks": []1062 },1063 {1064 "post_stream": {1065 "posts": [1066 {1067 "id": 421628,1068 "name": "Vulkomilev",1069 "username": "vulkomilev",1070 "avatar_template": "/user_avatar/discuss.pytorch.org/vulkomilev/{size}/64931_2.png",1071 "created_at": "2023-10-24T16:58:36.359Z",1072 "cooked": "<p>When I try to use this function <a href=\"https://pytorch.org/docs/stable/generated/torch.Tensor.masked_scatter_.html#torch.Tensor.masked_scatter_\" class=\"inline-onebox\" rel=\"noopener nofollow ugc\">torch.Tensor.masked_scatter_ — PyTorch 2.1 documentation</a> like so</p>\n<pre><code> local_add = input[0:67, 0:32, 160:192]\n zeros = torch.zeros_like(input)\n zeros[0:67, 0:32, 160:192] = local_add\n\n mask = torch.zeros(67,32*10,32*10).bool()\n #mask[0:67, 0:32,160:192] = True\n #zeros = zeros.cuda()\n mask = mask.cuda()\n self.memory.memory_vb.masked_scatter_(mask,zeros)\n</code></pre>\n<p>I am getting an error :<br>\nRuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [67, 320, 320]], which is output 0 of MaskedScatterBackward0, is at version 1; expected version 0 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True)</p>",1073 "post_number": 1,1074 "post_type": 1,1075 "posts_count": 2,1076 "updated_at": "2023-10-24T16:58:36.359Z",1077 "reply_count": 0,1078 "reply_to_post_number": null,1079 "quote_count": 0,1080 "incoming_link_count": 82,1081 "reads": 7,1082 "readers_count": 6,1083 "score": 406.4,1084 "yours": false,1085 "topic_id": 190581,1086 "topic_slug": "masked-scatter-problem",1087 "display_username": "Vulkomilev",1088 "primary_group_name": null,1089 "flair_name": null,1090 "flair_url": null,1091 "flair_bg_color": null,1092 "flair_color": null,1093 "flair_group_id": null,1094 "badges_granted": [],1095 "version": 1,1096 "can_edit": false,1097 "can_delete": false,1098 "can_recover": false,1099 "can_see_hidden_post": false,1100 "can_wiki": false,1101 "link_counts": [1102 {1103 "url": "https://pytorch.org/docs/stable/generated/torch.Tensor.masked_scatter_.html#torch.Tensor.masked_scatter_",1104 "internal": false,1105 "reflection": false,1106 "title": "torch.Tensor.masked_scatter_ — PyTorch 2.1 documentation",1107 "clicks": 21108 }1109 ],1110 "read": true,1111 "user_title": null,1112 "bookmarked": false,1113 "actions_summary": [],1114 "moderator": false,1115 "admin": false,1116 "staff": false,1117 "user_id": 70394,1118 "hidden": false,1119 "trust_level": 1,1120 "deleted_at": null,1121 "user_deleted": false,1122 "edit_reason": null,1123 "can_view_edit_history": true,1124 "wiki": false,1125 "post_url": "/t/masked-scatter-problem/190581/1",1126 "can_accept_answer": false,1127 "can_unaccept_answer": false,1128 "accepted_answer": false,1129 "topic_accepted_answer": true,1130 "can_vote": false1131 },1132 {1133 "id": 421629,1134 "name": "",1135 "username": "ptrblck",1136 "avatar_template": "/user_avatar/discuss.pytorch.org/ptrblck/{size}/1823_2.png",1137 "created_at": "2023-10-24T17:06:04.921Z",1138 "cooked": "<p>Try to replace the inplace <code>tensor.masked_scatter_</code> op with <code>torch.masked_scatter</code> and assign the result to your attribute.</p>",1139 "post_number": 2,1140 "post_type": 1,1141 "posts_count": 2,1142 "updated_at": "2023-10-24T17:06:04.921Z",1143 "reply_count": 0,1144 "reply_to_post_number": null,1145 "quote_count": 0,1146 "incoming_link_count": 1,1147 "reads": 7,1148 "readers_count": 6,1149 "score": 6.4,1150 "yours": false,1151 "topic_id": 190581,1152 "topic_slug": "masked-scatter-problem",1153 "display_username": "",1154 "primary_group_name": null,1155 "flair_name": null,1156 "flair_url": null,1157 "flair_bg_color": null,1158 "flair_color": null,1159 "flair_group_id": null,1160 "badges_granted": [],1161 "version": 1,1162 "can_edit": false,1163 "can_delete": false,1164 "can_recover": false,1165 "can_see_hidden_post": false,1166 "can_wiki": false,1167 "read": true,1168 "user_title": "",1169 "bookmarked": false,1170 "actions_summary": [],1171 "moderator": true,1172 "admin": true,1173 "staff": true,1174 "user_id": 3534,1175 "hidden": false,1176 "trust_level": 2,1177 "deleted_at": null,1178 "user_deleted": false,1179 "edit_reason": null,1180 "can_view_edit_history": true,1181 "wiki": false,1182 "post_url": "/t/masked-scatter-problem/190581/2",1183 "can_accept_answer": false,1184 "can_unaccept_answer": false,1185 "accepted_answer": true,1186 "topic_accepted_answer": true1187 }1188 ],1189 "stream": [1190 421628,1191 4216291192 ]1193 },1194 "timeline_lookup": [1195 [1196 1,1197 7321198 ]1199 ],1200 "suggested_topics": [