{"id":13528801,"url":"https://github.com/sekwiatkowski/Komputation","last_synced_at":"2025-04-01T14:33:08.720Z","repository":{"id":57725974,"uuid":"93887378","full_name":"sekwiatkowski/komputation","owner":"sekwiatkowski","description":"Komputation is a neural network framework for the Java Virtual Machine written in Kotlin and CUDA C.","archived":true,"fork":false,"pushed_at":"2018-01-15T03:11:08.000Z","size":1623,"stargazers_count":293,"open_issues_count":5,"forks_count":11,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-11-02T15:36:26.507Z","etag":null,"topics":["artificial-intelligence","convolutional-neural-networks","cuda","framework","gpu","jvm","kotlin","machine-learning","neural-networks","nlp","nvidia","recurrent-neural-networks","seq2seq"],"latest_commit_sha":null,"homepage":"http://komputation.com","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sekwiatkowski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-09T18:41:51.000Z","updated_at":"2024-09-13T08:20:50.000Z","dependencies_parsed_at":"2022-09-02T06:54:17.795Z","dependency_job_id":null,"html_url":"https://github.com/sekwiatkowski/komputation","commit_stats":null,"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sekwiatkowski%2Fkomputation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sekwiatkowski%2Fkomputation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sekwiatkowski%2Fkomputation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sekwiatkowski%2Fkomputation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sekwiatkowski","download_url":"https://codeload.github.com/sekwiatkowski/komputation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246655272,"owners_count":20812609,"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":["artificial-intelligence","convolutional-neural-networks","cuda","framework","gpu","jvm","kotlin","machine-learning","neural-networks","nlp","nvidia","recurrent-neural-networks","seq2seq"],"created_at":"2024-08-01T07:00:24.960Z","updated_at":"2025-04-01T14:33:05.427Z","avatar_url":"https://github.com/sekwiatkowski.png","language":"Kotlin","funding_links":[],"categories":["Recently Updated"],"sub_categories":["[Sep 14, 2024](/content/2024/09/14/README.md)"],"readme":"\u003cimg src=\"Logo.jpg\" align=\"right\" height=\"150\" width=\"150\" /\u003e\n\n# Komputation\n\nKomputation is a neural network framework for the Java Virtual Machine written in Kotlin and CUDA C.\n\n## Maven\n\nKomputation is available through Maven Central:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.komputation\u003c/groupId\u003e\n    \u003cartifactId\u003ekomputation\u003c/artifactId\u003e\n    \u003cversion\u003e0.12.5\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Layers\n\n- Entry points:\n  - [Input](./src/main/kotlin/com/komputation/instructions/entry/Input.kt)\n  - [Lookup](./src/main/kotlin/com/komputation/instructions/entry/Lookup.kt)\n\n- Standard feed-forward networks:\n  - [Weighting](./src/main/kotlin/com/komputation/instructions/continuation/projection/Weighting.kt)\n  - [Bias](./src/main/kotlin/com/komputation/instructions/continuation/projection/Bias.kt)\n  - [Projection](./src/main/kotlin/com/komputation/instructions/continuation/projection/Projection.kt)\n  - [Dense](./src/main/kotlin/com/komputation/instructions/continuation/dense/Dense.kt)\n\n- Convolutional neural networks (CNNs):\n  - [Convolution](./src/main/kotlin/com/komputation/instructions/continuation/convolution/Convolution.kt)\n  - [Max-pooling](./src/main/kotlin/com/komputation/instructions/continuation/convolution/MaxPooling.kt)\n\n- Recurrent neural networks:\n  - [Recurrent layer](./src/main/kotlin/com/komputation/instructions/recurrent/Recurrent.kt)\n  - [Bidirectional recurrent layer](./src/main/kotlin/com/komputation/instructions/recurrent/BidirectionalRecurrent.kt)\n\n- [Dropout](./src/main/kotlin/com/komputation/instructions/continuation/dropout/Dropout.kt)\n\n- Activation functions:\n  - [Identity](./src/main/kotlin/com/komputation/instructions/continuation/activation/Identity.kt)\n  - [Rectified Linear Units (ReLUs)](./src/main/kotlin/com/komputation/instructions/continuation/activation/Relu.kt)\n  - [Sigmoid](./src/main/kotlin/com/komputation/instructions/continuation/activation/Sigmoid.kt)\n  - [Softmax](./src/main/kotlin/com/komputation/instructions/continuation/activation/Softmax.kt)\n  - [Tanh](./src/main/kotlin/com/komputation/instructions/continuation/activation/Tanh.kt)\n\n- Other layers:\n  - [Stack](./src/main/kotlin/com/komputation/instructions/continuation/stack/stack.kt)\n  - [Exponentiation](./src/main/kotlin/com/komputation/instructions/continuation/activation/ExponentiationLayer.kt)\n  - [Normalization](./src/main/kotlin/com/komputation/instructions/continuation/NormalizationLayer.kt)\n\n## CPU demos\n\n- Boolean functions:\n  - [AND](./src/main/kotlin/com/komputation/cpu/demos/and/AndSigmoid.kt)\n  - [NOT](./src/main/kotlin/com/komputation/cpu/demos/not/Not.kt)\n  - [XOR](./src/main/kotlin/com/komputation/cpu/demos/xor/Xor.kt)\n\n- Total:\n  - [Fixed length](./src/main/kotlin/com/komputation/cpu/demos/total/FixedLengthTotal.kt)\n  - [Variable length](./src/main/kotlin/com/komputation/cpu/demos/total/VariableLengthTotal.kt)\n\n- Running total:\n  - Left-to-right:\n    - [Fixed length](./src/main/kotlin/com/komputation/cpu/demos/runningtotal/lefttoright/FixedLengthRunningTotal.kt)\n    - [Variable length](./src/main/kotlin/com/komputation/cpu/demos/runningtotal/lefttoright/VariableLengthRunningTotal.kt)\n  - Right-to-left:\n    - [Fixed length](./src/main/kotlin/com/komputation/cpu/demos/runningtotal/righttoleft/RightToLeftFixedLengthRunningTotal.kt)\n    - [Variable length](./src/main/kotlin/com/komputation/cpu/demos/runningtotal/righttoleft/RightToLeftVariableLengthRunningTotal.kt)\n  - Bidirectional:\n    - [Fixed length](./src/main/kotlin/com/komputation/cpu/demos/runningtotal/bidirectional/BidirectionalFixedLengthRunningTotal.kt)\n    - [Variable length](./src/main/kotlin/com/komputation/cpu/demos/runningtotal/bidirectional/BidirectionalVariableLengthRunningTotal.kt)\n\n- Increment:\n  - [One layer](./src/main/kotlin/com/komputation/cpu/demos/increment/Increment.kt)\n  - [Two layers](./src/main/kotlin/com/komputation/cpu/demos/increment/IncrementTwice.kt)\n\n- Word embedding toy problem:\n  - [Feed-forward network](./src/main/kotlin/com/komputation/cpu/demos/embeddings/Embeddings.kt)\n  - [CNN with one filter width](./src/main/kotlin/com/komputation/cpu/demos/embeddings/EmbeddingsWithConvolution.kt)\n  - [CNN with two filter widths](./src/main/kotlin/com/komputation/cpu/demos/embeddings/EmbeddingsWithTwoFilterWidths.kt)\n\n- [Sequence labeling toy problem](./src/main/kotlin/com/komputation/cpu/demos/sequencelabeling/SequenceLabeling.kt)\n\n- [Computer vision toy problem](./src/main/kotlin/com/komputation/cpu/demos/lines/Lines.kt)\n\n- MNIST:\n  - [Minimal](./src/main/kotlin/com/komputation/cpu/demos/mnist/MnistMinimal.kt)\n  - [Dropout](./src/main/kotlin/com/komputation/cpu/demos/mnist/MnistBatchDropout.kt)\n\n- TREC:\n  - [One filter width](./src/main/kotlin/com/komputation/cpu/demos/trec/TREC.kt)\n  - [Two filter widths](./src/main/kotlin/com/komputation/cpu/demos/trec/TRECWithTwoFilterWidths.kt)\n\n## GPU/CUDA demos\n\n- Boolean functions:\n  - [AND](./src/main/kotlin/com/komputation/cuda/demos/and/AndSigmoid.kt)\n  - [Negation](./src/main/kotlin/com/komputation/cuda/demos/negation/Negation.kt)\n  - [XOR](./src/main/kotlin/com/komputation/cuda/demos/xor/Xor.kt)\n\n- Word embedding toy problem:\n  - [Feed-forward network](./src/main/kotlin/com/komputation/cuda/demos/embeddings/Embeddings.kt)\n  - [CNN with one filter width](./src/main/kotlin/com/komputation/cuda/demos/embeddings/EmbeddingsWithConvolution.kt)\n  - [CNN with two filter widths](./src/main/kotlin/com/komputation/cuda/demos/embeddings/EmbeddingsWithTwoFilterWidths.kt)\n\n- Total:\n  - [Fixed length](./src/main/kotlin/com/komputation/cuda/demos/total/FixedLengthTotal.kt)\n\n- Increment:\n  - [One layer](./src/main/kotlin/com/komputation/cuda/demos/increment/Increment.kt)\n  - [Two layers](./src/main/kotlin/com/komputation/cuda/demos/increment/IncrementTwice.kt)\n\n- MNIST:\n  - [Minimal](./src/main/kotlin/com/komputation/cuda/demos/mnist/MnistMinimal.kt)\n  - [Dropout](./src/main/kotlin/com/komputation/cuda/demos/mnist/MnistBatchDropout.kt)\n\n- TREC:\n  - [One filter width](./src/main/kotlin/com/komputation/cuda/demos/trec/TREC.kt)\n  - [Two filter widths](./src/main/kotlin/com/komputation/cuda/demos/trec/TRECWithTwoFilterWidths.kt)\n\n## Sample code\n\nThe following code instantiates a GPU-accelerated convolutional neural network for sentence classification:\n\n```kotlin\n    val sentenceClassifier = cudaNetwork(\n        batchSize,\n        lookup(embeddings, maximumDocumentLength, embeddingDimension, optimization),\n        convolution(numberFilters, filterWidth, filterHeight, initialization, optimization),\n        relu(),\n        dropout(random, keepProbability),\n        dense(numberCategories, Activation.Softmax, initialization, optimization)\n    )\n```\n\nSee the [TREC demo](./src/main/kotlin/com/komputation/cuda/demos/trec/TREC.kt) for more details.\n\n## Initialization\n\n- [Provided](./src/main/kotlin/com/komputation/initialization/ProvidedInitialization.kt)\n- [Constant](./src/main/kotlin/com/komputation/initialization/ConstantInitialization.kt)\n- [Gaussian](./src/main/kotlin/com/komputation/initialization/GaussianInitialization.kt)\n- [He](./src/main/kotlin/com/komputation/initialization/HeInitialization.kt)\n- [Identity](./src/main/kotlin/com/komputation/initialization/IdentityInitialization.kt)\n- [Uniform](./src/main/kotlin/com/komputation/initialization/UniformInitialization.kt)\n- [Zero](./src/main/kotlin/com/komputation/initialization/ZeroInitialization.kt)\n\n## Loss functions\n\n- [Cross-entropy loss](./src/main/kotlin/com/komputation/instructions/loss/CrossEntropyLoss.kt)\n- [Logistic loss](./src/main/kotlin/com/komputation/instructions/loss/LogisticLoss.kt)\n- [Squared loss](./src/main/kotlin/com/komputation/instructions/loss/SquaredLoss.kt)\n\n## Optimization\n\n- [Stochastic Gradient Descent](./src/main/kotlin/com/komputation/optimization/StochasticGradientDescent.kt)\n- Historical:\n  - [Momentum](./src/main/kotlin/com/komputation/optimization/historical/Momentum.kt)\n  - [Nesterov's Accelerated Gradient](./src/main/kotlin/com/komputation/optimization/historical/Nesterov.kt)\n- Adaptive:\n  - [Adagrad](./src/main/kotlin/com/komputation/optimization/adaptive/Adagrad.kt)\n  - [Adadelta](./src/main/kotlin/com/komputation/optimization/adaptive/Adadelta.kt)\n  - [RMSProp](./src/main/kotlin/com/komputation/optimization/adaptive/RMSProp.kt)\n  - [Adam](./src/main/kotlin/com/komputation/optimization/adaptive/Adam.kt)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsekwiatkowski%2FKomputation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsekwiatkowski%2FKomputation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsekwiatkowski%2FKomputation/lists"}