Tensorflow
Tensorflow
URL https://github.com/rstudio/tensorflow
BugReports https://github.com/rstudio/tensorflow/issues
SystemRequirements TensorFlow (https://www.tensorflow.org/)
Encoding UTF-8
Depends R (>= 3.6)
Imports config, processx, reticulate (>= 1.32), tfruns (>= 1.0),
utils, yaml, grDevices, tfautograph (>= 0.3.1), rstudioapi (>=
0.7), lifecycle
Suggests testthat (>= 2.1.0), keras3, pillar, withr, callr
RoxygenNote 7.3.1
NeedsCompilation no
Author JJ Allaire [aut, cph],
Tomasz Kalinowski [ctb, cph, cre],
Daniel Falbel [ctb, cph],
Dirk Eddelbuettel [ctb, cph],
1
2 all_dims
R topics documented:
all_dims . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
as_tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
evaluate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
install_tensorflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
parse_arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
parse_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
set_random_seed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
tensorboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
tensorflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
tf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
tf_extract_opts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
tf_function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
tf_probability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
use_compat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
use_session_with_seed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
view_savedmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
[.tensorflow.tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Index 22
Description
This function returns an object that can be used when subsetting tensors with [. If you are familiar
with python„ this is equivalent to the python Ellipsis ..., (not to be confused with ... in R).
Usage
all_dims()
as_tensor 3
Examples
## Not run:
# in python, if x is a numpy array or tensorflow tensor
x[..., i]
# the ellipsis means "expand to match number of dimension of x".
# to translate the above python expression to R, write:
x[all_dims(), i]
## End(Not run)
as_tensor as_tensor
Description
Coerce objects to tensorflow tensors (potentially of a specific dtype or shape). The provided default
methods will call tf$convert_to_tensor. Depending on arguments supplied it may also call some
combination of
• tf$saturate_cast or tf$cast
• tf$fill or tf$reshape
Usage
as_tensor(x, dtype = NULL, ..., name = NULL)
## Default S3 method:
as_tensor(x, dtype = NULL, ..., shape = NULL, name = NULL)
Arguments
x object to convert
dtype NULL, a tensorflow dtype (tf$int32), or something coercible to one (e.g. a
string "int32")
..., ignored
name NULL or a string. Useful for debugging in graph mode, ignored while in eager
mode.
shape an integer vector, tensor, or tf.TensorShape. Can contain up to 1 unspecified
dimension, encoded as a -1 or NA. This will reshape x using row-major (C-style)
semantics. It will prefer reshaping using non-graph operations if possible, but
will otherwise invoke tf$reshape(). If x is a scalar and the requested shape
is fully defined or a tensor, the value of x will be recycled to fill a tensor of the
requested shape (it will dispatch to tf$fill()).
4 install_tensorflow
Value
a tensorflow tensor
Examples
## Not run:
as_tensor(42, "int32")
as_tensor(as_tensor(42))
## End(Not run)
Description
Usage
evaluate(object, ...)
Arguments
Implementations
• keras3
Description
install_tensorflow() installs just the tensorflow python package and it’s direct dependencies.
For a more complete installation that includes additional optional dependencies, use keras3::install_keras().
install_tensorflow 5
Usage
install_tensorflow(
method = c("auto", "virtualenv", "conda"),
conda = "auto",
version = "default",
envname = "r-tensorflow",
extra_packages = NULL,
restart_session = TRUE,
conda_python_version = NULL,
...,
cuda = NULL,
metal = FALSE,
pip_ignore_installed = FALSE,
new_env = identical(envname, "r-tensorflow"),
python_version = NULL
)
Arguments
method Installation method. By default, "auto" automatically finds a method that will
work in the local environment. Change the default to force a specific installation
method. Note that the "virtualenv" method is not available on Windows.
conda The path to a conda executable. Use "auto" to allow reticulate to automati-
cally find an appropriate conda binary. See Finding Conda and conda_binary()
for more details.
version TensorFlow version to install. Valid values include:
• "default" installs 2.16
• "release" installs the latest release version of tensorflow (which may be
incompatible with the current version of the R package)
• A version specification like "2.4" or "2.4.0". Note that if the patch ver-
sion is not supplied, the latest patch release is installed (e.g., "2.4" today
installs version "2.4.2")
• nightly for the latest available nightly build.
• To any specification, you can append "-cpu" to install the cpu version only
of the package (e.g., "2.4-cpu")
• The full URL or path to a installer binary or python *.whl file.
envname The name, or full path, of the environment in which Python packages are to
be installed. When NULL (the default), the active environment as set by the
RETICULATE_PYTHON_ENV variable will be used; if that is unset, then the r-reticulate
environment will be used.
extra_packages Additional Python packages to install along with TensorFlow.
restart_session
Restart R session after installing (note this will only occur within RStudio).
... other arguments passed to reticulate::conda_install() or reticulate::virtualenv_install(),
depending on the method used.
6 install_tensorflow
Details
You may be prompted to download and install miniconda if reticulate did not find a non-system
installation of python. Miniconda is the recommended installation method for most users, as it en-
sures that the R python installation is isolated from other python installations. All python packages
will by default be installed into a self-contained conda or venv environment named "r-reticulate".
Note that "conda" is the only supported method on M1 Mac.
If you initially declined the miniconda installation prompt, you can later manually install miniconda
by running reticulate::install_miniconda().
Custom Installation
install_tensorflow() or keras3::install_keras() isn’t required to use tensorflow with the
package. If you manually configure a python environment with the required dependencies, you can
tell R to use it by pointing reticulate at it, commonly by setting an environment variable:
Sys.setenv("RETICULATE_PYTHON" = "~/path/to/python-env/bin/python")
Apple Silicon
Beginning with Tensorflow version 2.13, the default tensorflow package now works on Apple Sili-
con. See https://developer.apple.com/metal/tensorflow-plugin/ for instructions on how
to install older versions of Tensorflow on macOS. Please note that not all operations are supported
on Arm Mac GPUs. You can work around the missing operations by pinning operations to CPU.
For example:
Additional Packages
If you wish to add additional PyPI packages to your Keras / TensorFlow environment you can either
specify the packages in the extra_packages argument of install_tensorflow() or install_keras(),
or alternatively install them into an existing environment using the reticulate::py_install()
function. Note that install_keras() includes a set of additional python packages by default, see
?keras3::install_keras for details.
See Also
• keras3::install_keras()
• https://tensorflow.rstudio.com/reference/tensorflow/install_tensorflow
Description
Parse command line arguments of the form --key=value and --key value. The values are as-
sumed to be valid yaml and will be converted using yaml.load().
Usage
parse_arguments(arguments = NULL)
Arguments
arguments A vector of command line arguments. When NULL (the default), the command
line arguments received by the current R process are used.
Description
Parse configuration flags for a TensorFlow application. Use this to parse and unify the configura-
tion(s) specified through a flags.yml configuration file, alongside other arguments set through the
command line.
Usage
parse_flags(
config = Sys.getenv("R_CONFIG_ACTIVE", unset = "default"),
file = "flags.yml",
arguments = commandArgs(TRUE)
)
8 set_random_seed
Arguments
config The configuration to use. Defaults to the active configuration for the current
environment (as specified by the R_CONFIG_ACTIVE environment variable), or
default when unset.
file The configuration file to read.
arguments The command line arguments (as a character vector) to be parsed.
Value
A named R list, mapping configuration keys to values.
Examples
## Not run:
# examine an example configuration file provided by tensorflow
file <- system.file("examples/config/flags.yml", package = "tensorflow")
cat(readLines(file), sep = "\n")
## End(Not run)
Description
Sets all random seeds needed to make TensorFlow code reproducible.
shape 9
Usage
Arguments
Details
This function should be used instead of use_session_with_seed() if you are using TensorFlow
>= 2.0, as the concept of session doesn’t really make sense anymore.
This functions sets:
It also optionally disables the GPU execution as this is a potential source of non-reproducibility.
Description
Usage
Arguments
See Also
https://www.tensorflow.org/api_docs/python/tf/TensorShape
10 shape
Examples
## Not run:
# ---convert ---
x <- shape(dims = list(3L, 5L))
as.list(x) # list(3L, 5L)
as.integer(x) # c(3L, 5L)
as.numeric(x) # c(3, 5)
as.double(x) # c(3, 5) # alias for as.numeric
as_tensor(x) # tf.Tensor([3 5], shape=(2,), dtype=int32)
values of length greater than one supplied to `...` are automatically flattened
shape(1, c(2, 3), 4) # shape(1, 2, 3, 4)
shape(1, shape(2, 3), 4) # shape(1, 2, 3, 4)
shape(1, as_tensor(2, 3), 4) # shape(1, 2, 3, 4)
try(merge(shape(2, 2),
shape(1, 2))) # ValueError: Shapes (2, 2) and (1, 2) are not compatible
rm(x) # cleanup
## End(Not run)
Description
TensorBoard is a tool inspecting and understanding your TensorFlow runs and graphs.
12 tensorboard
Usage
tensorboard(
log_dir,
action = c("start", "stop"),
host = "127.0.0.1",
port = "auto",
launch_browser = getOption("tensorflow.tensorboard.browser", interactive()),
reload_interval = 5,
purge_orphaned_data = TRUE
)
Arguments
log_dir Directories to scan for training logs. If this is a named character vector then the
specified names will be used as aliases within TensorBoard.
action Specify whether to start or stop TensorBoard (TensorBoard will be stopped au-
tomatically when the R session from which it is launched is terminated).
host Host for serving TensorBoard
port Port for serving TensorBoard. If "auto" is specified (the default) then an unused
port will be chosen automatically.
launch_browser Open a web browser for TensorBoard after launching. Defaults to TRUE in inter-
active sessions. When running under RStudio uses an RStudio window by de-
fault (pass a function e.g. utils::browseURL() to open in an external browser).
Use the tensorflow.tensorboard.browser option to establish a global de-
fault behavior.
reload_interval
How often the backend should load more data.
purge_orphaned_data
Whether to purge data that may have been orphaned due to TensorBoard restarts.
Disabling purge_orphaned_data can be used to debug data disappearance.
Details
When TensorBoard is passed a logdir at startup, it recursively walks the directory tree rooted at
logdir looking for subdirectories that contain tfevents data. Every time it encounters such a subdi-
rectory, it loads it as a new run, and the frontend will organize the data accordingly.
The TensorBoard process will be automatically destroyed when the R session in which it is launched
exits. You can pass action = "stop" to manually terminate TensorBoard.
Value
Description
TensorFlow is an open source software library for numerical computation using data flow graphs.
Nodes in the graph represent mathematical operations, while the graph edges represent the multidi-
mensional data arrays (tensors) communicated between them. The flexible architecture allows you
to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a
single API.
Details
The TensorFlow API is composed of a set of Python modules that enable constructing and executing
TensorFlow graphs. The tensorflow package provides access to the complete TensorFlow API from
within R.
For additional documentation on the tensorflow package see https://tensorflow.rstudio.com
Author(s)
Other contributors:
See Also
Useful links:
• https://github.com/rstudio/tensorflow
• Report bugs at https://github.com/rstudio/tensorflow/issues
14 tf_extract_opts
Description
Interface to main TensorFlow module. Provides access to top level classes and functions as well as
sub-modules (e.g. tf$nn, tf$contrib$learn, etc.).
Usage
tf
Format
TensorFlow module
Examples
## Not run:
library(tensorflow)
tf$print(hello)
tf$print(zeros)
## End(Not run)
Description
Tensor extract options
Usage
tf_extract_opts(
style = getOption("tensorflow.extract.style"),
...,
one_based = getOption("tensorflow.extract.one_based", TRUE),
inclusive_stop = getOption("tensorflow.extract.inclusive_stop", TRUE),
disallow_out_of_bounds = getOption("tensorflow.extract.dissallow_out_of_bounds", TRUE),
warn_tensors_passed_asis = getOption("tensorflow.extract.warn_tensors_passed_asis",
TRUE),
warn_negatives_pythonic = getOption("tensorflow.extract.warn_negatives_pythonic", TRUE)
)
tf_function 15
Arguments
style one of NULL (the default) "R" or "python". If supplied, this overrides all other
options. "python" is equivalent to all the other arguments being FALSE. "R"
is equivalent to warn_tensors_passed_asis and warn_negatives_pythonic
set to FALSE
... ignored
one_based TRUE or FALSE, if one-based indexing should be used
inclusive_stop TRUE or FALSE, if slices like start:stop should be inclusive of stop
disallow_out_of_bounds
TRUE or FALSE, whether checks are performed on the slicing index to ensure
it is within bounds.
warn_tensors_passed_asis
TRUE or FALSE, whether to emit a warning the first time a tensor is supplied
to [ that tensors are passed as-is, with no R to python translation
warn_negatives_pythonic
TRUE or FALSE, whether to emit a warning the first time a negative number is
supplied to [ about the non-standard (python-style) interpretation
Value
an object with class "tf_extract_opts", suitable for passing to [.tensorflow.tensor()
Examples
## Not run:
x <- tf$constant(1:10)
## End(Not run)
Description
tf_function constructs a callable that executes a TensorFlow graph created by tracing the Ten-
sorFlow operations in f. This allows the TensorFlow runtime to apply optimizations and exploit
parallelism in the computation defined by f.
16 tf_probability
Usage
tf_function(f, input_signature = NULL, autograph = TRUE, ...)
Arguments
f the function to be compiled
input_signature
A possibly nested sequence of tf$TensorSpec objects specifying the shapes
and dtypes of the tensors that will be supplied to this function. If NULL, a separate
function is instantiated for each inferred input signature. If input_signature
is specified, every input to f must be a tensor.
autograph TRUE or FALSE. If TRUE (the default), you can use tensors in R control flow
expressions if, while, for and break and they will be traced into the tensorflow
graph. A guide to getting started and additional details can be found: here
... additional arguments passed on to tf.function (vary based on Tensorflow ver-
sion). See here for details.
Details
A guide to getting started with tf.function can be found here.
Description
TensorFlow Probability Module
Usage
tf_probability()
Value
Reference to TensorFlow Probability functions and classes
Examples
## Not run:
library(tensorflow)
## one time setup:
# reticulate::py_install("tensorflow_probability")
tfp <- tf_probability()
tfp$distributions$Normal(loc = 0, scale = 1)
## End(Not run)
use_compat 17
Description
Enables TensorFlow to run under a different API version for compatibility with previous versions.
For instance, this is useful to run TensorFlow 1.x code when using TensorFlow 2.x.
Usage
Arguments
Examples
## Not run:
library(tensorflow)
use_compat("v1")
## End(Not run)
Description
Set various random seeds required to ensure reproducible results. The provided seed value will
establish a new random seed for R, Python, NumPy, and TensorFlow. GPU computations and CPU
parallelism will also be disabled by default.
Usage
use_session_with_seed(
seed,
disable_gpu = TRUE,
disable_parallel_cpu = TRUE,
quiet = FALSE
)
18 view_savedmodel
Arguments
seed A single value, interpreted as an integer
disable_gpu TRUE to disable GPU execution (see Parallelism below).
disable_parallel_cpu
TRUE to disable CPU parallelism (see Parallelism below).
quiet TRUE to suppress printing of messages.
Details
This function must be called at the very top of your script (i.e. immediately after library(tensorflow),
library(keras), etc.). Any existing TensorFlow session is torn down via tf$reset_default_graph().
This function takes all measures known to promote reproducible results from TensorFlow sessions,
however it’s possible that various individual TensorFlow features or dependent libraries escape its
effects. If you encounter non-reproducible results please investigate the possible sources of the
problem, contributions via pull request are very welcome!
Packages which need to be notified before and after the seed is set can register for the "tensor-
flow.on_before_use_session" and "tensorflow.on_use_session" hooks (see setHook()) for addi-
tional details on hooks).
Value
TensorFlow session object, invisibly
Parallelism
By default the use_session_with_seed() function disables GPU and CPU parallelism, since both
can result in non-deterministic execution patterns (see https://stackoverflow.com/questions/
42022950/). You can optionally enable GPU or CPU parallelism by setting the disable_gpu and/or
disable_parallel_cpu parameters to FALSE.
Examples
## Not run:
library(tensorflow)
use_session_with_seed(42)
## End(Not run)
Description
View a serialized model from disk.
[.tensorflow.tensor 19
Usage
view_savedmodel(model_dir)
Arguments
model_dir The path to the exported model, as a string.
Value
URL for browsing TensorBoard (invisibly).
Description
Subset tensors with [
Usage
## S3 method for class 'tensorflow.tensor'
x[
...,
drop = TRUE,
style = getOption("tensorflow.extract.style"),
options = tf_extract_opts(style)
]
Arguments
x Tensorflow tensor
... slicing specs. See examples and details.
drop whether to drop scalar dimensions
style One of "python" or "R".
options An object returned by tf_extract_opts()
Examples
## Not run:
# missing arguments for python syntax are valid, but they must by backticked
# or supplied as NULL
x[, `::2`]
x[, NULL:NULL:2]
x[, `2:`]
# slicing with tensors is valid too, but note, tensors are never
# translated and are always interpreted python-style.
# A warning is issued the first time a tensor is passed to `[`
x[, tf$constant(0L):tf$constant(2L)]
# just as in python, only scalar tensors are valid
# https://www.tensorflow.org/api_docs/python/tf/Tensor#__getitem__
# To silence the warnings about tensors being passed as-is and negative numbers
# being interpreted python-style, set
options(tensorflow.extract.style = 'R')
## End(Not run)
Index
∗ datasets utils::browseURL(), 12
tf, 14
[.tensorflow.tensor, 19 view_savedmodel, 18
all_dims, 2 yaml.load(), 7
as_tensor, 3
conda_binary(), 5
evaluate, 4
install_tensorflow, 4
keras3, 4
keras3::install_keras(), 4, 7
parse_arguments, 7
parse_flags, 7
reticulate::conda_install(), 5
reticulate::install_miniconda(), 6
reticulate::py_install(), 7
reticulate::py_set_seed(), 9
reticulate::virtualenv_install(), 5
set.seed(), 9
set_random_seed, 8
setHook(), 18
shape, 9
tensorboard, 11
tensorflow, 13
tensorflow-package (tensorflow), 13
tf, 14
tf_extract_opts, 14
tf_function, 15
tf_probability, 16
use_compat, 17
use_session_with_seed, 17
use_session_with_seed(), 9
22