如何使KERA在培训时利用所有可用的CPU容量?
我正在尝试为一个回归问题实现一系列不同的神经网络。当我训练一个单一型号时,我发现我的计算机没有利用所有可用的CPU,我想这会使训练更快 最终我想指定多个模型(大约4个),可以同时训练,但首先我只想在训练单个模型时利用所有CPU。下面的屏幕截图显示了我培训模型时CPU的使用情况: 在下面的代码中,我尝试设置如何使KERA在培训时利用所有可用的CPU容量?,r,machine-learning,keras,neural-network,cpu,R,Machine Learning,Keras,Neural Network,Cpu,我正在尝试为一个回归问题实现一系列不同的神经网络。当我训练一个单一型号时,我发现我的计算机没有利用所有可用的CPU,我想这会使训练更快 最终我想指定多个模型(大约4个),可以同时训练,但首先我只想在训练单个模型时利用所有CPU。下面的屏幕截图显示了我培训模型时CPU的使用情况: 在下面的代码中,我尝试设置use\u multiprocessing=TRUE,我认为这可能会有所帮助,但我得到的错误是没有使用参数 library(keras) epoch <- 50 lr <- 0
use\u multiprocessing=TRUE
,我认为这可能会有所帮助,但我得到的错误是没有使用参数
library(keras)
epoch <- 50
lr <- 0.1
decay <- lr / epoch
# initialize model
fit_NN4 <- keras_model_sequential() %>%
layer_flatten(input_shape = training %>% select(-date, -mktcap, -permno, -ret.adj) %>% ncol()) %>%
layer_dense(units = 64, activation = "relu") %>%
layer_dense(units = 32, activation = "relu") %>%
layer_dense(units = 16, activation = "relu") %>%
layer_dense(units = 8, activation = "relu") %>%
layer_dense(units = 1)
# compile
fit_NN4 %>% compile(
loss = "mse", # loss objective function
#optimizer = optimizer_rmsprop(),
optimizer = optimizer_sgd(lr = lr, decay = decay),
metrics = c("mean_absolute_error")
)
# train the model
fit_NN4 %>%
fit(
# Training data
x = training %>% select(-date, -mktcap, -permno, -ret.adj) %>% as.matrix(),
y = training %>% pull(ret.adj) %>% as.matrix(),
epoch = epoch,
# Validation data
validation_data =
list(validation %>% select(-date, -mktcap, -permno, -ret.adj) %>% as.matrix(),
validation %>% pull(ret.adj) %>% as.matrix()),
# Callbacks
callbacks = list(
callback_early_stopping(monitor = "val_loss", # early stop objective
mode = "min", # minimize objective
verbose = 1, # Return epoch at stop
patience = 4 # wait for 4 epochs to stop relative to min
use_multiprocessing = TRUE
)) # Use all CPU capacity
)
库(keras)
纪元%
层密度(单位=64,活化=“relu”)%>%
层密度(单位=32,活化=“relu”)%>%
层密度(单位=16,活化=“relu”)%>%
层密度(单位=8,活化=“relu”)%>%
层密度(单位=1)
#编撰
适合编译%4%>%(
loss=“mse”,#损失目标函数
#优化器=优化器_rmsprop(),
优化器=优化器(lr=lr,衰减=衰减),
指标=c(“平均绝对误差”)
)
#训练模型
适合度\u NN4%>%
合身(
#训练数据
x=training%%>%select(-date,-mktcap,-permno,-ret.adj)%%>%as.matrix(),
y=训练%>%pull(ret.adj)%%>%as.matrix(),
纪元,
#验证数据
验证数据=
列表(验证%>%select(-date,-mktcap,-permno,-ret.adj)%%>%as.matrix(),
验证%>%pull(ret.adj)%%>%as.matrix()),
#回调
回调=列表(
回调(早停)(monitor=“val_loss”#早停目标
mode=“min”#最小化目标
verbose=1,#在停止时返回历元
耐心=4#等待4个纪元相对于分钟停止
使用多处理=真
))#使用所有CPU容量
)
我得到错误:找不到对象“training”
是的,我没有上传整个数据集,因为它太大了。因此,代码片段只是模型体系结构,不包含数据。您看到了吗:它进一步链接到这一点,这似乎是相关的: