Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
179 commits
Select commit Hold shift + click to select a range
259cdcc
Create ParallelANN.scala
bgreeven Jul 3, 2014
dac5ba6
Create GeneralizedSteepestDescendAlgorithm
bgreeven Jul 3, 2014
07823c9
Create TestParallelANN.scala
bgreeven Jul 3, 2014
4a77893
Create TestParallelANNgraphics.scala
bgreeven Jul 3, 2014
bcc24e9
Update TestParallelANN.scala
bgreeven Jul 3, 2014
4b964c0
Update TestParallelANN.scala
bgreeven Jul 3, 2014
dd4a9a3
Update TestParallelANNgraphics.scala
bgreeven Jul 3, 2014
8e9395b
Update GeneralizedSteepestDescendAlgorithm
bgreeven Jul 30, 2014
874a44d
Update ParallelANN.scala
bgreeven Jul 30, 2014
86c2b59
Update GeneralizedSteepestDescendAlgorithm
bgreeven Jul 30, 2014
a6234c6
Update TestParallelANN.scala
bgreeven Jul 30, 2014
b6a381f
Update TestParallelANNgraphics.scala
bgreeven Jul 30, 2014
81f01e4
Rename GeneralizedSteepestDescendAlgorithm to GeneralizedSteepestDesc…
bgreeven Aug 1, 2014
9f32e11
Update TestParallelANNgraphics.scala
bgreeven Aug 1, 2014
4b8c780
Update and rename GeneralizedSteepestDescendAlgorithm.scala to Genera…
bgreeven Aug 21, 2014
5a87b18
Update ParallelANN.scala
bgreeven Aug 21, 2014
0bacba2
Update TestParallelANN.scala
bgreeven Aug 21, 2014
17d8a7d
Update TestParallelANNgraphics.scala
bgreeven Aug 21, 2014
0568b5e
Create mllib-ann.md
bgreeven Aug 22, 2014
1d24971
Update mllib-ann.md
bgreeven Aug 22, 2014
3452af7
Update mllib-ann.md
bgreeven Aug 22, 2014
3a5356a
Update mllib-ann.md
bgreeven Aug 22, 2014
f26dc82
Update mllib-ann.md
bgreeven Aug 22, 2014
5650786
Update mllib-ann.md
bgreeven Aug 22, 2014
a6544a5
Update and rename GeneralizedSteepestDescentAlgorithm.scala to Genera…
bgreeven Sep 2, 2014
09ba909
Update ParallelANN.scala
bgreeven Sep 2, 2014
88751e3
Update TestParallelANN.scala
bgreeven Sep 2, 2014
8a17a42
ANN test suite: learning XOR function
avulanov Sep 5, 2014
b3f92d1
Removing dependency on GeneralizedModel and Algorithm
avulanov Sep 9, 2014
e959d77
Addressing reviewers comments: interface refactoring
avulanov Sep 9, 2014
21f8d86
Apache header
avulanov Sep 9, 2014
156c632
Update ArtificialNeuralNetwork.scala
bgreeven Sep 10, 2014
fbf7af6
Update and rename TestParallelANN.scala to TestANN.scala
bgreeven Sep 10, 2014
ac3ca5c
Delete TestParallelANNgraphics.scala
bgreeven Sep 10, 2014
b16ba26
Update ArtificialNeuralNetwork.scala
bgreeven Sep 15, 2014
18dba54
Update ANNSuite.scala
bgreeven Sep 15, 2014
f9fca92
minor style fixes
avulanov Sep 17, 2014
d0b8546
Forward propagation code sharing
avulanov Sep 17, 2014
2ffe87a
Update ArtificialNeuralNetwork.scala
bgreeven Sep 22, 2014
250b3e1
Update ANNSuite.scala
bgreeven Sep 22, 2014
cfe02be
Delete TestANN.scala
bgreeven Sep 22, 2014
9897fc8
Create ANNDemo.scala
bgreeven Sep 22, 2014
f4f8a88
Update mllib-ann.md
bgreeven Sep 22, 2014
e391663
Update mllib-ann.md
bgreeven Sep 22, 2014
a19dc9f
Update ArtificialNeuralNetwork.scala
bgreeven Sep 23, 2014
b35daf5
Update ArtificialNeuralNetwork.scala
bgreeven Sep 23, 2014
a24fc48
Update ArtificialNeuralNetwork.scala
bgreeven Sep 23, 2014
d69fd11
Update ArtificialNeuralNetwork.scala
bgreeven Sep 23, 2014
2f3fc73
Update mllib-ann.md
bgreeven Sep 25, 2014
d88190a
Update ANNDemo.scala
bgreeven Sep 25, 2014
3c57ceb
Update ArtificialNeuralNetwork.scala
bgreeven Sep 25, 2014
4f8c0fe
Update ANNSuite.scala
bgreeven Sep 25, 2014
6fb9765
Update ArtificialNeuralNetwork.scala
bgreeven Sep 25, 2014
06370cd
Update ArtificialNeuralNetwork.scala
bgreeven Sep 25, 2014
b4aa9b3
Update ArtificialNeuralNetwork.scala
bgreeven Sep 25, 2014
e3fec3c
Minor style fixes
avulanov Sep 26, 2014
01cb9e5
Unit test parameter
avulanov Sep 26, 2014
d59b7e7
Update ANNSuite.scala
bgreeven Sep 28, 2014
7f8bcf9
ANN classifier draft
avulanov Oct 28, 2014
14d2129
Update ArtificialNeuralNetwork.scala
bgreeven Oct 28, 2014
efe29db
Update ANNSuite.scala
bgreeven Oct 28, 2014
9fe21f1
XOR classification test with draft
avulanov Oct 28, 2014
bde88da
ANN classifier refactoring in progress: need random weight function
avulanov Oct 28, 2014
4c51513
Minor stylefix, add additional function for customized initial weights
avulanov Oct 28, 2014
55fa605
Model as a parameters for classifier
avulanov Oct 31, 2014
4130fda
Scala style fix
avulanov Nov 5, 2014
be65b4f
Encoding of output with 0.1 and 0.9 by bgreeven suggestion
avulanov Dec 6, 2014
702436a
Addressing bgreeven comment regarding labels sort, annotations
avulanov Dec 10, 2014
c4accd9
Create ParallelANN.scala
bgreeven Jul 3, 2014
f392e07
Create GeneralizedSteepestDescendAlgorithm
bgreeven Jul 3, 2014
f53b0c5
Create TestParallelANN.scala
bgreeven Jul 3, 2014
cb435c3
Create TestParallelANNgraphics.scala
bgreeven Jul 3, 2014
1505a5c
Update TestParallelANN.scala
bgreeven Jul 3, 2014
4c6603e
Update TestParallelANN.scala
bgreeven Jul 3, 2014
8762ff6
Update TestParallelANNgraphics.scala
bgreeven Jul 3, 2014
d3603e9
Update GeneralizedSteepestDescendAlgorithm
bgreeven Jul 30, 2014
d55caac
Update ParallelANN.scala
bgreeven Jul 30, 2014
03b7a92
Update GeneralizedSteepestDescendAlgorithm
bgreeven Jul 30, 2014
cb83d7c
Update TestParallelANN.scala
bgreeven Jul 30, 2014
daf970e
Update TestParallelANNgraphics.scala
bgreeven Jul 30, 2014
589a3fa
Rename GeneralizedSteepestDescendAlgorithm to GeneralizedSteepestDesc…
bgreeven Aug 1, 2014
a4556b2
Update TestParallelANNgraphics.scala
bgreeven Aug 1, 2014
d6cf7ad
Update and rename GeneralizedSteepestDescendAlgorithm.scala to Genera…
bgreeven Aug 21, 2014
3f34035
Update ParallelANN.scala
bgreeven Aug 21, 2014
1743a22
Update TestParallelANN.scala
bgreeven Aug 21, 2014
59286bf
Update TestParallelANNgraphics.scala
bgreeven Aug 21, 2014
345e2f0
Create mllib-ann.md
bgreeven Aug 22, 2014
681dfac
Update mllib-ann.md
bgreeven Aug 22, 2014
8706959
Update mllib-ann.md
bgreeven Aug 22, 2014
1078966
Update mllib-ann.md
bgreeven Aug 22, 2014
6c6f80f
Update mllib-ann.md
bgreeven Aug 22, 2014
ed14eb7
Update mllib-ann.md
bgreeven Aug 22, 2014
0f1a009
Update and rename GeneralizedSteepestDescentAlgorithm.scala to Genera…
bgreeven Sep 2, 2014
f6b2674
Update ParallelANN.scala
bgreeven Sep 2, 2014
13f2b92
Update TestParallelANN.scala
bgreeven Sep 2, 2014
e0a8962
ANN test suite: learning XOR function
avulanov Sep 5, 2014
5c4a59d
Removing dependency on GeneralizedModel and Algorithm
avulanov Sep 9, 2014
c5b2b27
Addressing reviewers comments: interface refactoring
avulanov Sep 9, 2014
5dd20ca
Apache header
avulanov Sep 9, 2014
1f63db2
Update ArtificialNeuralNetwork.scala
bgreeven Sep 10, 2014
7935d12
Update and rename TestParallelANN.scala to TestANN.scala
bgreeven Sep 10, 2014
5712c9f
Delete TestParallelANNgraphics.scala
bgreeven Sep 10, 2014
ac8aa23
Update ArtificialNeuralNetwork.scala
bgreeven Sep 15, 2014
6d666a4
Update ANNSuite.scala
bgreeven Sep 15, 2014
03690a9
minor style fixes
avulanov Sep 17, 2014
5c1e804
Forward propagation code sharing
avulanov Sep 17, 2014
cb8550b
Update ArtificialNeuralNetwork.scala
bgreeven Sep 22, 2014
150b41c
Update ANNSuite.scala
bgreeven Sep 22, 2014
b13464a
Delete TestANN.scala
bgreeven Sep 22, 2014
c4d1d85
Create ANNDemo.scala
bgreeven Sep 22, 2014
cda2bd1
Update mllib-ann.md
bgreeven Sep 22, 2014
6e7a7c6
Update mllib-ann.md
bgreeven Sep 22, 2014
1d745af
Update ArtificialNeuralNetwork.scala
bgreeven Sep 23, 2014
d691fc5
Update ArtificialNeuralNetwork.scala
bgreeven Sep 23, 2014
711f0a3
Update ArtificialNeuralNetwork.scala
bgreeven Sep 23, 2014
cb5f7ab
Update ArtificialNeuralNetwork.scala
bgreeven Sep 23, 2014
a2d6b91
Update mllib-ann.md
bgreeven Sep 25, 2014
44f597e
Update ANNDemo.scala
bgreeven Sep 25, 2014
975390e
Update ArtificialNeuralNetwork.scala
bgreeven Sep 25, 2014
d56e643
Update ANNSuite.scala
bgreeven Sep 25, 2014
bb581e9
Update ArtificialNeuralNetwork.scala
bgreeven Sep 25, 2014
d7506f5
Update ArtificialNeuralNetwork.scala
bgreeven Sep 25, 2014
1ad2ae9
Update ArtificialNeuralNetwork.scala
bgreeven Sep 25, 2014
97e668a
Minor style fixes
avulanov Sep 26, 2014
9109688
Unit test parameter
avulanov Sep 26, 2014
3ebd531
Update ANNSuite.scala
bgreeven Sep 28, 2014
5e01fed
Update ArtificialNeuralNetwork.scala
bgreeven Oct 28, 2014
9062a33
Update ANNSuite.scala
bgreeven Oct 28, 2014
e8f8b6f
Minor stylefix, add additional function for customized initial weights
avulanov Oct 28, 2014
ff12600
Update mllib-ann.md
bgreeven Nov 3, 2014
0889cf0
Update ArtificialNeuralNetwork.scala
bgreeven Nov 3, 2014
1bb8777
Update mllib-ann.md
bgreeven Dec 10, 2014
d60c945
Fixes after rebase
avulanov Dec 16, 2014
53bd5cf
Matrix form of back-propagation based on avulanov/spark/tree/neuralne…
avulanov Dec 19, 2014
9c44213
Fix of broken gradient test
avulanov Dec 19, 2014
99971b6
Roll/unroll ordering, weight by layer function
avulanov Dec 20, 2014
102169d
Roll and cumulative update optimizations
avulanov Dec 23, 2014
52d0b22
Update ANNSuite.scala
loachli Dec 27, 2014
54490dc
Batch ANN
avulanov Jan 10, 2015
262d0e0
ANN Classifier batch
avulanov Jan 12, 2015
1b114a7
Divisor fix, train interfaces
avulanov Jan 14, 2015
954595e
Test Context fix
avulanov Jan 23, 2015
cf8a242
Interface draft
avulanov Jan 27, 2015
150304d
Interface draft completed
avulanov Jan 28, 2015
eb467d2
Layers with weights don't fit Gradient API. Stopped refactoring
avulanov Jan 29, 2015
24ed972
Refactoring: ANN configuration, ANNmodel with weights
avulanov Jan 29, 2015
cf00ed4
Inplace sigmoid fix
avulanov Jan 29, 2015
f0545fe
Some comments
avulanov Jan 30, 2015
948f730
Fix batch parameter, FFNClassifier draft
avulanov Feb 3, 2015
034feeb
new ANN interface draft
avulanov Feb 24, 2015
dcb459f
Style
avulanov Feb 24, 2015
8668e16
Draft of gradient
avulanov Feb 25, 2015
ecd5ed8
Gradient impl, Data Stacker, Updater and main object
avulanov Feb 25, 2015
81a470d
Debugging: forward ok, delta not ok
avulanov Feb 25, 2015
b4f73c0
Debugging: dimensions OK
avulanov Feb 26, 2015
b7efddd
Main debugging finished. Need to check batch mode and performance
avulanov Feb 27, 2015
947c174
Classifier interface, batch does work
avulanov Feb 27, 2015
3b8a87c
Drop out interface
avulanov Mar 4, 2015
4e9af67
Gradient refactoring
avulanov Mar 4, 2015
7029fe0
Gemm
avulanov Mar 20, 2015
936df40
Functional layer with pre-allocated memory
Mar 27, 2015
ae00300
setter interface to ANN trainer
Mar 28, 2015
d455065
Classifier refactoring
Mar 30, 2015
922ddc1
Functional layer signature refactoring to support complex functions
Apr 8, 2015
eb688b7
Softmax and derivative
Apr 8, 2015
67d3bcd
Backup before change of activation functions and errors
Apr 24, 2015
3f7d263
Backup before using squared and crossentropy functions
Apr 24, 2015
97f8af0
New sigmoid and softmax works only with GradientDescent. Problem with…
Apr 24, 2015
f25607a
LBFGS does not work with cross-entropy error
Apr 25, 2015
3a9ad6b
Sliding RDD with step
May 1, 2015
9cc5fca
Requirement fix
May 2, 2015
1c31671
rebase
avulanov May 4, 2015
0c3ac31
Remove previous ANN implementation, refactor
avulanov May 4, 2015
f8f31f8
Revert "Requirement fix"
avulanov May 4, 2015
03bd9b3
Revert "Sliding RDD with step"
avulanov May 4, 2015
7d042be
removing previous examples and docs
avulanov May 4, 2015
90a009b
Fix of activation function for Softmax
avulanov May 5, 2015
7dcbdc5
Max value fix for the exponent
avulanov May 5, 2015
fc57c9a
Make the test code more general
wangzk May 14, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions mllib/src/main/scala/org/apache/spark/mllib/ann/BreezeUtil.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* 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.
*/

package org.apache.spark.mllib.ann

import breeze.linalg.{DenseMatrix => BDM, DenseVector => BDV}
import com.github.fommil.netlib.BLAS.{getInstance => NativeBLAS}


object BreezeUtil {

private def transposeString(a: BDM[Double]): String = if (a.isTranspose) "T" else "N"

// TODO: add code if matrices isTranspose!!!

def dgemm(alpha: Double, a: BDM[Double], b: BDM[Double], beta: Double, c: BDM[Double]): Unit = {
require(a.cols == b.rows, "A & B Dimension mismatch!")
require(a.rows == c.rows, "A & C Dimension mismatch!")
require(b.cols == c.cols, "A & C Dimension mismatch!")
if(a.rows == 0 || b.rows == 0 || a.cols == 0 || b.cols == 0) {

} else {
NativeBLAS.dgemm(transposeString(a), transposeString(b), c.rows, c.cols, a.cols,
alpha, a.data, a.offset, a.majorStride, b.data, b.offset, b.majorStride,
beta, c.data, c.offset, c.rows)
}
}

def gemv(alpha: Double, a: BDM[Double], x: BDV[Double], beta: Double, y: BDV[Double]): Unit = {

require(a.cols == x.length, "A & b Dimension mismatch!")

NativeBLAS.dgemv(transposeString(a), a.rows, a.cols,
alpha, a.data, a.offset, a.majorStride, x.data, x.offset, x.stride,
beta, y.data, y.offset, y.stride)
}
}
Loading