{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":311716183,"defaultBranch":"master","name":"zennit","ownerLogin":"chr5tphr","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-11-10T16:17:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/15217558?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1712585736.0","currentOid":""},"activityList":{"items":[{"before":"839d9372397ee5008dbb30e043752a2b12ed9ea9","after":"d9689409148077214730e08e896b7a8e477845f9","ref":"refs/heads/hook-multi-input-output","pushedAt":"2024-04-09T17:16:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Core: Multiple Inputs and Keyword Arguments\n\n- use additions to forward hooks in torch 2.0.0 to pass kwargs to\n pass keyword arguments\n- handle multiple inputs and outputs in core.Hook and core.BasicHook, by\n passing all required grad_outputs and inputs to the backward\n implementation\n\nTODO:\n\n- attribution scores are currently wrong in BasicHook, likely an issue\n with the gradient inside BasicHook? Might be some cross-terms\n interacting that should not interact\n\n- finish draft and test implementation\n- add tests\n- add documentation\n\n- This stands in conflict with #168, but promises a better\n implementation by handling inputs and outpus as common to a single\n function, rather than individually as proposed in #168","shortMessageHtmlLink":"Core: Multiple Inputs and Keyword Arguments"}},{"before":"d127af8bc0bf02a9551f19fe56337e15839baf0e","after":"839d9372397ee5008dbb30e043752a2b12ed9ea9","ref":"refs/heads/hook-multi-input-output","pushedAt":"2024-04-08T17:13:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Core: Multiple Inputs and Keyword Arguments\n\n- use additions to forward hooks in torch 2.0.0 to pass kwargs to\n pass keyword arguments\n- handle multiple inputs and outputs in core.Hook and core.BasicHook, by\n passing all required grad_outputs and inputs to the backward\n implementation\n\nTODO:\n\n- finish draft and test implementation\n- add tests\n- add documentation\n\n- This stands in conflict with #168, but promises a better\n implementation by handling inputs and outpus as common to a single\n function, rather than individually as proposed in #168","shortMessageHtmlLink":"Core: Multiple Inputs and Keyword Arguments"}},{"before":"3630eca5013c9311f6d9d6eb3fa073166f338807","after":null,"ref":"refs/heads/example-resnet-no-residual","pushedAt":"2024-04-08T14:15:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"}},{"before":"065c82176c7abf6f1e2f6082d514022951dbea31","after":"e5699aa7e6fb98bec67505af917d0a17cd81d3b5","ref":"refs/heads/master","pushedAt":"2024-04-08T14:15:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Example: Add option to ignore residual\n\n- add option to ignore residual/ skip-connection for the computation of\n attribution scores in feed_forward.py","shortMessageHtmlLink":"Example: Add option to ignore residual"}},{"before":"a6dc3bbaa9f06089d02f4fabd6e27eab7ef247e7","after":"3630eca5013c9311f6d9d6eb3fa073166f338807","ref":"refs/heads/example-resnet-no-residual","pushedAt":"2024-04-08T13:17:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Example: Add option to ignore residual\n\n- add option to ignore residual/ skip-connection for the computation of\n attribution scores in feed_forward.py","shortMessageHtmlLink":"Example: Add option to ignore residual"}},{"before":"10c7c25454a3658721ca26bc718453c4b72085ad","after":null,"ref":"refs/heads/docs-nbconvert-pin","pushedAt":"2024-04-08T13:16:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"}},{"before":"c71c868b3434c893eef54e27752dc5998e8e9cb2","after":"065c82176c7abf6f1e2f6082d514022951dbea31","ref":"refs/heads/master","pushedAt":"2024-04-08T13:16:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Docs: Pin nbconvert < 7.14\n\n- pin nbconvert due to directive errors in sphinx caused by nbconvert >=\n 7.14","shortMessageHtmlLink":"Docs: Pin nbconvert < 7.14"}},{"before":"0769e86f4e5282f47d6f95e367e19d029d0e8aa3","after":null,"ref":"refs/heads/core-collect-leaves-yield-from","pushedAt":"2024-04-08T13:16:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"}},{"before":"60a2c088a29fb0a68ed63f596858d0b9becff374","after":"c71c868b3434c893eef54e27752dc5998e8e9cb2","ref":"refs/heads/master","pushedAt":"2024-04-08T13:16:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Core: yield from in collect_leaves\n\n- use yield from in `collect_leaves` in `core.py` to iterate through\n children","shortMessageHtmlLink":"Core: yield from in collect_leaves"}},{"before":null,"after":"10c7c25454a3658721ca26bc718453c4b72085ad","ref":"refs/heads/docs-nbconvert-pin","pushedAt":"2024-04-08T12:56:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Docs: Pin nbconvert < 7.14\n\n- pin nbconvert due to directive errors in sphinx caused by nbconvert >=\n 7.14","shortMessageHtmlLink":"Docs: Pin nbconvert < 7.14"}},{"before":null,"after":"0769e86f4e5282f47d6f95e367e19d029d0e8aa3","ref":"refs/heads/core-collect-leaves-yield-from","pushedAt":"2024-04-08T12:41:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Core: yield from in collect_leaves\n\n- use yield from in `collect_leaves` in `core.py` to iterate through\n children","shortMessageHtmlLink":"Core: yield from in collect_leaves"}},{"before":null,"after":"a6dc3bbaa9f06089d02f4fabd6e27eab7ef247e7","ref":"refs/heads/example-resnet-no-residual","pushedAt":"2024-04-08T12:10:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Example: Add option to ignore residual\n\n- add option to ignore residual/ skip-connection for the computation of\n attribution scores in feed_forward.py","shortMessageHtmlLink":"Example: Add option to ignore residual"}},{"before":"00692ec5e32a1a88b9d4a0e8a2fb6289f72b9caa","after":null,"ref":"refs/heads/example-add-resnet18-vgg11","pushedAt":"2023-08-23T14:41:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"}},{"before":"e9c6e090067763bc0c8ba8c504796cebf16b4519","after":"60a2c088a29fb0a68ed63f596858d0b9becff374","ref":"refs/heads/master","pushedAt":"2023-08-23T14:41:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Example: Add ResNet18/VGG11 to feed_forward.py\n\n- add to the supported models in `share/example/feed_forward.py`:\n - `resnet18`\n - `vgg11`\n - `vgg11_bn`","shortMessageHtmlLink":"Example: Add ResNet18/VGG11 to feed_forward.py"}},{"before":"c30e3cc4586b43a0cff37e8e74e63cfb9324c710","after":"e9c6e090067763bc0c8ba8c504796cebf16b4519","ref":"refs/heads/master","pushedAt":"2023-08-22T15:22:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Fix ValueError message in AlphaBeta\n\nCorrect the error message to indicate that alpha and beta parameters must be\nnon-negative instead of positive.","shortMessageHtmlLink":"Fix ValueError message in AlphaBeta"}},{"before":null,"after":"d127af8bc0bf02a9551f19fe56337e15839baf0e","ref":"refs/heads/hook-multi-input-output","pushedAt":"2023-08-10T17:58:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Core: Multiple Inputs and Keyword Arguments\n\n- use additions to forward hooks in torch 2.0.0 to pass kwargs to\n pass keyword arguments\n- handle multiple inputs and outputs in core.Hook and core.BasicHook, by\n passing all required grad_outputs and inputs to the backward\n implementation\n\nTODO:\n\n- finish draft and test implementation\n- add tests\n- add documentation\n\n- This stands in conflict with #168, but promises a better\n implementation by handling inputs and outpus as common to a single\n function, rather than individually as proposed in #168","shortMessageHtmlLink":"Core: Multiple Inputs and Keyword Arguments"}},{"before":null,"after":"00692ec5e32a1a88b9d4a0e8a2fb6289f72b9caa","ref":"refs/heads/example-add-resnet18-vgg11","pushedAt":"2023-08-10T17:47:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Example: Add ResNet18/VGG11 to feed_forward.py\n\n- add to the supported models in `share/example/feed_forward.py`:\n - `resnet18`\n - `vgg11`\n - `vgg11_bn`","shortMessageHtmlLink":"Example: Add ResNet18/VGG11 to feed_forward.py"}},{"before":"39d190951adf058a6e52a5b1f97ff808a30fd3e7","after":null,"ref":"refs/heads/canonizer-merge-batchnorm-gradfix","pushedAt":"2023-07-12T17:02:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"}},{"before":"4c54f598b81e840ab1662c3be9f9fdcc413957ae","after":"c30e3cc4586b43a0cff37e8e74e63cfb9324c710","ref":"refs/heads/master","pushedAt":"2023-07-12T17:02:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Canonizers/ParamMod: Fix Gradients for Parameters\n\n- when computing the gradient wrt. parameters on models canonized with\n MergeBatchNorm, the gradient would previously not be computed with\n respect to the original parameters, as they were detached from the\n graph/overwritten\n- now, the parameters of the linear module are explicitly set to tensors\n which depend on the original parameters, leading to the correct\n computation of gradients\n- set the batch-norm's `eps` to zero and store the old value, thus\n fixing the slightly different values\n- ParmMod: use object.__setattr__ to overwrite the module attributes\n instead of setting a new torch.nn.Parameter to correctly track the\n gradient wrt. the original parameter","shortMessageHtmlLink":"Canonizers/ParamMod: Fix Gradients for Parameters"}},{"before":"05e324b2081cf7e33bfcb1724ba8086921dfc765","after":"4c54f598b81e840ab1662c3be9f9fdcc413957ae","ref":"refs/heads/master","pushedAt":"2023-07-12T17:00:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"remove nn.MultiheadAttention from Activation types.py","shortMessageHtmlLink":"remove nn.MultiheadAttention from Activation types.py"}},{"before":"3121bb223061506834ca68abad3eefc792dea999","after":"05e324b2081cf7e33bfcb1724ba8086921dfc765","ref":"refs/heads/master","pushedAt":"2023-07-12T16:59:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Fix small typo in image-classification-vgg-resnet.ipynb","shortMessageHtmlLink":"Fix small typo in image-classification-vgg-resnet.ipynb"}},{"before":"5808f8a971fc0b6026674fecb30c18b8725cd0b1","after":"39d190951adf058a6e52a5b1f97ff808a30fd3e7","ref":"refs/heads/canonizer-merge-batchnorm-gradfix","pushedAt":"2023-05-09T09:34:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Canonizers/ParamMod: Fix Gradients for Parameters\n\n- when computing the gradient wrt. parameters on models canonized with\n MergeBatchNorm, the gradient would previously not be computed with\n respect to the original parameters, as they were detached from the\n graph/overwritten\n- now, the parameters of the linear module are explicitly set to tensors\n which depend on the original parameters, leading to the correct\n computation of gradients\n- set the batch-norm's `eps` to zero and store the old value, thus\n fixing the slightly different values\n- ParmMod: use object.__setattr__ to overwrite the module attributes\n instead of setting a new torch.nn.Parameter to correctly track the\n gradient wrt. the original parameter","shortMessageHtmlLink":"Canonizers/ParamMod: Fix Gradients for Parameters"}},{"before":"56ad89e47aed402f6937d022bea6e87483025129","after":"5808f8a971fc0b6026674fecb30c18b8725cd0b1","ref":"refs/heads/canonizer-merge-batchnorm-gradfix","pushedAt":"2023-05-09T09:33:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Canonizers/ParamMod: Fix Gradients for Parameters\n\n- when computing the gradient wrt. parameters on models canonized with\n MergeBatchNorm, the gradient would previously not be computed with\n respect to the original parameters, as they were detached from the\n graph/overwritten\n- now, the parameters of the linear module are explicitly set to tensors\n which depend on the original parameters, leading to the correct\n computation of gradients\n- set the batch-norm's `eps` to zero and store the old value, thus\n fixing the slightly different values\n- ParmMod: use object.__setattr__ to overwrite the module attributes\n instead of setting a new torch.nn.Parameter to correctly track the\n gradient wrt. the original parameter","shortMessageHtmlLink":"Canonizers/ParamMod: Fix Gradients for Parameters"}},{"before":"3556c7f2a9e11138f3f0fe577689bd3a09965a4e","after":"56ad89e47aed402f6937d022bea6e87483025129","ref":"refs/heads/canonizer-merge-batchnorm-gradfix","pushedAt":"2023-05-08T16:59:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Canonizers: Fix gradient for MergeBatchNorm\n\n- when computing the gradient wrt. parameters on models canonized with\n MergeBatchNorm, the gradient would previously not be computed with\n respect to the original parameters, as they were detached from the\n graph/overwritten\n- now, the parameters of the linear module are explicitly set to tensors\n which depend on the original parameters, leading to the correct\n computation of gradients\n- set the batch-norm's `eps` to zero and store the old value, thus\n fixing the slightly different values","shortMessageHtmlLink":"Canonizers: Fix gradient for MergeBatchNorm"}},{"before":null,"after":"3556c7f2a9e11138f3f0fe577689bd3a09965a4e","ref":"refs/heads/canonizer-merge-batchnorm-gradfix","pushedAt":"2023-05-08T16:57:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"Canonizers: Fix gradient for MergeBatchNorm\n\n- when computing the gradient wrt. parameters on models canonized with\n MergeBatchNorm, the gradient would previously not be computed with\n respect to the original parameters, as they were detached from the\n graph/overwritten\n- now, the parameters of the linear module are explicitly set to tensors\n which depend on the original parameters, leading to the correct\n computation of gradients","shortMessageHtmlLink":"Canonizers: Fix gradient for MergeBatchNorm"}},{"before":null,"after":"eb058745a996b28f4ba7f2602d28cae50f0a3374","ref":"refs/heads/multiple-hooks","pushedAt":"2023-04-24T17:10:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"chr5tphr","name":"Christopher","path":"/chr5tphr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15217558?s=80&v=4"},"commit":{"message":"WIP: GradOutHook, MergedComposite and multi-hooks\n\n- support the use of multiple hooks by checking for tuples form\n Composites' module_map and registering all of them (multiple Hook\n instances only overwrite the results of another)\n- add HookBase as another layer of abstraction, above both Hook (which\n hooks over one full module) and GradOutHook (which hooks only the\n output of a function)\n- add GradOutHook, which can modify the gradient at the output of a\n module\n- add MultiComposite as a parent to MixedComposite\n- add MergedComposite, inheriting from MultiComposite, which merges\n rules returned from composites for a multi-hook setting rather than\n using the first hook that applies\n\nTodo:\n\n- finish functionality\n- finish docstrings\n- extend documentation (How-To etc.)\n- write tests","shortMessageHtmlLink":"WIP: GradOutHook, MergedComposite and multi-hooks"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAELEBF4gA","startCursor":null,"endCursor":null}},"title":"Activity ยท chr5tphr/zennit"}