Настройка
Предположим, у меня есть архитектура нейронной сети, написанная в Keras (R), последний уровень которой выводит n выходных данных, поэтому что-то вроде этого
A∘σ∘B
Для некоторые матрицы A и B и некоторая функция активации σ (например, ReLu).
Вот код того, что я уже сделал (без нового слоя).
#-------------------------------#
# Build Model
#-------------------------------#
model<-keras_model_sequential()
# Define bulk of the network
model %>% layer_dense(units=Height,activation = "relu",input_shape = 1)
for(i in 1:Depth){
model %>% layer_dense(units=Height,activation = "relu",input_shape = 1)
}
# Readout Layer
model %>% layer_dense(units=1)
# Compile
model %>% keras::compile(loss="mse",
optimizer="adam",
metrics="mse")
## Report Model (Summary)
model %>% summary()
# Fit Model
fittedmodel<- model %>%
keras::fit(train_data,
trainingtarget,
epochs=epochs,
batch_size=(round(min(1,abs(Batch.size.percent))*nrow(train_data),digits = 0)), # Computes batch-size as a percentage of total data-size
)
# Notify: Training Complete
beep()
Вопрос:
Предположим, что я определил функцию f от R ^ n до R ^ n, скажем, например,
f<-function(x){x^seq(from=1,to=n,by=1)}
Как я могу изменить свой код для оптимизации сети
C∘f∘A∘σ∘B,
, где C это матрица от R ^ n до R?
Другими словами, я хочу создать пользовательский слой и затем обучить полученную сеть ....