@@ -197,7 +197,7 @@ engine_RNN <- function(
197197 } else if (loss == " MAE" ) {
198198 units_out <- n_params
199199 loss_func <- " mean_absolute_error"
200- } else if (loss == " Huber " ) {
200+ } else if (loss == " HBR " ) {
201201 units_out <- n_params
202202 loss_func <- " huber_loss"
203203 } else {
@@ -216,55 +216,79 @@ engine_RNN <- function(
216216 object = RNN ,
217217 units = units ,
218218 input_shape = c(n_trials , n_info ),
219- return_sequences = FALSE
220219 )
221220 },
222221 " GRU" = {
223222 RNN <- keras :: layer_gru(
224223 object = RNN ,
225224 units = units ,
226225 input_shape = c(n_trials , n_info ),
227- return_sequences = FALSE ,
228226 )
229227 },
230228 " LSTM" = {
231229 RNN <- keras :: layer_lstm(
232230 object = RNN ,
233231 units = units ,
234232 input_shape = c(n_trials , n_info ),
235- return_sequences = FALSE ,
236233 )
237234 },
238235 " BiRNN" = {
239236 RNN <- keras :: bidirectional(
240237 object = RNN ,
241- layer = keras :: layer_simple_rnn(
242- units = units ,
243- return_sequences = FALSE
244- ),
238+ layer = keras :: layer_simple_rnn(units = units ),
245239 input_shape = c(n_trials , n_info )
246240 )
247241 },
248242 " BiGRU" = {
249243 RNN <- keras :: bidirectional(
250244 object = RNN ,
251- layer = keras :: layer_gru(units = units , return_sequences = FALSE ),
245+ layer = keras :: layer_gru(units = units ),
252246 input_shape = c(n_trials , n_info )
253247 )
254248 },
255249 " BiLSTM" = {
256250 RNN <- keras :: bidirectional(
257251 object = RNN ,
258- layer = keras :: layer_lstm(units = units , return_sequences = FALSE ),
252+ layer = keras :: layer_lstm(units = units ),
259253 input_shape = c(n_trials , n_info )
260254 )
261255 },
262- ) | >
263- # Hidden Layer
264- keras :: layer_dense(
265- units = units / 2 ,
266- activation = " relu"
267- ) | >
256+ )
257+
258+ # Hidden Layer
259+ switch (
260+ EXPR = as.character(L ),
261+ " 0" = {
262+ RNN <- keras :: layer_dense(
263+ object = RNN ,
264+ units = units / 2 ,
265+ activation = " relu" ,
266+ kernel_initializer = keras :: initializer_he_normal()
267+ )
268+ },
269+ " 1" = {
270+ RNN <- keras :: layer_dense(
271+ object = RNN ,
272+ units = units / 2 ,
273+ activation = " relu" ,
274+ kernel_initializer = keras :: initializer_he_normal(),
275+ kernel_regularizer = keras :: regularizer_l1(penalty )
276+ )
277+ },
278+ " 2" = {
279+ RNN <- keras :: layer_dense(
280+ object = RNN ,
281+ units = units / 2 ,
282+ activation = " relu" ,
283+ kernel_initializer = keras :: initializer_he_normal(),
284+ kernel_regularizer = keras :: regularizer_l2(penalty )
285+ )
286+ }
287+ )
288+
289+ RNN <- RNN | >
290+ # Dropout Layer
291+ keras :: layer_dropout(rate = dropout ) | >
268292 # Output Layer
269293 keras :: layer_dense(
270294 units = units_out ,
0 commit comments