{"id":18486465,"url":"https://github.com/maxgfr/selfback-project-d4j","last_synced_at":"2025-09-05T22:38:44.802Z","repository":{"id":47971114,"uuid":"93047224","full_name":"maxgfr/selfback-project-d4j","owner":"maxgfr","description":"Creation of Convolution Neural Network and improvement","archived":false,"fork":false,"pushed_at":"2024-02-29T20:20:38.000Z","size":157934,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-16T22:18:46.417Z","etag":null,"topics":["activity","activity-recognition","cnn","deeplearning","deeplearning4j","evaluation","neural-network","prediction"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxgfr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-01T10:48:02.000Z","updated_at":"2020-07-05T11:09:52.000Z","dependencies_parsed_at":"2024-02-29T21:44:11.919Z","dependency_job_id":null,"html_url":"https://github.com/maxgfr/selfback-project-d4j","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxgfr%2Fselfback-project-d4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxgfr%2Fselfback-project-d4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxgfr%2Fselfback-project-d4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxgfr%2Fselfback-project-d4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxgfr","download_url":"https://codeload.github.com/maxgfr/selfback-project-d4j/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036843,"owners_count":22003654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activity","activity-recognition","cnn","deeplearning","deeplearning4j","evaluation","neural-network","prediction"],"created_at":"2024-11-06T12:49:26.119Z","updated_at":"2025-05-13T22:14:44.038Z","avatar_url":"https://github.com/maxgfr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# selfback-project-d4j\n\nActivity recognition through Neural Network\n\n==The data provides from 50 person from wrist.==\n\n## Resssource directory :\n\nData folder contains 6 files in whuch each file contain 1 collumn per axis (x,y,z) and all of the data from the activity\nLabel folder contains 6 files in which we can found the label for each file in the data folder\n\nThe **batchsize** is 500\n\n## Evaluation :\n\n- I make one evaluation with the same data to train and test my model and an other evaluation with 85% of my all data to train and to test my model\n\n- Each model in directory ``model`` was trained with 100% of the data available.\n\n## FOR CNN : \n\nNetworkD4J_CNN500 is the model which corresponds to CNN in the model folder. It uses data and label folder \n\n### Configuration : \n\n* 500 epochs,\n* 0.01 of learning rate,\n* No normalization of the data input\n* DataInput.java : **height of 1, width of 500 and depth of 3**\n\n```java\n    MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()\n                .seed(seed)\n                .iterations(iteration)\n                .activation(Activation.RELU)\n                .learningRate(learningRate)\n                .weightInit(WeightInit.XAVIER)\n                .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)\n                .updater(Updater.RMSPROP).momentum(0.9)\n                .list()\n                .layer(0, new ConvolutionLayer.Builder(1,10) //depends height\n                        .nIn(3)//depth\n                        .nOut(150)\n                        .stride(1,1)\n                        .build())\n                .layer(1, new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX) //max pooling\n                        .kernelSize(1,2)\n                        .stride(1,2)\n                        .build())\n                .layer(2, new ConvolutionLayer.Builder(1,10)\n                        .nIn(150)\n                        .nOut(100)\n                        .stride(1,1)\n                        .build())\n                .layer(3, new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX)\n                        .kernelSize(1,2)\n                        .stride(1,2)\n                        .build())\n                .layer(4, new ConvolutionLayer.Builder(1,10)\n                        .nIn(100)\n                        .nOut(80)\n                        .stride(1,1)\n                        .build())\n                .layer(5, new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX)\n                        .kernelSize(1,2)\n                        .stride(1,2)\n                        .build())\n                .layer(6, new ConvolutionLayer.Builder(1,10)\n                        .nIn(80)\n                        .nOut(60)\n                        .stride(1,1)\n                        .build())\n                .layer(7, new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX)\n                        .kernelSize(1,2)\n                        .stride(1,2)\n                        .build())\n                .layer(8, new ConvolutionLayer.Builder(1,10)\n                        .stride(1,1)\n                        .nIn(60)\n                        .nOut(40)\n                        .build())\n                .layer(9, new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX)\n                        .kernelSize(1,2)\n                        .stride(1,2)\n                        .build())\n                .layer(10, new DenseLayer.Builder() //fullyConnected\n                        .nOut(900)\n                        .activation(Activation.TANH)\n                        .build())\n                .layer(11, new DenseLayer.Builder()\n                        .nOut(300)\n                        .activation(Activation.TANH)\n                        .dropOut(0.5)\n                        .build())\n                .layer(12, new OutputLayer.Builder()\n                        .activation(Activation.SOFTMAX)\n                        .lossFunction(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD)\n                        .nOut(numOutputs)\n                        .build())\n                .setInputType(InputType.convolutional(1, 500, 3))\n                .backprop(true)\n                .pretrain(false)\n                .build();\n```\n\n### Scores at the latest epoch with same data with 500 epochs:\n```\nAccuracy:        0.9456\nPrecision:       0.9326\nRecall:          0.9216\nF1 Score:        0.9271\n```\nAbout labelisation of the examples :\n\n```\nExamples labeled as 0 classified by model as 0: 618 times\nExamples labeled as 0 classified by model as 1: 2 times\nExamples labeled as 0 classified by model as 3: 1 times\nExamples labeled as 0 classified by model as 4: 50 times\nExamples labeled as 0 classified by model as 5: 21 times\nExamples labeled as 1 classified by model as 0: 2 times\nExamples labeled as 1 classified by model as 1: 1929 times\nExamples labeled as 1 classified by model as 2: 2 times\nExamples labeled as 1 classified by model as 3: 7 times\nExamples labeled as 1 classified by model as 4: 5 times\nExamples labeled as 1 classified by model as 5: 8 times\nExamples labeled as 2 classified by model as 2: 1509 times\nExamples labeled as 2 classified by model as 3: 16 times\nExamples labeled as 2 classified by model as 4: 1 times\nExamples labeled as 3 classified by model as 0: 2 times\nExamples labeled as 3 classified by model as 2: 28 times\nExamples labeled as 3 classified by model as 3: 1504 times\nExamples labeled as 3 classified by model as 4: 1 times\nExamples labeled as 3 classified by model as 5: 4 times\nExamples labeled as 4 classified by model as 0: 17 times\nExamples labeled as 4 classified by model as 2: 2 times\nExamples labeled as 4 classified by model as 3: 4 times\nExamples labeled as 4 classified by model as 4: 563 times\nExamples labeled as 4 classified by model as 5: 175 times\nExamples labeled as 5 classified by model as 0: 10 times\nExamples labeled as 5 classified by model as 2: 1 times\nExamples labeled as 5 classified by model as 3: 2 times\nExamples labeled as 5 classified by model as 4: 74 times\nExamples labeled as 5 classified by model as 5: 1442 times\n```\n\n### Scores at the latest epoch with 85% to train and 15% to test the model with 500 epochs :\n\n```\nAccuracy:        0.874\nPrecision:       0.8237\nRecall:          0.8136\nF1 Score:        0.8187\n```\nAbout labelisation of the examples :\n\n```\nExamples labeled as 0 classified by model as 0: 70 times\nExamples labeled as 0 classified by model as 1: 1 times\nExamples labeled as 0 classified by model as 3: 1 times\nExamples labeled as 0 classified by model as 4: 15 times\nExamples labeled as 0 classified by model as 5: 5 times\nExamples labeled as 1 classified by model as 0: 3 times\nExamples labeled as 1 classified by model as 1: 258 times\nExamples labeled as 1 classified by model as 5: 1 times\nExamples labeled as 2 classified by model as 0: 1 times\nExamples labeled as 2 classified by model as 1: 2 times\nExamples labeled as 2 classified by model as 2: 172 times\nExamples labeled as 2 classified by model as 3: 1 times\nExamples labeled as 2 classified by model as 5: 1 times\nExamples labeled as 3 classified by model as 1: 1 times\nExamples labeled as 3 classified by model as 2: 7 times\nExamples labeled as 3 classified by model as 3: 180 times\nExamples labeled as 3 classified by model as 5: 6 times\nExamples labeled as 4 classified by model as 0: 4 times\nExamples labeled as 4 classified by model as 3: 1 times\nExamples labeled as 4 classified by model as 4: 33 times\nExamples labeled as 4 classified by model as 5: 44 times\nExamples labeled as 5 classified by model as 0: 8 times\nExamples labeled as 5 classified by model as 2: 1 times\nExamples labeled as 5 classified by model as 3: 1 times\nExamples labeled as 5 classified by model as 4: 22 times\nExamples labeled as 5 classified by model as 5: 161 times\n```\n\n![alt text](https://github.com/maxgfr/D4JSelfback/blob/master/screen/CNN_500/Capture.PNG)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxgfr%2Fselfback-project-d4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxgfr%2Fselfback-project-d4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxgfr%2Fselfback-project-d4j/lists"}