Repository: systemml Updated Branches: refs/heads/master 54dbe9bb2 -> 15ecb723e
http://git-wip-us.apache.org/repos/asf/systemml/blob/15ecb723/src/test/scripts/functions/paramserv/paramserv-nn-bsp-epoch.dml ---------------------------------------------------------------------- diff --git a/src/test/scripts/functions/paramserv/paramserv-nn-bsp-epoch.dml b/src/test/scripts/functions/paramserv/paramserv-nn-bsp-epoch.dml deleted file mode 100644 index 8605984..0000000 --- a/src/test/scripts/functions/paramserv/paramserv-nn-bsp-epoch.dml +++ /dev/null @@ -1,53 +0,0 @@ -#------------------------------------------------------------- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -#------------------------------------------------------------- - -source("src/test/scripts/functions/paramserv/mnist_lenet_paramserv.dml") as mnist_lenet -source("nn/layers/cross_entropy_loss.dml") as cross_entropy_loss - -# Generate the training data -[images, labels, C, Hin, Win] = mnist_lenet::generate_dummy_data() -n = nrow(images) - -# Generate the training data -[X, Y, C, Hin, Win] = mnist_lenet::generate_dummy_data() - -# Split into training and validation -val_size = n * 0.1 -X = images[(val_size+1):n,] -X_val = images[1:val_size,] -Y = labels[(val_size+1):n,] -Y_val = labels[1:val_size,] - -# Arguments -epochs = 10 -workers = 2 -batchsize = 32 - -# Train -[W1, b1, W2, b2, W3, b3, W4, b4] = mnist_lenet::train(X, Y, X_val, Y_val, C, Hin, Win, epochs, workers, "BSP", "EPOCH", batchsize,"DISJOINT_CONTIGUOUS", "LOCAL") - -# Compute validation loss & accuracy -probs_val = mnist_lenet::predict(X_val, C, Hin, Win, batchsize, W1, b1, W2, b2, W3, b3, W4, b4) -loss_val = cross_entropy_loss::forward(probs_val, Y_val) -accuracy_val = mean(rowIndexMax(probs_val) == rowIndexMax(Y_val)) - -# Output results -print("Val Loss: " + loss_val + ", Val Accuracy: " + accuracy_val) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/systemml/blob/15ecb723/src/test/scripts/functions/paramserv/paramserv-spark-agg-service-failed.dml ---------------------------------------------------------------------- diff --git a/src/test/scripts/functions/paramserv/paramserv-spark-agg-service-failed.dml b/src/test/scripts/functions/paramserv/paramserv-spark-agg-service-failed.dml new file mode 100644 index 0000000..4d0f32e --- /dev/null +++ b/src/test/scripts/functions/paramserv/paramserv-spark-agg-service-failed.dml @@ -0,0 +1,53 @@ +#------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +#------------------------------------------------------------- + +e1 = "element1" +modelList = list(e1) +X = matrix(1, rows=200, cols=30) +Y = matrix(2, rows=200, cols=1) +X_val = matrix(3, rows=200, cols=30) +Y_val = matrix(4, rows=200, cols=1) + +gradients = function(matrix[double] features, + matrix[double] labels, + list[unknown] hyperparams, + list[unknown] model) + return (list[unknown] gradients) { + gradients = model +} + +aggregation = function(list[unknown] model, + list[unknown] gradients, + list[unknown] hyperparams) + return (list[unknown] modelResult) { + modelResult = model + print(toString(as.matrix(gradients["agg_service_err"]))) +} + +e2 = "element2" +params = list(e2) + +modelList = list("model") + +# Use paramserv function +modelList2 = paramserv(model=modelList, features=X, labels=Y, val_features=X_val, val_labels=Y_val, upd="gradients", agg="aggregation", mode="REMOTE_SPARK", utype="BSP", epochs=10, hyperparams=params, k=1) + +print(toString(as.matrix(modelList2[1]))) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/systemml/blob/15ecb723/src/test/scripts/functions/paramserv/paramserv-spark-nn-bsp-batch-dc.dml ---------------------------------------------------------------------- diff --git a/src/test/scripts/functions/paramserv/paramserv-spark-nn-bsp-batch-dc.dml b/src/test/scripts/functions/paramserv/paramserv-spark-nn-bsp-batch-dc.dml deleted file mode 100644 index 31d44aa..0000000 --- a/src/test/scripts/functions/paramserv/paramserv-spark-nn-bsp-batch-dc.dml +++ /dev/null @@ -1,53 +0,0 @@ -#------------------------------------------------------------- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -#------------------------------------------------------------- - -source("src/test/scripts/functions/paramserv/mnist_lenet_paramserv.dml") as mnist_lenet -source("nn/layers/cross_entropy_loss.dml") as cross_entropy_loss - -# Generate the training data -[images, labels, C, Hin, Win] = mnist_lenet::generate_dummy_data() -n = nrow(images) - -# Generate the training data -[X, Y, C, Hin, Win] = mnist_lenet::generate_dummy_data() - -# Split into training and validation -val_size = n * 0.1 -X = images[(val_size+1):n,] -X_val = images[1:val_size,] -Y = labels[(val_size+1):n,] -Y_val = labels[1:val_size,] - -# Arguments -epochs = 10 -workers = 2 -batchsize = 16 - -# Train -[W1, b1, W2, b2, W3, b3, W4, b4] = mnist_lenet::train(X, Y, X_val, Y_val, C, Hin, Win, epochs, workers, "BSP", "BATCH", batchsize, "DISJOINT_CONTIGUOUS", "REMOTE_SPARK") - -# Compute validation loss & accuracy -probs_val = mnist_lenet::predict(X_val, C, Hin, Win, batchsize, W1, b1, W2, b2, W3, b3, W4, b4) -loss_val = cross_entropy_loss::forward(probs_val, Y_val) -accuracy_val = mean(rowIndexMax(probs_val) == rowIndexMax(Y_val)) - -# Output results -print("Val Loss: " + loss_val + ", Val Accuracy: " + accuracy_val) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/systemml/blob/15ecb723/src/test/scripts/functions/paramserv/paramserv-spark-worker-failed.dml ---------------------------------------------------------------------- diff --git a/src/test/scripts/functions/paramserv/paramserv-spark-worker-failed.dml b/src/test/scripts/functions/paramserv/paramserv-spark-worker-failed.dml new file mode 100644 index 0000000..ad16122 --- /dev/null +++ b/src/test/scripts/functions/paramserv/paramserv-spark-worker-failed.dml @@ -0,0 +1,53 @@ +#------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +#------------------------------------------------------------- + +e1 = "element1" +modelList = list(e1) +X = matrix(1, rows=200, cols=30) +Y = matrix(2, rows=200, cols=1) +X_val = matrix(3, rows=200, cols=30) +Y_val = matrix(4, rows=200, cols=1) + +gradients = function(matrix[double] features, + matrix[double] labels, + list[unknown] hyperparams, + list[unknown] model) + return (list[unknown] gradients) { + gradients = model + print(toString(as.matrix(gradients["worker_err"]))) +} + +aggregation = function(list[unknown] model, + list[unknown] gradients, + list[unknown] hyperparams) + return (list[unknown] modelResult) { + modelResult = model +} + +e2 = "element2" +params = list(e2) + +modelList = list("model") + +# Use paramserv function +modelList2 = paramserv(model=modelList, features=X, labels=Y, val_features=X_val, val_labels=Y_val, upd="gradients", agg="aggregation", mode="REMOTE_SPARK", utype="BSP", epochs=10, hyperparams=params, k=1) + +print(toString(as.matrix(modelList2[1]))) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/systemml/blob/15ecb723/src/test/scripts/functions/paramserv/paramserv-test.dml ---------------------------------------------------------------------- diff --git a/src/test/scripts/functions/paramserv/paramserv-test.dml b/src/test/scripts/functions/paramserv/paramserv-test.dml new file mode 100644 index 0000000..b21e9c0 --- /dev/null +++ b/src/test/scripts/functions/paramserv/paramserv-test.dml @@ -0,0 +1,48 @@ +#------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +#------------------------------------------------------------- + +source("src/test/scripts/functions/paramserv/mnist_lenet_paramserv.dml") as mnist_lenet +source("nn/layers/cross_entropy_loss.dml") as cross_entropy_loss + +# Generate the training data +[images, labels, C, Hin, Win] = mnist_lenet::generate_dummy_data() +n = nrow(images) + +# Generate the training data +[X, Y, C, Hin, Win] = mnist_lenet::generate_dummy_data() + +# Split into training and validation +val_size = n * 0.1 +X = images[(val_size+1):n,] +X_val = images[1:val_size,] +Y = labels[(val_size+1):n,] +Y_val = labels[1:val_size,] + +# Train +[W1, b1, W2, b2, W3, b3, W4, b4] = mnist_lenet::train(X, Y, X_val, Y_val, C, Hin, Win, $epochs, $workers, $utype, $freq, $batchsize, $scheme, $mode) + +# Compute validation loss & accuracy +probs_val = mnist_lenet::predict(X_val, C, Hin, Win, $batchsize, W1, b1, W2, b2, W3, b3, W4, b4) +loss_val = cross_entropy_loss::forward(probs_val, Y_val) +accuracy_val = mean(rowIndexMax(probs_val) == rowIndexMax(Y_val)) + +# Output results +print("Val Loss: " + loss_val + ", Val Accuracy: " + accuracy_val) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/systemml/blob/15ecb723/src/test_suites/java/org/apache/sysml/test/integration/functions/paramserv/ZPackageSuite.java ---------------------------------------------------------------------- diff --git a/src/test_suites/java/org/apache/sysml/test/integration/functions/paramserv/ZPackageSuite.java b/src/test_suites/java/org/apache/sysml/test/integration/functions/paramserv/ZPackageSuite.java index d1b3a6d..a99035f 100644 --- a/src/test_suites/java/org/apache/sysml/test/integration/functions/paramserv/ZPackageSuite.java +++ b/src/test_suites/java/org/apache/sysml/test/integration/functions/paramserv/ZPackageSuite.java @@ -30,9 +30,11 @@ import org.junit.runners.Suite; SparkDataPartitionerTest.class, ParamservSyntaxTest.class, SerializationTest.class, + RpcObjectTest.class, ParamservRecompilationTest.class, ParamservRuntimeNegativeTest.class, - ParamservLocalNNTest.class + ParamservLocalNNTest.class, + ParamservSparkNNTest.class })
