Add is_initialized method and refactor #949
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add a static
is_initialized
method and refactor existing logic for initialization checkWhat does this add?
This PR introduces a static
is_initialized
method which will check if the state's dictionary is empty or not. It also refactors current methods to haveinitialized
be a@property
check of the same to increase code clarity towards what is happening under the hood.Who is it for?
Closes #933
Why is it needed?
The feature request asked for a similar API to what
torch
uses forcuda
, i.e.torch.cuda.is_initialized()
forAccelerate
, so a user can doimport accelerate; accelerate.state.is_initialized()
What parts of the API does this impact?
User-facing:
A new
is_initialized
method was added to theaccelerate.state
moduleInternal structure:
initialized
was changed to be a dictionary check to mimic how the newis_initialized()
function operatesBasic Usage Example(s):
When would I use it, and when wouldn't I?
When a static method is needed to check if the
AcceleratorState
has been initialized without doing agetattr
, or a cleaner interface to present to the user