Skip to content

Commit 04c93ea

Browse files
committed
adding alias types, wip
1 parent b2a5e7b commit 04c93ea

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

stubs/tensorflow/tensorflow/keras/models.pyi

+16-6
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,18 @@ import tensorflow
1010
import tensorflow as tf
1111
from tensorflow import Variable, _ShapeLike, _TensorCompatible
1212
from tensorflow.keras.layers import Layer, _InputT, _OutputT
13-
from tensorflow.keras.optimizers.legacy import Optimizer
13+
from tensorflow.keras import _Loss, _Metric
14+
from tensorflow._aliases import _ContainerGeneric
15+
16+
_BothOptimizer = tf.optimizers.Optimizer | tf.optimizers.experimental.Optimizer
1417

1518
class Model(Layer[_InputT, _OutputT], tf.Module):
19+
_train_counter: tf.Variable
20+
_test_counter: tf.Variable
21+
optimizer: _BothOptimizer | None
22+
loss: tf.keras.losses.Loss | dict[str, tf.keras.losses.Loss]
23+
stop_training: bool
24+
1625
def __new__(cls, *args: Any, **kwargs: Any) -> Model[_InputT, _OutputT]: ...
1726
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
1827
def __setattr__(self, name: str, value: Any) -> None: ...
@@ -21,13 +30,14 @@ class Model(Layer[_InputT, _OutputT], tf.Module):
2130
def build(self, input_shape: _ShapeLike) -> None: ...
2231
def __call__(self, inputs: _InputT, *, training: bool = False, mask: _TensorCompatible | None = None) -> _OutputT: ...
2332
def call(self, inputs: _InputT, training: bool | None = None, mask: _TensorCompatible | None = None) -> _OutputT: ...
33+
# Ideally loss/metrics/output would share the same structure but higher kinded types are not supported.
2434
def compile(
2535
self,
26-
optimizer: Optimizer | str = "rmsprop",
27-
loss: tf.keras.losses.Loss | str | None = None,
28-
metrics: list[tf.keras.metrics.Metric | str] | None = None,
29-
loss_weights: list[float] | dict[str, float] | None = None,
30-
weighted_metrics: list[tf.keras.metrics.Metric] | None = None,
36+
optimizer: _BothOptimizer | str = "rmsprop",
37+
loss: _ContainerGeneric[_Loss] | None = None,
38+
metrics: _ContainerGeneric[_Metric] | None = None,
39+
loss_weights: _ContainerGeneric[float] | None = None,
40+
weighted_metrics: _ContainerGeneric[_Metric] | None = None,
3141
run_eagerly: bool | None = None,
3242
steps_per_execution: int | Literal["auto"] | None = None,
3343
jit_compile: bool | None = None,

0 commit comments

Comments
 (0)