设置
假设我有一个用 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 的矩阵?
换句话说,我想制作自定义层,然后训练生成的网络......