Skip to content

Commit

Permalink
Simplify how Optimizers are re-exported in train.ts
Browse files Browse the repository at this point in the history
`train.ts` exports optimizers by copying them from the `OptimizerConstructors` class onto a `train` object. This is unnecessary because the `OptimizerConstructors` class constructor is a subtype of the `train` object's type (i.e. it has all the properties that `train` has). Instead of creating a new `train` object, this PR re-exports `OptimizerConstructors` as `train`.

This has no direct effect now, but if / when re remove the `sideEffects` field from `package.json`, it helps some bundlers (esbuild) do tree-shaking.
  • Loading branch information
mattsoulanille committed Dec 12, 2022
1 parent c98656d commit 6247096
Showing 1 changed file with 1 addition and 21 deletions.
22 changes: 1 addition & 21 deletions tfjs-core/src/train.ts
Expand Up @@ -15,26 +15,6 @@
* =============================================================================
*/

// So typings can propagate.
import {AdadeltaOptimizer} from './optimizers/adadelta_optimizer';
import {AdagradOptimizer} from './optimizers/adagrad_optimizer';
import {AdamOptimizer} from './optimizers/adam_optimizer';
import {AdamaxOptimizer} from './optimizers/adamax_optimizer';
import {MomentumOptimizer} from './optimizers/momentum_optimizer';
import {OptimizerConstructors} from './optimizers/optimizer_constructors';
import {RMSPropOptimizer} from './optimizers/rmsprop_optimizer';
import {SGDOptimizer} from './optimizers/sgd_optimizer';

// tslint:disable-next-line:no-unused-expression
[MomentumOptimizer, SGDOptimizer, AdadeltaOptimizer, AdagradOptimizer,
RMSPropOptimizer, AdamaxOptimizer, AdamOptimizer];

export const train = {
sgd: OptimizerConstructors.sgd,
momentum: OptimizerConstructors.momentum,
adadelta: OptimizerConstructors.adadelta,
adagrad: OptimizerConstructors.adagrad,
rmsprop: OptimizerConstructors.rmsprop,
adamax: OptimizerConstructors.adamax,
adam: OptimizerConstructors.adam
};
export const train = OptimizerConstructors;

0 comments on commit 6247096

Please sign in to comment.