|
1 | 1 | # keras3 (development version) |
2 | 2 |
|
3 | | -- Added S3 methods for JAX array: `str`, `as.array`, `as.double`, `as.integer`, `as.numeric`. |
4 | | - |
5 | | -- Added `str` S3 method for Keras Variables. |
6 | | - |
7 | | -- `layer_reshape()` can now accept `-1` as a sentinel for an automatically calculated axis size. |
| 3 | +- Expanded numeric operations with `op_layer_normalization()`, `op_cbrt()`, |
| 4 | + `op_corrcoef()`, `op_deg2rad()`, `op_heaviside()`, the new `op_sparse_sigmoid()` |
| 5 | + plus matching `activation_sparse_sigmoid()`, and an `attn_logits_soft_cap` |
| 6 | + argument for `op_dot_product_attention()`. |
8 | 7 |
|
9 | | -- Updated dependencies declared by `use_backend("jax", gpu=TRUE)` |
10 | | - for compatability with `keras-hub`. |
| 8 | +- Added signal window operations: `op_bartlett()`, `op_blackman()`, |
| 9 | + `op_hamming()`, `op_hanning()`, and `op_kaiser()`. |
11 | 10 |
|
12 | | -- Added training loop configuration helpers: |
13 | | - `config_max_epochs()`, `config_set_max_epochs()`, `config_max_steps_per_epoch()`, |
14 | | - and `config_set_max_steps_per_epoch()`. The caps can also be set via the |
15 | | - `KERAS_MAX_EPOCHS` and `KERAS_MAX_STEPS_PER_EPOCH` environment variables. |
16 | | - Added `config_is_nnx_enabled()` to check whether JAX NNX features are enabled. |
| 11 | +- Added `loss_categorical_generalized_cross_entropy()` for training with noisy |
| 12 | + labels. |
17 | 13 |
|
18 | 14 | - LoRA-enabled layers (`layer_dense()`, `layer_embedding()`, `layer_einsum_dense()`) |
19 | 15 | gain a `lora_alpha` argument to scale the adaptation delta independently of the |
20 | 16 | chosen rank. |
21 | 17 |
|
22 | | -- `keras_variable()` now accepts a `synchronization` argument for distributed |
23 | | - strategies. |
| 18 | +- Added complex-valued helpers: S3 `Arg()` methods for tensors, `op_angle()`, |
| 19 | + and conversions `op_view_as_real()` / `op_view_as_complex()`. |
24 | 20 |
|
25 | | -- `Layer$add_weight()` gains an `overwrite_with_gradient` option and |
26 | | - layers now provide a `symbolic_call()` method. |
| 21 | +- Added the Muon optimizer via `optimizer_muon()`. |
| 22 | + |
| 23 | +- Added elastic deformation utilities for images: `layer_random_elastic_transform()` |
| 24 | + and the lower-level `op_image_elastic_transform()`. |
27 | 25 |
|
28 | 26 | - Transposed convolution utilities now follow the latest Keras API: |
29 | 27 | `op_conv_transpose()` defaults `strides = 1` and the `layer_conv_*_transpose()` |
30 | 28 | layers expose `output_padding` for precise shape control. |
31 | 29 |
|
32 | | -- `layer_torch_module_wrapper()` gains an `output_shape` argument to help Keras |
33 | | - infer shapes when wrapping PyTorch modules. |
| 30 | +- `register_keras_serializable()` now returns a registered Python callable, |
| 31 | + making it easier to use with bare R functions. |
34 | 32 |
|
35 | 33 | - `save_model_weights()` adds a `max_shard_size` argument to split large weight |
36 | 34 | files into manageable shards. |
37 | 35 |
|
38 | | -- Added elastic deformation utilities for images: `layer_random_elastic_transform()` |
39 | | - and the lower-level `op_image_elastic_transform()`. |
| 36 | +- `keras_variable()` now accepts a `synchronization` argument for distributed |
| 37 | + strategies. |
40 | 38 |
|
41 | | -- Added `loss_categorical_generalized_cross_entropy()` for training with noisy |
42 | | - labels. |
| 39 | +- `layer_layer_normalization()` removes the `rms_scaling` argument. |
43 | 40 |
|
44 | | -- Added the Muon optimizer via `optimizer_muon()`. |
| 41 | +- `layer_reshape()` can now accept `-1` as a sentinel for an automatically calculated axis size. |
45 | 42 |
|
46 | | -- Added complex-valued helpers: S3 `Arg()` methods for tensors, `op_angle()`, |
47 | | - and conversions `op_view_as_real()` / `op_view_as_complex()`. |
| 43 | +- `layer_torch_module_wrapper()` gains an `output_shape` argument to help Keras |
| 44 | + infer shapes when wrapping PyTorch modules. |
48 | 45 |
|
49 | | -- Added signal window operations: `op_bartlett()`, `op_blackman()`, |
50 | | - `op_hamming()`, `op_hanning()`, and `op_kaiser()`. |
| 46 | +- `Layer$add_weight()` gains an `overwrite_with_gradient` option and |
| 47 | + layers now provide a `symbolic_call()` method. |
51 | 48 |
|
52 | | -- Expanded numeric operations with `op_layer_normalization()`, `op_cbrt()`, |
53 | | - `op_corrcoef()`, `op_deg2rad()`, `op_heaviside()`, the new `op_sparse_sigmoid()` |
54 | | - plus matching `activation_sparse_sigmoid()`, and an `attn_logits_soft_cap` |
55 | | - argument for `op_dot_product_attention()`. |
| 49 | +- Added `str()` S3 method for Keras Variables. |
56 | 50 |
|
57 | | -- `layer_layer_normalization()` removes the `rms_scaling` argument. |
| 51 | +- Added S3 methods for JAX array: |
| 52 | + `str()`, `as.array()`, `as.double()`, `as.integer()`, `as.numeric()`. |
| 53 | + |
| 54 | +- Added base-array compatibility methods for backend tensors: `t()`, |
| 55 | + `aperm()`, and `all.equal()`. |
| 56 | + |
| 57 | +- Added `pillar::type_sum()` for JAX variables and `JaxVariable`; |
| 58 | + extended `str()` coverage to the new JAX variable class. |
| 59 | + |
| 60 | +- `config_max_epochs()`, `config_set_max_epochs()`, `config_max_steps_per_epoch()`, |
| 61 | + and `config_set_max_steps_per_epoch()`. The caps can also be set via the |
| 62 | + `KERAS_MAX_EPOCHS` and `KERAS_MAX_STEPS_PER_EPOCH` environment variables. |
| 63 | + Added `config_is_nnx_enabled()` to check whether JAX NNX features are enabled. |
| 64 | + |
| 65 | +- Built-in dataset loaders now accept `convert = FALSE` to return NumPy arrays |
| 66 | + instead of R arrays. |
| 67 | + |
| 68 | +- Updated `plot(history, theme_bw = TRUE)` for `ggplot2` 3.4.0 |
| 69 | + compatibility. |
| 70 | + |
| 71 | +- `plot(model)` DPI is now globally configurable via |
| 72 | + `options(keras.plot.model.dpi = )`, (defaults to `200`). |
| 73 | + |
| 74 | +- Reexported reticulate functions: `py_help()`, `py_to_r()`, `r_to_py()`, |
| 75 | + `py_require()`, and `import()`. |
| 76 | + |
| 77 | +- Support `super()$initialize()` in subclassed Keras classes; improved |
| 78 | + `super()` behavior in subclasses. |
| 79 | + |
| 80 | +- Updated dependencies declared by `use_backend("jax", gpu=TRUE)` |
| 81 | + for compatability with `keras-hub`. |
| 82 | + |
| 83 | +- Exported `named_list()` utility. |
| 84 | + |
| 85 | +- Fixed an issue when switching backends twice in a row. |
58 | 86 |
|
59 | 87 | # keras3 1.4.0 |
60 | 88 |
|
|
0 commit comments