Skip to content

Commit d2a8383

Browse files
authored
Merge pull request #1434 from rstudio/default-tf-v2.15
Updates for TF v2.15
2 parents 470eacc + cef8697 commit d2a8383

File tree

124 files changed

+291
-257
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+291
-257
lines changed

.github/workflows/R-CMD-check.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ on:
33
push:
44
branches:
55
- main
6+
- r2
67
pull_request:
78
schedule:
89
- cron: '51 3 * * Fri'
@@ -31,6 +32,7 @@ jobs:
3132
- {os: 'windows-latest', tf: 'default', r: 'oldrel'}
3233
- {os: 'macOS-latest' , tf: 'default', r: 'oldrel'}
3334
- {os: 'ubuntu-latest' , tf: 'default', r: 'oldrel'}
35+
3436
- {os: 'ubuntu-latest' , tf: 'default', r: 'oldrel-1'}
3537
- {os: 'ubuntu-latest' , tf: 'default', r: 'oldrel-2'}
3638
- {os: 'ubuntu-20.04' , tf: 'default', r: '3.6'} # default R in ubuntu-20.04

DESCRIPTION

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,5 @@ Suggests:
4949
png,
5050
jpeg
5151
Roxygen: list(markdown = TRUE, r6 = FALSE)
52-
RoxygenNote: 7.2.3
52+
RoxygenNote: 7.3.1
5353
VignetteBuilder: knitr
54-
Remotes:
55-
rstudio/tensorflow

NAMESPACE

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,25 @@
22

33
S3method("$",py_R6ClassGenerator)
44
S3method(as.data.frame,keras_training_history)
5+
S3method(as_generator,"function")
6+
S3method(as_generator,default)
7+
S3method(as_generator,keras_preprocessing.sequence.TimeseriesGenerator)
8+
S3method(as_generator,tensorflow.python.data.ops.dataset_ops.Dataset)
9+
S3method(as_generator,tensorflow.python.data.ops.dataset_ops.DatasetV2)
510
S3method(compile,keras.engine.training.Model)
11+
S3method(compose_layer,default)
12+
S3method(compose_layer,keras.models.Sequential)
613
S3method(evaluate,keras.engine.training.Model)
714
S3method(export_savedmodel,keras.engine.training.Model)
815
S3method(fit,keras.engine.training.Model)
916
S3method(format,keras.engine.training.Model)
17+
S3method(is_main_thread_generator,"function")
18+
S3method(is_main_thread_generator,default)
19+
S3method(is_main_thread_generator,keras.preprocessing.image.Iterator)
20+
S3method(is_main_thread_generator,keras_preprocessing.image.Iterator)
21+
S3method(is_main_thread_generator,keras_preprocessing.image.iterator.Iterator)
22+
S3method(is_main_thread_generator,keras_preprocessing.sequence.TimeseriesGenerator)
23+
S3method(is_main_thread_generator,tensorflow.python.data.ops.dataset_ops.Dataset)
1024
S3method(pillar::type_sum,py_R6ClassGenerator)
1125
S3method(plot,keras.engine.training.Model)
1226
S3method(plot,keras_training_history)
@@ -593,6 +607,7 @@ importFrom(generics,fit)
593607
importFrom(graphics,par)
594608
importFrom(graphics,plot)
595609
importFrom(graphics,points)
610+
importFrom(magrittr,"%<>%")
596611
importFrom(reticulate,array_reshape)
597612
importFrom(reticulate,dict)
598613
importFrom(reticulate,import)

NEWS.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# keras (development version)
22

3-
- Updates to allow both R packages {keras} and {keras3} to be loaded.
3+
- Default TensorFlow/Keras version installed by `install_keras()` is now 2.15.
4+
This is the last Tensorflow version where where Keras 2 is the default.
5+
To use Keras with Tensorflow v2.16 and up, use the new {keras3} R package.
6+
7+
- Updates to allow both R packages {keras} and {keras3} to be loaded.
8+
49

510
# keras 2.13.0
611

R/install.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ install_keras <- function(method = c("auto", "virtualenv", "conda"),
5151
)
5252
}
5353

54-
default_version <- numeric_version("2.13")
54+
default_version <- numeric_version("2.15")
5555

5656
default_extra_packages <- function(tensorflow_version = "default") {
5757
pkgs <- c(

R/layers-core.R

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,10 +550,12 @@ compose_layer <- function(object, layer, ...) {
550550
UseMethod("compose_layer")
551551
}
552552

553+
#' @export
553554
compose_layer.default <- function(object, layer, ...) {
554555
layer(object, ...)
555556
}
556557

558+
#' @export
557559
compose_layer.keras.models.Sequential <- function(object, layer, ...) {
558560
if(length(list(...)) > 0) warning("arguments passed via ellipsis will be ignored")
559561

R/model.R

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,16 +1252,19 @@ as_generator <- function(x) {
12521252
UseMethod("as_generator")
12531253
}
12541254

1255+
#' @export
12551256
as_generator.default <- function(x) {
12561257
x
12571258
}
12581259

1260+
#' @export
12591261
as_generator.tensorflow.python.data.ops.dataset_ops.Dataset <- function(x) {
12601262
python_path <- system.file("python", package = "keras")
12611263
tools <- reticulate::import_from_path("kerastools", path = python_path)
12621264
tools$generator$dataset_generator(x , k_get_session())
12631265
}
12641266

1267+
#' @export
12651268
as_generator.tensorflow.python.data.ops.dataset_ops.DatasetV2 <- function(x) {
12661269

12671270
if (tensorflow::tf_version() >= "2.0")
@@ -1271,6 +1274,7 @@ as_generator.tensorflow.python.data.ops.dataset_ops.DatasetV2 <- function(x) {
12711274

12721275
}
12731276

1277+
#' @export
12741278
as_generator.function <- function(x) {
12751279
python_path <- system.file("python", package = "keras")
12761280
tools <- reticulate::import_from_path("kerastools", path = python_path)
@@ -1287,6 +1291,7 @@ as_generator.function <- function(x) {
12871291

12881292
}
12891293

1294+
#' @export
12901295
as_generator.keras_preprocessing.sequence.TimeseriesGenerator <- function(x) {
12911296
reticulate::as_iterator(x)
12921297
}
@@ -1295,18 +1300,22 @@ is_main_thread_generator <- function(x) {
12951300
UseMethod("is_main_thread_generator")
12961301
}
12971302

1303+
#' @export
12981304
is_main_thread_generator.default <- function(x) {
12991305
FALSE
13001306
}
13011307

1308+
#' @export
13021309
is_main_thread_generator.tensorflow.python.data.ops.dataset_ops.Dataset <- function(x) {
13031310
TRUE
13041311
}
13051312

1313+
#' @export
13061314
is_main_thread_generator.function <- function(x) {
13071315
TRUE
13081316
}
13091317

1318+
#' @export
13101319
is_main_thread_generator.keras.preprocessing.image.Iterator <- function(x) {
13111320
if (py_has_attr(x, "image_data_generator")) {
13121321
generator <- x$image_data_generator
@@ -1316,6 +1325,7 @@ is_main_thread_generator.keras.preprocessing.image.Iterator <- function(x) {
13161325
}
13171326
}
13181327

1328+
#' @export
13191329
is_main_thread_generator.keras_preprocessing.image.Iterator <- function(x) {
13201330

13211331
if (tensorflow::tf_version() <= "2.0.1")
@@ -1329,9 +1339,11 @@ is_main_thread_generator.keras_preprocessing.image.Iterator <- function(x) {
13291339
}
13301340
}
13311341

1342+
#' @export
13321343
is_main_thread_generator.keras_preprocessing.image.iterator.Iterator <-
13331344
is_main_thread_generator.keras_preprocessing.image.Iterator
13341345

1346+
#' @export
13351347
is_main_thread_generator.keras_preprocessing.sequence.TimeseriesGenerator <- function(x) {
13361348
if (tensorflow::tf_version() <= "2.0.1")
13371349
return(TRUE)

R/utils.R

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -684,17 +684,17 @@ as_r_value <- function (x) {
684684

685685
# internal `[` method that ensures functions in this namespace use one-based
686686
# indexing in case user has a global option set for zero-based indexing.
687-
`[.tensorflow.tensor` <-
688-
getS3method("[", "tensorflow.tensor", envir = asNamespace("tensorflow"))
689-
formals(`[.tensorflow.tensor`)$style <- "R"
690-
formals(`[.tensorflow.tensor`)$options <-
691-
tensorflow::tf_extract_opts(
692-
one_based = TRUE,
693-
inclusive_stop = TRUE,
694-
disallow_out_of_bounds = TRUE,
695-
warn_tensors_passed_asis = FALSE,
696-
warn_negatives_pythonic = FALSE
697-
)
687+
# `[.tensorflow.tensor` <-
688+
# getS3method("[", "tensorflow.tensor", envir = asNamespace("tensorflow"))
689+
# formals(`[.tensorflow.tensor`)$style <- "R"
690+
# formals(`[.tensorflow.tensor`)$options <-
691+
# tensorflow::tf_extract_opts(
692+
# one_based = TRUE,
693+
# inclusive_stop = TRUE,
694+
# disallow_out_of_bounds = TRUE,
695+
# warn_tensors_passed_asis = FALSE,
696+
# warn_negatives_pythonic = FALSE
697+
# )
698698

699699

700700

man/compile.keras.engine.training.Model.Rd

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/custom_metric.Rd

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)