本文整理汇总了Golang中Matrix.Matrix.GetMRows方法的典型用法代码示例。如果您正苦于以下问题:Golang Matrix.GetMRows方法的具体用法?Golang Matrix.GetMRows怎么用?Golang Matrix.GetMRows使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix.Matrix
的用法示例。
在下文中一共展示了Matrix.GetMRows方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ForwardPropagation
//TODO the activation function and his Derviate has to be more general.. to implemente soft-max for example
func (this *ANN) ForwardPropagation(In *Matrix.Matrix) (As, AsDerviate *([]*Matrix.Matrix), Output *Matrix.Matrix) {
if In.GetMRows() == this.Inputs && In.GetNColumns() == 1 {
As1 := make([]*Matrix.Matrix, len(this.Weights)+1, len(this.Weights)+1)
AsDerviate1 := make([]*Matrix.Matrix, len(this.Weights)+1, len(this.Weights)+1)
As := &As1
AsDerviate = &AsDerviate1
sTemp := In.Transpose()
//Add a new column for a Bias Weight
sTemp = sTemp.AddColumn(Matrix.I(1))
holeInput := sTemp.Copy()
As1[0] = sTemp.Transpose()
//Derivate
//sutract, _ := Matrix.Sustract(Matrix.OnesMatrix(As1[0].GetMRows(), 1), As1[0])
//derivate := Matrix.DotMultiplication(As1[0], sutract)
//derivate := holeInput.Apply(this.Derivate)
derivate := this.DarivateActivationLayer(holeInput)
AsDerviate1[0] = derivate.Transpose()
for i := 0; i < len(this.Weights); i++ {
sTemp = Matrix.Product(sTemp, (this.Weights[i]))
//apply the activation functions
holeInput := sTemp.Copy()
sTemp = this.ActivationLayer(sTemp)
//sTemp = sTemp.Apply(this.Activation)
//Add a new column for a Bias Weight
sTemp = sTemp.AddColumn(Matrix.I(1))
(*As)[i+1] = sTemp.Transpose()
//Derivate
//sutract, _ := Matrix.Sustract(Matrix.OnesMatrix((*As)[i+1].GetMRows(), 1), (*As)[i+1])
//derivate := Matrix.DotMultiplication((*As)[i+1], sutract)
derivate := this.DarivateActivationLayer(holeInput)
//derivate := holeInput.Apply(this.Derivate)
(*AsDerviate)[i+1] = derivate.Transpose()
}
Asf := sTemp.Copy()
//Asf = Asf.AddColumn(Matrix.I(1))
(*As)[len(As1)-1] = Asf.Transpose()
Output = sTemp.Transpose().MatrixWithoutLastRow()
return As, AsDerviate, Output
}
return nil, nil, nil
}
示例2: MakeTrainingSet
func MakeTrainingSet(xs *Matrix.Matrix, y *Matrix.Matrix) *TrainingSet {
var out TrainingSet
if xs.GetMRows() == y.GetMRows() {
out.Xs = xs
out.Y = y
return &out
}
return nil
}
示例3: FFT
func FFT(this *Matrix.Matrix, N int) (*Matrix.Matrix, error) {
if N > this.GetMRows() {
return nil, errors.New(" The number of Rows of the matrix (this) must be greater or equal than N ")
}
if N&(N-1) == 0 {
tf := TwiddleFactors(N, false)
Xr := FFT_ct3(this, N, 1, &tf)
return Xr, nil
}
return nil, errors.New(" The N parameter has to be power of 2")
}
示例4: IFFT
func IFFT(this *Matrix.Matrix, N int) (*Matrix.Matrix, error) {
if N > this.GetMRows() {
return nil, errors.New(" The number of Rows of the matrix (this) must be greater or equal than N ")
}
if N&(N-1) == 0 {
tf := TwiddleFactors(N, true)
Xr := FFT_ct(this, N, 1, &tf)
Xr = Xr.Scalar(complex(float64(1)/float64(N), 0))
return Xr, nil
}
return nil, errors.New(" The N parameter has to be power of 2")
}