                 validationInputs: allTestData,
                 validationLabels: allTestAns,
                 structure: structure)
-            try nnet.train(nnDataSet, errorThreshold: 0.01)
-            print(nnet.allWeights())
+            try nnet.train(nnDataSet, errorThreshold: 0.004)
+            //print(nnet.allWeights())
             currentAppStatus.text = "Training Complete"
         } catch {print(error)}
         

    
    func bootStrapDataM(arr2D: [[Float]], setsNum: Int, startPt: Int, stride: Int, windowSize: Int, rowNums: Int) -> [[Float]]{
        let accel1DOnly = get1DArray(arr2D: arr2D, rowNums: rowNums)
        var accel1Min = accel1DOnly.min()!
        var accel1Max = accel1DOnly.max()!
        var halfRange:Float = 0
        if accel1Max < Float(0){
            accel1Max *= (-1)
        }
        if accel1Min < Float(0){
            accel1Min *= (-1)
        }
        if accel1Max >= accel1Min{
            halfRange = (accel1Max - accel1Min)/2
        } else {
            halfRange = (accel1Min - accel1Max)/2
        }
        var processedArr = accel1DOnly.map{$0 + halfRange}
        var returnArray: [[Float]] = Array(repeating: Array(repeating: 0.0, count: windowSize), count: setsNum)
        var pointer1 = startPt

    //      and train matrices have been created
    
    func trainNN(nnet: NeuralNet, structure: NeuralNet.Structure, wTrainMatrix: [[Float]], wTestMatrix: [[Float]], sTrainMatrix: [[Float]], sTestMatrix: [[Float]]){
        
        //Create the output train and test answers
        let sTrainAns: [[Float]] = Array(repeating: [1,0], count: bootTrainDataNum)
