r - Keras R:在卷积和池化层之后将输入添加到卷积神经网络
问题描述
我在这个答案中使用了该方法: 在卷积和池化层之后向卷积神经网络添加输入 我在 R 中使用 Keras 并在拟合模型时出错:
Error in py_call_impl(callable, dots$args, dots$keywords) :
ValueError: in user code:
C:\Users\R-MINI~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py:853 train_function
return step_function(self, iterator)
有人能告诉我我的代码出了什么问题吗?
library(keras)
numvar1 <- 100
numvar2 <- 30
numnode_conv <- 100
conv_model <- keras_model_sequential()
conv_model %>%
layer_conv_1d(filters = 32, kernel_size = 3, activation = 'relu',
input_shape = c(numvar1, 1)) %>%
layer_conv_1d(filters = 32, kernel_size = 3, activation = 'relu') %>%
layer_average_pooling_1d(pool_size = 3)%>%
layer_flatten() %>%
layer_dense(units = numnode_conv, activation = "relu")
fc_model <- keras_model_sequential()
fc_model %>%
layer_dense(units = numnode_conv+numvar2, activation = "relu", input_shape = numnode_conv+numvar2) %>%
layer_dense(units = numnode_conv+numvar2, activation = "relu") %>%
layer_dense(units = 1)
input1 <- layer_input(c(numvar1))
input2 <- layer_input(c(numvar2))
output1 <- input1 %>% conv_model
inputconv <- layer_concatenate(list(output1, input2))
output <- inputconv%>%fc_model
model <- keras_model( list(input1 , input2) , output )
early_stop <- callback_early_stopping(monitor = "val_loss",
min_delta = 0.1,
patience = 2,
restore_best_weights = TRUE,
verbose = 0)
losses <- c(keras::loss_mean_absolute_percentage_error,
keras::loss_mean_absolute_error,
keras::loss_mean_squared_error,
keras::loss_mean_squared_logarithmic_error)
model %>% compile(
optimizer = "rmsprop",
loss = losses[3],
metrics = c("mse")
)
trainx1 <- matrix( rnorm(100*numvar1,mean=0,sd=1), 100, numvar1)
trainx2 <- matrix( rnorm(100*numvar2,mean=0,sd=1), 100, numvar2)
trainy <- rnorm(100,mean=0,sd=1)
model %>% fit(
list(trainx1,trainx2),
trainy,
epochs = 500,
batch_size = 128,
verbose = 1,
validation_split = 0.2,
callbacks = list(
early_stop)
)
解决方案
推荐阅读
- javascript - 使用 .reduce() 将数组转换为对象
- spring-kafka - Spring kafka 2.7.8 的 setAckOnError() 方法
- jwt - 如何从 base64 结束字符串创建 Java Key 对象,以便使用 JJWT 进行 PS256 解析
- spring-boot - Spring将保存到数据库与另一个实例同步
- java - 如何将成员添加到数组列表的后面或前面
- java - 将日期格式转换为 excel 友好格式,然后对其进行解析以转换日期
- sql - 如何将行名更新为 SQL 中两个表之间的列名
- html - 每次单击显示列按钮后,表格列的宽度都会增加
- javascript - 在单击按钮上打开当前手风琴,关闭其他使用 jqwery 动态打开的手风琴
- angular - 扫描后如何返回带有插入项的更新数组?