{"id":26575589,"url":"https://github.com/derunelabs/enola","last_synced_at":"2025-09-03T09:43:57.569Z","repository":{"id":283486127,"uuid":"949650601","full_name":"DeRuneLabs/enola","owner":"DeRuneLabs","description":"library to perform some tensor operation for deep and machine learning","archived":false,"fork":false,"pushed_at":"2025-05-14T05:43:49.000Z","size":164,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-14T06:49:06.312Z","etag":null,"topics":["algorithms","cpp","cpp17","opencl","tensor"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DeRuneLabs.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-16T22:51:15.000Z","updated_at":"2025-05-14T05:43:53.000Z","dependencies_parsed_at":"2025-04-18T13:46:26.691Z","dependency_job_id":"d17d4e5d-f79e-4b6f-acf5-392879c33fb4","html_url":"https://github.com/DeRuneLabs/enola","commit_stats":null,"previous_names":["derunelabs/enola"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DeRuneLabs/enola","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeRuneLabs%2Fenola","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeRuneLabs%2Fenola/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeRuneLabs%2Fenola/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeRuneLabs%2Fenola/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeRuneLabs","download_url":"https://codeload.github.com/DeRuneLabs/enola/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeRuneLabs%2Fenola/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273423942,"owners_count":25103145,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["algorithms","cpp","cpp17","opencl","tensor"],"created_at":"2025-03-23T02:19:33.890Z","updated_at":"2025-09-03T09:43:57.516Z","avatar_url":"https://github.com/DeRuneLabs.png","language":"C++","readme":"# Enola\nLibrary for perform some tensor operation for specific project, built with C++17\n\ncurrently including:\n- Function:\n  - Sigmoid\n  - Activation Function:\n    - Binary Step\n    - Exponential Linear Unit (ELU)\n    - Rectified Linear Unit (RELU)\n    - Softplus\n    - Squareplus\n    - Swish\n- Operation:\n  - Deep Copy\n- Score:\n  - Mean Absolute Error\n  - Mean Square Error\n- Tensor:\n  - Operation\n  - Storage ( Currently Support on CPU Process )\n  - Tensor View\n\n## basic usage\n\n**Simple neural Network**\n\n```cpp\n#include \"\u003cenola/nn.hpp\u003e\"\n#include \u003cexception\u003e\n#include \u003ciostream\u003e\n\nint main() {\n  try {\n    // define the arch of neural network\n    // each value in the vector representing number of neuron in layer\n    // - first value is size of input layer\n    // - intermediate value representing hidden layers\n    // last value is size of the output layer\n    std::vector\u003csize_t\u003e layer_size = {\n        2,  // inputs: 2 neuron (two features)\n        3,  // hidden layer: 3 neuron\n        1,  // output: 1 neuron (binary classification or regression)\n    };\n\n    // initialize neural network with specific architecture\n    enola::neural::NeuralNetwork\u003cdouble\u003e nn(layer_size);\n\n    // prepare input data for neural network\n    // this example use simple input vector with two values\n    std::vector\u003cdouble\u003e                  input  = {0.5, 0.8};\n\n    // perform forward propagation to computing the output of neural network\n    std::vector\u003cdouble\u003e                  output = nn.forward_propagation(input);\n\n    // print output of the neural network\n    std::cout \u003c\u003c \"output: \";\n    for (double val : output) {\n      std::cout \u003c\u003c val \u003c\u003c \" \"; // print each output\n    }\n    std::cout \u003c\u003c std::endl;\n  } catch (const std::exception \u0026error) {\n    std::cerr \u003c\u003c \"error: \" \u003c\u003c error.what() \u003c\u003c std::endl;\n  }\n\n  return 0;\n}\n```\n\nfor more example check on [example](example) folder.\n\n## Tensor Storage With GPU process\n\nEnola currently support Tensor Storage processing by GPU with OpenCL (open computing language) for perform tensor storage and processing task, OpenCL is good for help for processing gpu, OpenCL provide APIs to manage memory on the GPU explicitly, so we can allocate memory buffer for tensors, for more information you can check [here](https://www.khronos.org/opencl/) about OpenCL\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderunelabs%2Fenola","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderunelabs%2Fenola","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderunelabs%2Fenola/lists"}