[02ea2d]: / man / merge_models.Rd

Download this file

56 lines (49 with data), 2.0 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/create_model_utils.R
\name{merge_models}
\alias{merge_models}
\title{Merge two models}
\usage{
merge_models(
models,
layer_names,
layer_dense,
solver = "adam",
learning_rate = 1e-04,
freeze_base_model = c(FALSE, FALSE),
model_seed = NULL
)
}
\arguments{
\item{models}{List of two models.}
\item{layer_names}{Vector of length 2 with names of layers to merge.}
\item{layer_dense}{Vector specifying number of neurons per dense layer after last LSTM or CNN layer (if no LSTM used).}
\item{solver}{Optimization method, options are \verb{"adam", "adagrad", "rmsprop"} or \code{"sgd"}.}
\item{learning_rate}{Learning rate for optimizer.}
\item{freeze_base_model}{Boolean vector of length 2. Whether to freeze weights of individual models.}
\item{model_seed}{Set seed for model parameters in tensorflow if not \code{NULL}.}
}
\value{
A keras model merging two input models.
}
\description{
Combine two models at certain layers and add dense layer(s) afterwards.
}
\examples{
\dontshow{if (reticulate::py_module_available("tensorflow")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf}
model_1 <- create_model_lstm_cnn(layer_lstm = c(64, 64), maxlen = 50, layer_dense = c(32, 4),
verbose = FALSE)
model_2 <- create_model_lstm_cnn(layer_lstm = c(32), maxlen = 40,
layer_dense = c(8, 2), verbose = FALSE)
# get names of second to last layers
num_layers_1 <- length(model_1$get_config()$layers)
layer_name_1 <- model_1$get_config()$layers[[num_layers_1 - 1]]$name
num_layers_2 <- length(model_2$get_config()$layers)
layer_name_2 <- model_2$get_config()$layers[[num_layers_2 - 1]]$name
# merge models
model <- merge_models(models = list(model_1, model_2),
layer_names = c(layer_name_1, layer_name_2),
layer_dense = c(6, 2),
freeze_base_model = c(FALSE, FALSE))
\dontshow{\}) # examplesIf}
}