New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add named tuple's error message and workaround for RET failure #46347
Conversation
Added the named tuple's error messages & workarounds when it returns from a function of a class in Pytorch Mobile. To identify the error cases (returning NamedTuple type), I used the following coditions: 1) ins.op == RET (for returing) 2) type->kind() == TypeKind::TupleType (for pruning non-tuple types) 3) type->cast<TupleType>().name() (for pruning Tuple type) - I could use the type's str (str() or repr_str()) directly, but I used whether it has the "name" attribute. Please give the comment for this. [Information of Tuple and NamedTuple types] 1. Tuple type->str(): (int, int) type->repr_str(): Tuple[int, int] type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type()->cast<NamedType>()>name(): False # different with NamedTuple 2. NamedTuple type->str(): __torch__.myNamedTuple type->repr_str(): __torch__.myNamedTuple type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type->cast<TupleType>().name() = True # different with Tuple (From the next diff, I will handle the other error cases: 1) returning List<module class>, Dict<module class> and 2) accessing Module class's member functions) Differential Revision: [D24291962](https://our.internmc.facebook.com/intern/diff/D24291962/) [ghstack-poisoned]
Added the named tuple's error messages & workarounds when it returns from a function of a class in Pytorch Mobile. To identify the error cases (returning NamedTuple type), I used the following coditions: 1) ins.op == RET (for returing) 2) type->kind() == TypeKind::TupleType (for pruning non-tuple types) 3) type->cast<TupleType>().name() (for pruning Tuple type) - I could use the type's str (str() or repr_str()) directly, but I used whether it has the "name" attribute. Please give the comment for this. [Information of Tuple and NamedTuple types] 1. Tuple type->str(): (int, int) type->repr_str(): Tuple[int, int] type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type()->cast<NamedType>()>name(): False # different with NamedTuple 2. NamedTuple type->str(): __torch__.myNamedTuple type->repr_str(): __torch__.myNamedTuple type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type->cast<TupleType>().name() = True # different with Tuple (From the next diff, I will handle the other error cases: 1) returning List<module class>, Dict<module class> and 2) accessing Module class's member functions) Differential Revision: [D24291962](https://our.internmc.facebook.com/intern/diff/D24291962/) ghstack-source-id: 114324445 Pull Request resolved: #46347
💊 CI failures summary and remediationsAs of commit 8f12b8b (more details on the Dr. CI page):
1 failure confirmed as flaky and can be ignored:
ci.pytorch.org: 2 failed
This comment was automatically generated by Dr. CI (expand for details).Follow this link to opt-out of these comments for your Pull Requests.Please report bugs/suggestions on the GitHub issue tracker or post in the (internal) Dr. CI Users group. This comment has been revised 18 times. |
💊 CI failures summary and remediationsAs of commit 8f12b8b (more details on the Dr. CI page):
1 failure not recognized by patterns:
This comment was automatically generated by Dr. CI (expand for details).Follow this link to opt-out of these comments for your Pull Requests.Please report bugs/suggestions on the GitHub issue tracker or post in the (internal) Dr. CI Users group. This comment has been revised 13 times. |
…lure" Added the named tuple's error messages & workarounds when it returns from a function of a class in Pytorch Mobile. To identify the error cases (returning NamedTuple type), I used the following coditions: 1) ins.op == RET (for returing) 2) type->kind() == TypeKind::TupleType (for pruning non-tuple types) 3) type->cast<TupleType>().name() (for pruning Tuple type) - I could use the type's str (str() or repr_str()) directly, but I used whether it has the "name" attribute. Please give the comment for this. [Information of Tuple and NamedTuple types] 1. Tuple type->str(): (int, int) type->repr_str(): Tuple[int, int] type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type()->cast<NamedType>()>name(): False # different with NamedTuple 2. NamedTuple type->str(): __torch__.myNamedTuple type->repr_str(): __torch__.myNamedTuple type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type->cast<TupleType>().name() = True # different with Tuple (From the next diff, I will handle the other error cases: 1) returning List<module class>, Dict<module class> and 2) accessing Module class's member functions) Differential Revision: [D24291962](https://our.internmc.facebook.com/intern/diff/D24291962/) [ghstack-poisoned]
Pull Request resolved: #46347 Added the named tuple's error messages & workarounds when it returns from a function of a class in Pytorch Mobile. To identify the error cases (returning NamedTuple type), I used the following coditions: 1) ins.op == RET (for returing) 2) type->kind() == TypeKind::TupleType (for pruning non-tuple types) 3) type->cast<TupleType>().name() (for pruning Tuple type) - I could use the type's str (str() or repr_str()) directly, but I used whether it has the "name" attribute. Please give the comment for this. [Information of Tuple and NamedTuple types] 1. Tuple type->str(): (int, int) type->repr_str(): Tuple[int, int] type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type()->cast<NamedType>()>name(): False # different with NamedTuple 2. NamedTuple type->str(): __torch__.myNamedTuple type->repr_str(): __torch__.myNamedTuple type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type->cast<TupleType>().name() = True # different with Tuple (From the next diff, I will handle the other error cases: 1) returning List<module class>, Dict<module class> and 2) accessing Module class's member functions) ghstack-source-id: 114335601 Differential Revision: [D24291962](https://our.internmc.facebook.com/intern/diff/D24291962/)
…lure" Added the named tuple's error messages & workarounds when it returns from a function of a class in Pytorch Mobile. To identify the error cases (returning NamedTuple type), I used the following coditions: 1) ins.op == RET (for returing) 2) type->kind() == TypeKind::TupleType (for pruning non-tuple types) 3) type->cast<TupleType>().name() (for pruning Tuple type) - I could use the type's str (str() or repr_str()) directly, but I used whether it has the "name" attribute. Please give the comment for this. [Information of Tuple and NamedTuple types] 1. Tuple type->str(): (int, int) type->repr_str(): Tuple[int, int] type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type()->cast<NamedType>()>name(): False # different with NamedTuple 2. NamedTuple type->str(): __torch__.myNamedTuple type->repr_str(): __torch__.myNamedTuple type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type->cast<TupleType>().name() = True # different with Tuple (From the next diff, I will handle the other error cases: 1) returning List<module class>, Dict<module class> and 2) accessing Module class's member functions) Differential Revision: [D24291962](https://our.internmc.facebook.com/intern/diff/D24291962/) [ghstack-poisoned]
Pull Request resolved: #46347 Added the named tuple's error messages & workarounds when it returns from a function of a class in Pytorch Mobile. To identify the error cases (returning NamedTuple type), I used the following coditions: 1) ins.op == RET (for returing) 2) type->kind() == TypeKind::TupleType (for pruning non-tuple types) 3) type->cast<TupleType>().name() (for pruning Tuple type) - I could use the type's str (str() or repr_str()) directly, but I used whether it has the "name" attribute. Please give the comment for this. [Information of Tuple and NamedTuple types] 1. Tuple type->str(): (int, int) type->repr_str(): Tuple[int, int] type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type()->cast<NamedType>()>name(): False # different with NamedTuple 2. NamedTuple type->str(): __torch__.myNamedTuple type->repr_str(): __torch__.myNamedTuple type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type->cast<TupleType>().name() = True # different with Tuple (From the next diff, I will handle the other error cases: 1) returning List<module class>, Dict<module class> and 2) accessing Module class's member functions) ghstack-source-id: 114339694 Differential Revision: [D24291962](https://our.internmc.facebook.com/intern/diff/D24291962/)
Codecov Report
@@ Coverage Diff @@
## gh/jwpark1985/1/base #46347 +/- ##
========================================================
- Coverage 68.33% 68.33% -0.01%
========================================================
Files 408 408
Lines 53758 53758
========================================================
- Hits 36735 36734 -1
- Misses 17023 17024 +1
Continue to review full report at Codecov.
|
…lure" Added the named tuple's error messages & workarounds when it returns from a function of a class in Pytorch Mobile. To identify the error cases (returning NamedTuple type), I used the following coditions: 1) ins.op == RET (for returing) 2) type->kind() == TypeKind::TupleType (for pruning non-tuple types) 3) type->cast<TupleType>().name() (for pruning Tuple type) - I could use the type's str (str() or repr_str()) directly, but I used whether it has the "name" attribute. Please give the comment for this. [Information of Tuple and NamedTuple types] 1. Tuple type->str(): (int, int) type->repr_str(): Tuple[int, int] type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type()->cast<NamedType>()>name(): False # different with NamedTuple 2. NamedTuple type->str(): __torch__.myNamedTuple type->repr_str(): __torch__.myNamedTuple type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type->cast<TupleType>().name() = True # different with Tuple (From the next diff, I will handle the other error cases: 1) returning List<module class>, Dict<module class> and 2) accessing Module class's member functions) Differential Revision: [D24291962](https://our.internmc.facebook.com/intern/diff/D24291962/) [ghstack-poisoned]
Pull Request resolved: #46347 Added the named tuple's error messages & workarounds when it returns from a function of a class in Pytorch Mobile. To identify the error cases (returning NamedTuple type), I used the following coditions: 1) ins.op == RET (for returing) 2) type->kind() == TypeKind::TupleType (for pruning non-tuple types) 3) type->cast<TupleType>().name() (for pruning Tuple type) - I could use the type's str (str() or repr_str()) directly, but I used whether it has the "name" attribute. Please give the comment for this. [Information of Tuple and NamedTuple types] 1. Tuple type->str(): (int, int) type->repr_str(): Tuple[int, int] type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type()->cast<NamedType>()>name(): False # different with NamedTuple 2. NamedTuple type->str(): __torch__.myNamedTuple type->repr_str(): __torch__.myNamedTuple type->kind(): TypeKind::TupleType # different with other types type()->cast<NamedType>(): True type->cast<TupleType>().name() = True # different with Tuple (From the next diff, I will handle the other error cases: 1) returning List<module class>, Dict<module class> and 2) accessing Module class's member functions) ghstack-source-id: 114361762 Differential Revision: [D24291962](https://our.internmc.facebook.com/intern/diff/D24291962/)
This pull request has been merged in 92921c8. |
This pull request has been merged in 92921c8. |
Stack from ghstack:
Added the named tuple's error messages & workarounds when it returns from a function of a class in Pytorch Mobile.
To identify the error cases (returning NamedTuple type), I used the following coditions:
[Information of Tuple and NamedTuple types]
Tuple
type->str(): (int, int)
type->repr_str(): Tuple[int, int]
type->kind(): TypeKind::TupleType # different with other types
type()->cast(): True
type()->cast()>name(): False # different with NamedTuple
NamedTuple
type->str(): torch.myNamedTuple
type->repr_str(): torch.myNamedTuple
type->kind(): TypeKind::TupleType # different with other types
type()->cast(): True
type->cast().name() = True # different with Tuple
(From the next diff, I will handle the other error cases: 1) returning List, Dict and 2) accessing Module class's member functions)
Differential Revision: D24291962