Class DoubleMatrix
- All Implemented Interfaces:
MLMatrix
MLMatrix
zur Verwendung in
NeuralNetwork
s.
Diese Klasse stellt die interne Implementierung der Matrixoperationen dar,
die zur Berechnung der Gewichte in einem NeuronLayer
notwendig sind.
Die Klasse ist nur minimal optimiert und sollte nur für kleine Netze verwendet werden. Für größere Netze sollte auf eine der optionalen Bibliotheken wie Colt zurückgegriffen werden.
-
Constructor Summary
ConstructorDescriptionDoubleMatrix
(double[][] coefficients) DoubleMatrix
(int rows, int cols) DoubleMatrix
(DoubleMatrix other) Initialisiert diese Matrix als Kopie der angegebenen Matrix. -
Method Summary
Modifier and TypeMethodDescriptionErzeugt eine neue MatrixC
mit dem Ergebnis der komponentenweisen Matrix-AdditionSetzt diese Matrix auf das Ergebnis der komponentenweisen Matrix-AdditionErzeugt eine neue Matrix, deren Werte gleich den Werten dieser Matrix nach der Anwendung der angegebenen Funktion sind.Endet die gegebene Funktion auf jeden Wert der Matrix an.colSums()
Berechnet eine neue Matrix mit nur einer Zeile, die die Spaltensummen dieser Matrix enthalten.int
columns()
Die Anzahl der Spalten der Matrix.Erzeugt eine neue Matrix mit denselben Dimensionen und Koeffizienten wie diese Matrix.double
get
(int row, int col) Gibt den Wert an der angegebenen Stelle der Matrix zurück.Setzt alle Werte der Matrix auf 1.Setzt jeden Wert in der Matrix auf eine Zufallszahl zwischen -1 und 1.initializeRandom
(double lower, double upper) Setzt jeden Wert in der Matrix auf eine Zufallszahl innerhalb der angegebenen Grenzen.Setzt alle Werte der Matrix auf 0.multiplyAddBias
(MLMatrix B, MLMatrix C) Erzeugt eine neue MatrixC
mit dem Ergebnis der MatrixoperationErzeugt eine neue MatrixC
mit dem Ergebnis der Matrixoperationint
rows()
Die Anzahl der Zeilen der Matrix.scaleInPlace
(double scalar) Multipliziert jeden Wert dieser Matrix mit dem angegebenen Skalar.Multipliziert jeden Wert dieser Matrix mit dem entsprechenden Wert in der MatrixS
.set
(int row, int col, double value) Setzt den Wert an der angegebenen Stelle der Matrix.Erzeugt eine neue MatrixC
mit dem Ergebnis der komponentenweisen Matrix-SubtraktiontoString()
transposedMultiplyAndScale
(MLMatrix B, double scalar) Erzeugt eine neue MatrixC
mit dem Ergebnis der Matrixoperation
-
Constructor Details
-
DoubleMatrix
public DoubleMatrix(int rows, int cols) -
DoubleMatrix
public DoubleMatrix(double[][] coefficients) -
DoubleMatrix
Initialisiert diese Matrix als Kopie der angegebenen Matrix.- Parameters:
other
- Die zu kopierende Matrix.
-
-
Method Details
-
columns
public int columns()Description copied from interface:MLMatrix
Die Anzahl der Spalten der Matrix. -
rows
public int rows()Description copied from interface:MLMatrix
Die Anzahl der Zeilen der Matrix. -
get
public double get(int row, int col) Description copied from interface:MLMatrix
Gibt den Wert an der angegebenen Stelle der Matrix zurück. -
set
Description copied from interface:MLMatrix
Setzt den Wert an der angegebenen Stelle der Matrix. -
initializeRandom
Description copied from interface:MLMatrix
Setzt jeden Wert in der Matrix auf eine Zufallszahl zwischen -1 und 1.Nach Möglichkeit sollte der
Zufallsgenerator der Zeichenmaschine
verwendet werden.- Specified by:
initializeRandom
in interfaceMLMatrix
- Returns:
- Diese Matrix selbst (method chaining).
-
initializeRandom
Description copied from interface:MLMatrix
Setzt jeden Wert in der Matrix auf eine Zufallszahl innerhalb der angegebenen Grenzen.Nach Möglichkeit sollte der
Zufallsgenerator der Zeichenmaschine
verwendet werden.- Specified by:
initializeRandom
in interfaceMLMatrix
- Parameters:
lower
- Untere Grenze der Zufallszahlen.upper
- Obere Grenze der Zufallszahlen.- Returns:
- Diese Matrix selbst (method chaining).
-
initializeOne
Description copied from interface:MLMatrix
Setzt alle Werte der Matrix auf 1.- Specified by:
initializeOne
in interfaceMLMatrix
- Returns:
- Diese Matrix selbst (method chaining).
-
initializeZero
Description copied from interface:MLMatrix
Setzt alle Werte der Matrix auf 0.- Specified by:
initializeZero
in interfaceMLMatrix
- Returns:
- Diese Matrix selbst (method chaining).
-
duplicate
Description copied from interface:MLMatrix
Erzeugt eine neue Matrix mit denselben Dimensionen und Koeffizienten wie diese Matrix. -
multiplyTransposed
Description copied from interface:MLMatrix
Erzeugt eine neue MatrixC
mit dem Ergebnis der MatrixoperationC = this . t(B)
wobeithis
dieses Matrixobjekt ist,t(B)
die Transposition der MatrixB
ist und.
für die Matrixmultiplikation steht.Wenn diese Matrix die Dimension r x c hat, dann muss die Matrix
B
die Dimension m x c haben und das Ergebnis ist eine r x m Matrix.- Specified by:
multiplyTransposed
in interfaceMLMatrix
- Parameters:
B
- Eine m xcolumns()
Matrix.- Returns:
- Eine
rows()
x m Matrix.
-
multiplyAddBias
Description copied from interface:MLMatrix
Erzeugt eine neue MatrixC
mit dem Ergebnis der MatrixoperationC = this . B + V'
wobeithis
dieses Matrixobjekt ist und.
für die Matrixmultiplikation steht.V'
ist die MatrixV
rows()
-mal untereinander wiederholt.Wenn diese Matrix die Dimension r x c hat, dann muss die Matrix
B
die Dimension c x m haben undV
eine 1 x m Matrix sein. Die MatrixV'
hat also die Dimension r x m, ebenso wie das Ergebnis der Operation.- Specified by:
multiplyAddBias
in interfaceMLMatrix
- Parameters:
B
- Einecolumns()
x m Matrix mit der Multipliziert wird.C
- Eine 1 xB.columns()
Matrix mit den Bias-Werten.- Returns:
- Eine
rows()
x m Matrix.
-
transposedMultiplyAndScale
Description copied from interface:MLMatrix
Erzeugt eine neue MatrixC
mit dem Ergebnis der MatrixoperationC = t(this) . B * scalar
wobeithis
dieses Matrixobjekt ist,t(this)
die Transposition dieser Matrix ist und.
für die Matrixmultiplikation steht.*
bezeichnet die Skalarmultiplikation, bei der jeder Wert der Matrix mitscalar
multipliziert wird.Wenn diese Matrix die Dimension r x c hat, dann muss die Matrix
B
die Dimension r x m haben und das Ergebnis ist eine c x m Matrix.- Specified by:
transposedMultiplyAndScale
in interfaceMLMatrix
- Parameters:
B
- Eine m xcolumns()
Matrix.- Returns:
- Eine
rows()
x m Matrix.
-
add
Description copied from interface:MLMatrix
Erzeugt eine neue MatrixC
mit dem Ergebnis der komponentenweisen Matrix-AdditionC = this + B
wobeithis
dieses Matrixobjekt ist. Für ein ElementC_ij
inC
giltC_ij = A_ij + B_ij
Die Matrix
B
muss dieselbe Dimension wie diese Matrix haben. -
addInPlace
Description copied from interface:MLMatrix
Setzt diese Matrix auf das Ergebnis der komponentenweisen Matrix-AdditionA' = A + B
wobeiA
dieses Matrixobjekt ist undA'
diese Matrix nach der Operation. Für ein ElementA'_ij
inA'
giltA'_ij = A_ij + B_ij
Die Matrix
B
muss dieselbe Dimension wie diese Matrix haben.- Specified by:
addInPlace
in interfaceMLMatrix
- Parameters:
B
- Einerows()
xcolumns()
Matrix.- Returns:
- Eine
rows()
xcolumns()
Matrix.
-
sub
Description copied from interface:MLMatrix
Erzeugt eine neue MatrixC
mit dem Ergebnis der komponentenweisen Matrix-SubtraktionC = A - B
wobeiA
dieses Matrixobjekt ist. Für ein ElementC_ij
inC
giltC_ij = A_ij - B_ij
Die Matrix
B
muss dieselbe Dimension wie diese Matrix haben. -
colSums
Description copied from interface:MLMatrix
Berechnet eine neue Matrix mit nur einer Zeile, die die Spaltensummen dieser Matrix enthalten. -
scaleInPlace
Description copied from interface:MLMatrix
Multipliziert jeden Wert dieser Matrix mit dem angegebenen Skalar.Ist
A
dieses Matrixobjekt undA'
diese Matrix nach der Operation, dann gilt für ein ElementA'_ij
inA'
A'_ij = A_ij * scalar
- Specified by:
scaleInPlace
in interfaceMLMatrix
- Parameters:
scalar
- Ein Skalar.- Returns:
- Diese Matrix selbst (method chaining)
-
scaleInPlace
Description copied from interface:MLMatrix
Multipliziert jeden Wert dieser Matrix mit dem entsprechenden Wert in der MatrixS
.Ist
A
dieses Matrixobjekt undA'
diese Matrix nach der Operation, dann gilt für ein ElementA'_ij
inA'
A'_ij = A_ij * S_ij
- Specified by:
scaleInPlace
in interfaceMLMatrix
- Parameters:
S
- Einerows()
xcolumns()
Matrix.- Returns:
- Diese Matrix selbst (method chaining)
-
apply
Description copied from interface:MLMatrix
Erzeugt eine neue Matrix, deren Werte gleich den Werten dieser Matrix nach der Anwendung der angegebenen Funktion sind. -
applyInPlace
Description copied from interface:MLMatrix
Endet die gegebene Funktion auf jeden Wert der Matrix an.- Specified by:
applyInPlace
in interfaceMLMatrix
- Parameters:
op
- Eine Operation(double) -> double
.- Returns:
- Diese Matrix selbst (method chaining)
-
toString
-