| rnn_kindling | R Documentation |
rnn_kindling() defines a recurrent neural network model that can be used
for classification or regression on sequential data. It integrates with the
tidymodels ecosystem and uses the torch backend via kindling.
rnn_kindling(
mode = "unknown",
engine = "kindling",
hidden_neurons = NULL,
activations = NULL,
output_activation = NULL,
bias = NULL,
bidirectional = NULL,
dropout = NULL,
epochs = NULL,
batch_size = NULL,
penalty = NULL,
mixture = NULL,
learn_rate = NULL,
optimizer = NULL,
validation_split = NULL,
rnn_type = NULL,
optimizer_args = NULL,
loss = NULL,
early_stopping = NULL,
device = NULL,
verbose = NULL,
cache_weights = NULL
)
mode |
A single character string for the type of model. Possible values are "unknown", "regression", or "classification". |
engine |
A single character string specifying what computational engine to use for fitting. Currently only "kindling" is supported. |
|
An integer vector for the number of units in each hidden layer. Can be tuned. | |
activations |
A character vector of activation function names for each hidden layer (e.g., "relu", "tanh", "sigmoid"). Can be tuned. |
output_activation |
A character string for the output activation function. Can be tuned. |
bias |
Logical for whether to include bias terms. Can be tuned. |
bidirectional |
A logical indicating whether to use bidirectional RNN. Can be tuned. |
dropout |
A number between 0 and 1 for dropout rate between layers. Can be tuned. |
epochs |
An integer for the number of training iterations. Can be tuned. |
batch_size |
An integer for the batch size during training. Can be tuned. |
penalty |
A number for the regularization penalty (lambda). Default |
mixture |
A number between 0 and 1 for the elastic net mixing parameter.
Default
|
learn_rate |
A number for the learning rate. Can be tuned. |
optimizer |
A character string for the optimizer type ("adam", "sgd", "rmsprop"). Can be tuned. |
validation_split |
A number between 0 and 1 for the proportion of data used for validation. Can be tuned. |
rnn_type |
A character string for the type of RNN cell ("rnn", "lstm",
"gru"). Cannot be tuned — pass via |
optimizer_args |
A named list of additional arguments passed to the
optimizer. Cannot be tuned — pass via |
loss |
A character string for the loss function ("mse", "mae",
"cross_entropy", "bce"). Cannot be tuned — pass via |
early_stopping |
An |
device |
A character string for the device ("cpu", "cuda", "mps").
Cannot be tuned — pass via |
verbose |
Logical for whether to print training progress. Cannot be
tuned — pass via |
cache_weights |
Logical. If |
This function creates a model specification for a recurrent neural network that can be used within tidymodels workflows. The model supports:
Multiple RNN types: basic RNN, LSTM, and GRU
Bidirectional processing
Dropout regularization
GPU acceleration (CUDA, MPS, or CPU)
Hyperparameter tuning integration
Both regression and classification tasks
The device parameter controls where computation occurs:
NULL (default): Auto-detect best available device (CUDA > MPS > CPU)
"cuda": Use NVIDIA GPU
"mps": Use Apple Silicon GPU
"cpu": Use CPU only
A model specification object with class rnn_kindling.
if (torch::torch_is_installed()) {
box::use(
recipes[recipe],
workflows[workflow, add_recipe, add_model],
parsnip[fit]
)
# Model specs
rnn_spec = rnn_kindling(
mode = "classification",
hidden_neurons = c(64, 32),
rnn_type = "lstm",
activation = c("relu", "elu"),
epochs = 100,
bidirectional = TRUE
)
wf = workflow() |>
add_recipe(recipe(Species ~ ., data = iris)) |>
add_model(rnn_spec)
fit_wf = fit(wf, data = iris)
fit_wf
} else {
message("Torch not fully installed — skipping example")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.