PyTorch feature classification changes

Typically includes in PyTorch were classified as either steady or experimental with an implicit 3rd choice of testing bleeding edge features by building master or through installing nighttime builds (available by means of prebuilt whls). This has, in a few cases, caused some confusion around the level of preparedness, dedication to the function and backwards compatibility that can be anticipated from a user point of view. Progressing, we’d like to much better categorize the 3 kinds of functions as well as specify explicitly here what each mean from a user perspective.

New Feature Designations

We will continue to have 3 designations for features but, as pointed out, with a few changes: Steady, Beta (previously Speculative) and Model (formerly Nightlies). Below is a brief description of each and a discuss the backwards compatibility expected:

Nothing modifications here. A steady feature suggests that the user value-add is or has been shown, the API isn’t expected to change, the feature is performant and all documentation exists to support end user adoption.

Level of dedication: We anticipate to keep these features long term and generally there ought to be no major performance limitations, gaps in documentation and we likewise expect to preserve backwards compatibility (although breaking changes can occur and notice will be offered one release ahead of time).

We previously called these functions ‘Speculative’ and we discovered that this developed confusion among a few of the users. When it comes to a Beta level features, the worth add, similar to a Steady function, has actually been proven (e.g. pruning is a commonly utilized strategy for minimizing the number of criteria in NN models, independent of the application information of our specific options) and the function generally works and is recorded. This function is tagged as Beta since the API may change based on user feedback because the performance needs to improve or since protection throughout operators is not yet total.

Level of dedication: We are committing to seeing the function through to the Stable classification. We are however not dedicating to Backwards Compatibility. Users can depend on us providing a solution for problems in this location going forward, but the APIs and efficiency attributes of this feature might change.

Formerly these were functions that were learnt about by developers who paid close attention to RFCs and to features that land in master. In this case the function is not offered as part of binary circulations like PyPI or Conda (other than perhaps behind run-time flags), however, we wish to get high bandwidth partner feedback ahead of a genuine release in order to gauge energy and any changes we require to make to the UX. To test these sort of features we would, depending upon the function, suggest structure from master or utilizing the nighttime whls that are made readily available on For each prototype function, a tip to draft docs or other instructions will be offered.

Level of commitment: We are devoting to collecting high bandwidth feedback just. Based on this feedback and prospective more engagement in between community members, we as a community will decide if we wish to upgrade the level of commitment or to fail fast. In addition, while some of these features might be more speculative (e.g. new Frontend APIs), others have apparent energy (e.g. design optimization) but may remain in a state where event feedback beyond high bandwidth channels is not useful, e.g. the feature might remain in an earlier state, might be moving quick (PRs are landing too rapidly to catch a significant release) and/or usually active advancement is underway.

What modifications for present features?

Most importantly, you can find these designations on We will also be connecting any early phase functions here for clarity.

Call Now ButtonCALL US Scroll to Top