{"id":22314958,"url":"https://github.com/szaman19/delta","last_synced_at":"2025-03-26T03:10:31.747Z","repository":{"id":78878242,"uuid":"384185420","full_name":"szaman19/Delta","owner":"szaman19","description":"A templated extendible modular automatic gradient and neural network library in C++","archived":false,"fork":false,"pushed_at":"2023-01-09T15:38:26.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-31T00:25:19.134Z","etag":null,"topics":["autograd","cpp","deep-learning","neural-network"],"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/szaman19.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}},"created_at":"2021-07-08T16:25:57.000Z","updated_at":"2023-01-09T04:24:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"a7c7f671-b656-4c84-8a87-3003e33010eb","html_url":"https://github.com/szaman19/Delta","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/szaman19%2FDelta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaman19%2FDelta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaman19%2FDelta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaman19%2FDelta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/szaman19","download_url":"https://codeload.github.com/szaman19/Delta/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245579675,"owners_count":20638679,"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":["autograd","cpp","deep-learning","neural-network"],"created_at":"2024-12-03T22:11:58.520Z","updated_at":"2025-03-26T03:10:31.719Z","avatar_url":"https://github.com/szaman19.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Delta\nA templated C++ autograd and neural network library interface. \n\n---\nAutograd example with reference CPU implementation\n\n```C++\n#include \"Delta/Tensor.hpp\"\n#include \"CPU/Tensor_CPU_impl.hpp\"\n#include \"CPU/Operator_CPU_impl.hpp\"\n\n// The type of tensor included by the compiler decides the implementation \n// Maybe think about having the ability to switch impl would be nice.\nusing Tensor_Impl = Delta::Tensor_CPU_Impl\u003cfloat\u003e;\nusing Tensor = Delta::Tensor\u003cfloat, Tensor_Impl\u003e;\n\nint main(int argc, char const *argv[]){\n\n  auto summand_1 = Tensor(1, {1}, true);\n  auto summand_2 = Tensor(2, {1}, true);\n\n  std::cout \u003c\u003c summand_1;\n  std::cout \u003c\u003c summand_2;\n\n  auto\u0026 res = Delta::Ops::Sum(summand_1, summand_2); // 2 + 1\n\n  std::cout \u003c\u003c \"Check: \" \u003c\u003c res.GetData()[0] \u003c\u003c\" == \" \u003c\u003c 3 \u003c\u003c std::endl;\n\n  auto multiplier = Tensor(5, {1}, true);\n  \n  auto\u0026 out = Delta::Ops::Mul(res, multiplier);\n\n  std::cout \u003c\u003c \"Check: \" \u003c\u003c out.GetData()[0] \u003c\u003c \" == \" \u003c\u003c 15 \u003c\u003c std::endl;\n  out.Backward();\n\n  std::cout \u003c\u003c \"Check: \" \u003c\u003c out.GetGrad()[0] \u003c\u003c \" == \" \u003c\u003c 1 \u003c\u003c '\\n';\n  std::cout \u003c\u003c \"Check: \" \u003c\u003c res.GetGrad()[0] \u003c\u003c \" == \" \u003c\u003c 5 \u003c\u003c '\\n';\n  std::cout \u003c\u003c \"Check: \" \u003c\u003c multiplier.GetGrad()[0] \u003c\u003c \" == \" \u003c\u003c 3 \u003c\u003c '\\n';\n  std::cout \u003c\u003c \"Check: \" \u003c\u003c summand_1.GetGrad()[0] \u003c\u003c \" == \" \u003c\u003c 5 \u003c\u003c '\\n';\n  std::cout \u003c\u003c \"Check: \" \u003c\u003c summand_2.GetGrad()[0] \u003c\u003c \" == \" \u003c\u003c 5 \u003c\u003c std::endl;\n\n  return 0;\n}\n```\n\nOutputs:\n\n```\n[1] Gradient enabled \n[2] Gradient enabled \nCheck: 3 == 3\nCheck: 15 == 15\nCheck: 1 == 1\nCheck: 5 == 5\nCheck: 3 == 3\nCheck: 5 == 5\nCheck: 5 == 5\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszaman19%2Fdelta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fszaman19%2Fdelta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszaman19%2Fdelta/lists"}