рдкрд░рд┐рдЪрдп
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
рдЖрд░ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЬреАрдПрдирдпреВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднреАрддрд░ рдПрдХ рдореБрдХреНрдд рдУрдкрди-рд╕реЛрд░реНрд╕ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЗрд╕ рднрд╛рд╖рд╛ рдиреЗ рдХрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдФрд░ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд╛рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ, рдХрдИ рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА рдЧрддрд┐ рдЦрд░рд╛рдм рд╣реИред рдЖрд░ рдкрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИрдмреНрд░реЗрд╣рд╛рдм рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА
рдЙрдард╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ -
рд╕рдорд╛рдирд╛рдВрддрд░ ред
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди
рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП
рдиреНрдпреВрд░рд▓рдиреЗрдЯ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдлреЗрдиреЛрдЯрд╛рдЗрдкрд┐рдХ рд▓рдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╕рдордп рдЧрдгрдирд╛ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рд╛рдордЧреНрд░реА рдФрд░ рддрд░реАрдХреЗ
рд╣рдордиреЗ
рдЖрд░ 2.15.2 ,
рдиреНрдпреВрд░рд▓рдиреЗрдЯ - 1.32,
рд╕рдорд╛рдирд╛рдВрддрд░ - 2.15.2,
рд░реЗрдВрдмрдорд╛рд░реНрдХ - 1.0.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╡рд┐рдВрдбреЛрдЬ 7 рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХрдВрдкреНрдпреВрдЯрд░, рдПрдХ Intell Core i5-2550K CPU @ 3.40GHz (4 рдХреЛрд░) рдФрд░ 8GB RAM рд╣реИред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдбреЗрдЯрд╛ (рдЕрдиреБрдорд╛рди, рдкреИрдХреЗрдЬ = "рдбреЗрдЯрд╛рд╕реЗрдЯ")ред
рдкрд░рд┐рдгрд╛рдо рдФрд░ рдЪрд░реНрдЪрд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЪрд▓реЛ рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрдирд╛ рдХреЗ рджреМрд░рд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдорд╛рдореВрд▓реА рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде
рдиреНрдпреВрд░рд▓рдиреЗрдЯ рдкреИрдХреЗрдЬ рдХреЗ рд╡рд┐рд╡рд░рдг рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдереНрд░реЗрд╢реЛрд▓реНрдб = 0.0001 - рд╕реНрдЯреЙрдкрд┐рдВрдЧ рдорд╛рдирджрдВрдб рдореЗрдВ рд╕реЗ рдПрдХ, рдФрд░ рдЧрдгрдирд╛ рдХрд╛ рджреЛрд╣рд░рд╛рд╡
= 20 - 20 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐, рддрд╛рдХрд┐ рдЧрдгрдирд╛ рдЕрдзрд┐рдХ "рдЬрдЯрд┐рд▓" рд╣реЛред
nn<-function() { print(" ") neuralnet(case~parity+induced+spontaneous, infert, err.fct="ce", linear.output=FALSE, likelihood=TRUE,rep=20, threshold=0.0001) } nn()
рдЖрдк
рд╡рд┐рдВрдбреЛрдЬ рдЯрд╛рд╕реНрдХ рдореИрдиреЗрдЬрд░ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реАрдкреАрдпреВ рд▓реЛрдб 25% рд╣реИред
рдЕрдм рдЗрд╕ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рдорд╛рдкреЗрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
рд░рд┐рдВрдЪрдорд╛рд░реНрдХ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдорд╛рдк рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
within(benchmark(test.name=test.function(),
рдкрд░рд┐рдгрд╛рдо рд╣реИ:
test replications elapsed average 1 _ 3 47.83 15.94333333
рдЕрдм, рдЗрд╕ рд╕рдордп рдХреА рддреБрд▓рдирд╛
рдкреНрд░рддрд┐рдирд┐рдзрд┐ = 20 рд╡рд┐рдХрд▓реНрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рдмрд▓реНрдХрд┐
20 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреАрд▓рдоред
nn.s<-function() { print(" ") nets<-sapply(1:20, function(X) neuralnet(case~parity+induced+spontaneous, infert, err.fct="ce", linear.output=FALSE, likelihood=TRUE,rep=1, threshold=0.0001)) }
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ:
test replications elapsed average 1 _ 3 46.05 15.35 2 _ 3 47.52 15.84
рд░рдирдЯрд╛рдЗрдо рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ
рдиреНрдпреВрд░рд▓рдиреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░
рд░рд┐рдЯреНрд░реАрд╕ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдХреЛрдИ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рд╣реИред рд╢реЗрд╖ рдЧреБрдард▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо
рд╕рдорд╛рдирд╛рдВрддрд░ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ
рд╣реИрдВ ред рдпрд╣
R c рд╕рдВрд╕реНрдХрд░рдг 2.14.0 рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХрдИ рд╕реНрд╡рддрдВрддреНрд░ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб
рдиреНрдпреВрд░рд▓рдиреЗрдЯ рдХрд╛ рдХрд╛рд░реНрдп
рдХрд░реЗрдЧрд╛ ред
nn.p<-function() { print(" ") cl <- makeCluster(getOption("cl.cores", 4))
рд▓реАрдб рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
test replications elapsed average 3 _ 3 17.38 5.793333333 2 _ 3 45.88 15.293333333 1 _ 3 46.61 15.536666667
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрд╕реНрдХрд░рдг 2.5 рдЧреБрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб 100% рд╣реИред
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк
рдиреНрдпреВрд░рд▓рдиреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд░реИрдкрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
pneuralnet <- function(formula, data, rep=1, ..., cl) { clusterExport(cl,"data") clusterEvalQ(cl,library(neuralnet)) nets <- parLapply(cl, 1:rep, function(X) neuralnet(formula, data, rep=1, ...) )
рдкреВрд░рд╛ рдХреЛрдб library(parallel) library(neuralnet) library(rbenchmark) data(infert, package="datasets") nn<-function() { print(" ") neuralnet(case~parity+induced+spontaneous, infert, err.fct="ce", linear.output=FALSE, likelihood=TRUE,rep=20, threshold=0.0001) } nn.s<-function() { print(" ") nets<-sapply(1:20, function(X) neuralnet(case~parity+induced+spontaneous, infert, err.fct="ce", linear.output=FALSE, likelihood=TRUE,rep=1, threshold=0.0001)) } nn.p<-function() { print(" ") cl <- makeCluster(getOption("cl.cores", 4)) clusterExport(cl,"infert") clusterEvalQ(cl,library(neuralnet)) parSapply(cl, 1:20, function(X) neuralnet(case~parity+induced+spontaneous, infert, err.fct="ce", linear.output=FALSE, likelihood=TRUE,rep=1, threshold=0.0001) ) stopCluster(cl) } pneuralnet <- function(formula, data, rep=1, ..., cl) { clusterExport(cl,"data") clusterEvalQ(cl,library(neuralnet)) nets <- parLapply(cl, 1:rep, function(X) neuralnet(formula, data, rep=1, ...) )