()
| 541 | |
| 542 | @contextmanager |
| 543 | def param_stat_context(): |
| 544 | def wrapper(fun): |
| 545 | @functools.wraps(fun) |
| 546 | def param_access_record(module, item): |
| 547 | member = fun(module, item) |
| 548 | if ( |
| 549 | item in ["weight", "bias"] |
| 550 | and member is not None |
| 551 | and member not in recorded_parameters |
| 552 | ): |
| 553 | name = module_to_name[module] |
| 554 | if item == "weight": |
| 555 | suffix = "-w" |
| 556 | elif item == "bias": |
| 557 | suffix = "-b" |
| 558 | |
| 559 | param_name = name + suffix |
| 560 | param_stats = get_param_stats(member) |
| 561 | param_stats["name"] = param_name |
| 562 | params.append(param_stats) |
| 563 | recorded_parameters.add(member) |
| 564 | |
| 565 | return member |
| 566 | |
| 567 | return param_access_record |
| 568 | |
| 569 | origin_get_attr = object.__getattribute__ |
| 570 | try: |
| 571 | M.Module.__getattribute__ = wrapper(origin_get_attr) |
| 572 | yield |
| 573 | finally: |
| 574 | M.Module.__getattribute__ = origin_get_attr |
| 575 | |
| 576 | with set_module_mode_safe(model, training=False) as model, param_stat_context(): |
| 577 | model(*inputs) |
no test coverage detected