1

设置

假设我有一个用 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()

问题:

假设我已经定义了从 R^n 到 R^n 的函数 f,例如

f<-function(x){x^seq(from=1,to=n,by=1)}

如何修改我的代码以优化网络

                          C∘f∘A∘σ∘B,

其中 C 是从 R^n 到 R 的矩阵?

换句话说,我想制作自定义层,然后训练生成的网络......

4

0 回答 0