{"id":13413379,"url":"https://github.com/galeone/tfgo","last_synced_at":"2025-10-06T03:48:46.710Z","repository":{"id":20951180,"uuid":"92176061","full_name":"galeone/tfgo","owner":"galeone","description":"Tensorflow + Go, the gopher way","archived":false,"fork":false,"pushed_at":"2024-03-13T21:59:21.000Z","size":1795,"stargazers_count":2466,"open_issues_count":20,"forks_count":156,"subscribers_count":57,"default_branch":"master","last_synced_at":"2025-05-21T22:08:05.092Z","etag":null,"topics":["go","golang","tensorflow"],"latest_commit_sha":null,"homepage":"https://pgaleone.eu/tensorflow/go/2017/05/29/understanding-tensorflow-using-go/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/galeone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["galeone"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-05-23T13:27:39.000Z","updated_at":"2025-05-20T08:30:34.000Z","dependencies_parsed_at":"2024-06-18T12:35:36.116Z","dependency_job_id":"ab9a8df8-5478-4fc5-872b-2c8a4f309df8","html_url":"https://github.com/galeone/tfgo","commit_stats":{"total_commits":147,"total_committers":16,"mean_commits":9.1875,"dds":"0.22448979591836737","last_synced_commit":"16113111dc99451377956d54149ac72072d6d973"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/galeone/tfgo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galeone%2Ftfgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galeone%2Ftfgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galeone%2Ftfgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galeone%2Ftfgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/galeone","download_url":"https://codeload.github.com/galeone/tfgo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galeone%2Ftfgo/sbom","scorecard":{"id":417602,"data":{"date":"2025-08-11","repo":{"name":"github.com/galeone/tfgo","commit":"16113111dc99451377956d54149ac72072d6d973"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2,"checks":[{"name":"Code-Review","score":2,"reason":"Found 4/15 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"247 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2024-2611 / GHSA-8r3f-844c-mc37","Warn: Project is vulnerable to: PYSEC-2022-42986 / GHSA-43fp-rhv2-5gv8","Warn: Project is vulnerable to: PYSEC-2023-135 / GHSA-xqr8-7jwr-rhp7","Warn: Project is vulnerable to: GHSA-496j-2rq6-j6cc","Warn: Project is vulnerable to: PYSEC-2024-60 / GHSA-jjg7-2v4v-x38h","Warn: Project is vulnerable to: PYSEC-2022-288 / GHSA-6hrg-qmvc-2xh8","Warn: Project is vulnerable to: GHSA-6p56-wp2h-9hxr","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: GHSA-8gq9-2x98-w8hf","Warn: Project is vulnerable to: GHSA-8qvm-5x2c-j2w7","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q","Warn: Project is vulnerable to: PYSEC-2024-110 / GHSA-jw8x-6495-233v","Warn: Project is vulnerable to: GHSA-jxfp-4rvq-9h9m","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: GHSA-23hm-7w47-xw72","Warn: Project is vulnerable to: GHSA-2475-53vw-vp25","Warn: Project is vulnerable to: GHSA-247x-2f9f-5wp7","Warn: Project is vulnerable to: GHSA-24x4-6qmh-88qg","Warn: Project is vulnerable to: GHSA-27rc-728f-x5w2","Warn: Project is vulnerable to: PYSEC-2021-391 / GHSA-2p25-55c9-h58q","Warn: Project is vulnerable to: GHSA-2p9q-h29j-3f5v","Warn: Project is vulnerable to: GHSA-2r2f-g8mw-9gvr","Warn: Project is vulnerable to: GHSA-2vv3-56qg-g2cf","Warn: Project is vulnerable to: GHSA-34f9-hjfq-rr8j","Warn: Project is vulnerable to: GHSA-368v-7v32-52fx","Warn: Project is vulnerable to: PYSEC-2021-418 / GHSA-374m-jm66-3vj8","Warn: Project is vulnerable to: GHSA-37jf-mjv6-xfqw","Warn: Project is vulnerable to: GHSA-397c-5g2j-qxpv","Warn: Project is vulnerable to: PYSEC-2021-408 / GHSA-3ff2-r28g-w7h9","Warn: Project is vulnerable to: GHSA-3mw4-6rj6-74g5","Warn: Project is vulnerable to: PYSEC-2021-420 / GHSA-3rcw-9p9x-582v","Warn: Project is vulnerable to: GHSA-428x-9xc2-m8mj","Warn: Project is vulnerable to: GHSA-43jf-985q-588j","Warn: Project is vulnerable to: GHSA-43q8-3fv7-pr5x","Warn: Project is vulnerable to: GHSA-44qp-9wwf-734r","Warn: Project is vulnerable to: GHSA-49rq-hwc3-x77w","Warn: Project is vulnerable to: PYSEC-2021-398 / GHSA-49rx-x2rw-pc6f","Warn: Project is vulnerable to: PYSEC-2021-411 / GHSA-4f99-p9c2-3j8x","Warn: Project is vulnerable to: GHSA-4hvf-hxvg-f67v","Warn: Project is vulnerable to: GHSA-4j82-5ccr-4r8v","Warn: Project is vulnerable to: GHSA-4pc4-m9mj-v2r9","Warn: Project is vulnerable to: GHSA-4v5p-v5h9-6xjx","Warn: Project is vulnerable to: GHSA-4w68-4x85-mjj9","Warn: Project is vulnerable to: GHSA-54ch-gjq5-4976","Warn: Project is vulnerable to: GHSA-54pp-c6pp-7fpx","Warn: Project is vulnerable to: GHSA-558h-mq8x-7q9g","Warn: Project is vulnerable to: PYSEC-2021-400 / GHSA-57wx-m983-2f88","Warn: Project is vulnerable to: GHSA-5889-7v45-q28m","Warn: Project is vulnerable to: PYSEC-2021-409 / GHSA-5crj-c72x-m7gq","Warn: Project is vulnerable to: GHSA-5f2r-qp73-37mr","Warn: Project is vulnerable to: PYSEC-2021-392 / GHSA-5hx2-qx8j-qjqm","Warn: Project is vulnerable to: GHSA-5qw5-89mw-wcg2","Warn: Project is vulnerable to: GHSA-5v77-j66x-4c4g","Warn: Project is vulnerable to: GHSA-5w96-866f-6rm8","Warn: Project is vulnerable to: GHSA-5wpj-c6f7-24x8","Warn: Project is vulnerable to: GHSA-627q-g293-49q7","Warn: Project is vulnerable to: GHSA-6445-fm66-fvq2","Warn: Project is vulnerable to: GHSA-647v-r7qq-24fh","Warn: Project is vulnerable to: GHSA-64jg-wjww-7c5w","Warn: Project is vulnerable to: GHSA-66vq-54fq-6jvv","Warn: Project is vulnerable to: GHSA-67pf-62xr-q35m","Warn: Project is vulnerable to: GHSA-689c-r7h2-fv9v","Warn: Project is vulnerable to: GHSA-68v3-g9cm-rmm6","Warn: Project is vulnerable to: GHSA-6gmv-pjp9-p8w8","Warn: Project is vulnerable to: GHSA-6hg6-5c2q-7rcr","Warn: Project is vulnerable to: PYSEC-2021-401 / GHSA-6hpv-v2rx-c5g6","Warn: Project is vulnerable to: GHSA-6wfh-89q8-44jq","Warn: Project is vulnerable to: GHSA-6x99-gv2v-q76v","Warn: Project is vulnerable to: GHSA-75c9-jrh4-79mc","Warn: Project is vulnerable to: GHSA-762h-vpvw-3rcx","Warn: Project is vulnerable to: GHSA-77gp-3h4r-6428","Warn: Project is vulnerable to: PYSEC-2021-397 / GHSA-786j-5qwq-r36x","Warn: Project is vulnerable to: GHSA-79h2-q768-fpxr","Warn: Project is vulnerable to: GHSA-7j3m-8g3c-9qqq","Warn: Project is vulnerable to: GHSA-7jvm-xxmr-v5cw","Warn: Project is vulnerable to: PYSEC-2021-396 / GHSA-7pxj-m4jf-r6h2","Warn: Project is vulnerable to: PYSEC-2021-417 / GHSA-7r94-xv9v-63jw","Warn: Project is vulnerable to: PYSEC-2021-399 / GHSA-7v94-64hj-m82h","Warn: Project is vulnerable to: GHSA-7x4v-9gxg-9hwj","Warn: Project is vulnerable to: GHSA-828c-5j5q-vrjq","Warn: Project is vulnerable to: GHSA-84jm-4cf3-9jfm","Warn: Project is vulnerable to: GHSA-87v6-crgm-2gfj","Warn: Project is vulnerable to: GHSA-8cxv-76p7-jxwr","Warn: Project is vulnerable to: GHSA-8fvv-46hw-vpg3","Warn: Project is vulnerable to: GHSA-8jj7-5vxc-pg2q","Warn: Project is vulnerable to: GHSA-8r7c-3cm2-3h8f","Warn: Project is vulnerable to: GHSA-8rcj-c8pj-v3m3","Warn: Project is vulnerable to: GHSA-8w5g-3wcv-9g2j","Warn: Project is vulnerable to: GHSA-8wwm-6264-x792","Warn: Project is vulnerable to: GHSA-93vr-9q9m-pj8p","Warn: Project is vulnerable to: GHSA-94mm-g2mv-8p7r","Warn: Project is vulnerable to: GHSA-97p7-w86h-vcf9","Warn: Project is vulnerable to: GHSA-98j8-c9q4-r38g","Warn: Project is vulnerable to: GHSA-98p5-x8x4-c9m5","Warn: Project is vulnerable to: GHSA-9942-r22v-78cp","Warn: Project is vulnerable to: GHSA-9c78-vcq7-7vxq","Warn: Project is vulnerable to: GHSA-9cr2-8pwr-fhfq","Warn: Project is vulnerable to: PYSEC-2021-410 / GHSA-9crf-c6qr-r273","Warn: Project is vulnerable to: GHSA-9fpg-838v-wpv7","Warn: Project is vulnerable to: GHSA-9gwq-6cwj-47h3","Warn: Project is vulnerable to: GHSA-9j4v-pp28-mxv7","Warn: Project is vulnerable to: GHSA-9p77-mmrw-69c7","Warn: Project is vulnerable to: GHSA-9px9-73fg-3fqp","Warn: Project is vulnerable to: GHSA-9v8w-xmr4-wgxp","Warn: Project is vulnerable to: GHSA-9vqj-64pv-w55c","Warn: Project is vulnerable to: GHSA-c582-c96p-r5cq","Warn: Project is vulnerable to: GHSA-c6fh-56w7-fvjw","Warn: Project is vulnerable to: GHSA-c94w-c95p-phf8","Warn: Project is vulnerable to: GHSA-cg88-rpvp-cjv5","Warn: Project is vulnerable to: PYSEC-2021-414 / GHSA-cpf4-wx82-gxp6","Warn: Project is vulnerable to: PYSEC-2021-842 / GHSA-cq76-mxrc-vchh","Warn: Project is vulnerable to: PYSEC-2021-413 / GHSA-cqv6-3phm-hcwx","Warn: Project is vulnerable to: GHSA-cqvq-fvhr-v6hc","Warn: Project is vulnerable to: GHSA-cv2p-32v3-vhwq","Warn: Project is vulnerable to: GHSA-cwpm-f78v-7m5c","Warn: Project is vulnerable to: GHSA-f2vv-v9cg-qhh7","Warn: Project is vulnerable to: GHSA-f2w8-jw48-fr7j","Warn: Project is vulnerable to: GHSA-f49c-87jh-g47q","Warn: Project is vulnerable to: GHSA-f4rr-5m7v-wxcw","Warn: Project is vulnerable to: GHSA-f4w6-h4f5-wx45","Warn: Project is vulnerable to: PYSEC-2021-415 / GHSA-f54p-f6jp-4rhr","Warn: Project is vulnerable to: GHSA-f637-vh3r-vfh2","Warn: Project is vulnerable to: GHSA-f7r5-q7cx-h668","Warn: Project is vulnerable to: GHSA-ffjm-4qwc-7cmf","Warn: Project is vulnerable to: GHSA-fhfc-2q7x-929f","Warn: Project is vulnerable to: GHSA-fpcp-9h7m-ffpx","Warn: Project is vulnerable to: GHSA-fq6p-6334-8gr4","Warn: Project is vulnerable to: GHSA-fq86-3f29-px2c","Warn: Project is vulnerable to: GHSA-fqm2-gh8w-gr68","Warn: Project is vulnerable to: GHSA-fqxc-pvf8-2w9v","Warn: Project is vulnerable to: PYSEC-2021-404 / GHSA-fr77-rrx3-cp7g","Warn: Project is vulnerable to: GHSA-frqp-wp83-qggv","Warn: Project is vulnerable to: GHSA-fv25-wrff-wf86","Warn: Project is vulnerable to: GHSA-fv43-93gv-vm8f","Warn: Project is vulnerable to: GHSA-fx5c-h9f6-rv7c","Warn: Project is vulnerable to: GHSA-fxgc-95xx-grvq","Warn: Project is vulnerable to: GHSA-g35r-369w-3fqp","Warn: Project is vulnerable to: GHSA-g468-qj8g-vcjc","Warn: Project is vulnerable to: GHSA-g9fm-r5mm-rf9f","Warn: Project is vulnerable to: GHSA-g9h5-vr8m-x2h4","Warn: Project is vulnerable to: GHSA-gcvh-66ff-4mwm","Warn: Project is vulnerable to: GHSA-gf2j-f278-xh4v","Warn: Project is vulnerable to: GHSA-gf97-q72m-7579","Warn: Project is vulnerable to: PYSEC-2021-393 / GHSA-gh8h-7j2j-qv4f","Warn: Project is vulnerable to: GHSA-gjh7-xx4r-x345","Warn: Project is vulnerable to: GHSA-gjqc-q9g6-q2j3","Warn: Project is vulnerable to: GHSA-gq2j-cr96-gvqx","Warn: Project is vulnerable to: GHSA-gw97-ff7c-9v96","Warn: Project is vulnerable to: GHSA-h246-cgh4-7475","Warn: Project is vulnerable to: GHSA-h2wq-prv9-2f56","Warn: Project is vulnerable to: GHSA-h48f-q7rw-hvr7","Warn: Project is vulnerable to: GHSA-h5g4-ppwx-48q2","Warn: Project is vulnerable to: GHSA-h5vq-gw2c-pq47","Warn: Project is vulnerable to: PYSEC-2021-405 / GHSA-h67m-xg8f-fxcf","Warn: Project is vulnerable to: GHSA-h6gw-r52c-724r","Warn: Project is vulnerable to: GHSA-h6q3-vv32-2cq5","Warn: Project is vulnerable to: GHSA-h7ff-cfc9-wmmh","Warn: Project is vulnerable to: GHSA-hq7g-wwwp-q46h","Warn: Project is vulnerable to: GHSA-hrg5-737c-2p56","Warn: Project is vulnerable to: GHSA-hx9q-2mx4-m4pg","Warn: Project is vulnerable to: GHSA-j3mj-fhpq-qqjj","Warn: Project is vulnerable to: GHSA-j43h-pgmg-5hjq","Warn: Project is vulnerable to: GHSA-j5w9-hmfh-4cr6","Warn: Project is vulnerable to: PYSEC-2021-394 / GHSA-j86v-p27c-73fm","Warn: Project is vulnerable to: PYSEC-2021-419 / GHSA-j8c8-67vp-6mx7","Warn: Project is vulnerable to: GHSA-jjm6-4vf7-cjh4","Warn: Project is vulnerable to: GHSA-jq6x-99hj-q636","Warn: Project is vulnerable to: GHSA-jqm7-m5q7-3hm5","Warn: Project is vulnerable to: GHSA-jvhc-5hhr-w3v5","Warn: Project is vulnerable to: PYSEC-2021-402 / GHSA-m342-ff57-4jcc","Warn: Project is vulnerable to: GHSA-m4hf-j54p-p353","Warn: Project is vulnerable to: PYSEC-2021-389 / GHSA-m539-j985-hcr8","Warn: Project is vulnerable to: GHSA-m6cv-4fmf-66xf","Warn: Project is vulnerable to: GHSA-m6vp-8q9j-whx4","Warn: Project is vulnerable to: GHSA-mg66-qvc5-rm93","Warn: Project is vulnerable to: GHSA-mgmh-g2v6-mqw5","Warn: Project is vulnerable to: GHSA-mh3m-62v7-68xg","Warn: Project is vulnerable to: GHSA-mv77-9g28-cwg3","Warn: Project is vulnerable to: GHSA-mv8m-8x97-937q","Warn: Project is vulnerable to: GHSA-mw6j-hh29-h379","Warn: Project is vulnerable to: GHSA-p2xf-8hgm-hpw5","Warn: Project is vulnerable to: GHSA-p7hr-f446-x6qf","Warn: Project is vulnerable to: GHSA-p9rc-rmr5-529j","Warn: Project is vulnerable to: GHSA-pf36-r9c6-h97j","Warn: Project is vulnerable to: GHSA-pfjj-m3jj-9jc9","Warn: Project is vulnerable to: PYSEC-2021-843 / GHSA-pgcq-h79j-2f69","Warn: Project is vulnerable to: GHSA-pqhm-4wvf-2jg8","Warn: Project is vulnerable to: GHSA-pqrv-8r2f-7278","Warn: Project is vulnerable to: PYSEC-2021-390 / GHSA-prcg-wp5q-rv7p","Warn: Project is vulnerable to: GHSA-pxrw-j2fv-hx3h","Warn: Project is vulnerable to: GHSA-q2c3-jpmc-gfjx","Warn: Project is vulnerable to: GHSA-q5jv-m6qw-5g37","Warn: Project is vulnerable to: GHSA-q85f-69q7-55h2","Warn: Project is vulnerable to: GHSA-qhw4-wwr7-gjc5","Warn: Project is vulnerable to: GHSA-qj5r-f9mv-rffh","Warn: Project is vulnerable to: GHSA-qjqc-vqcf-5qvj","Warn: Project is vulnerable to: GHSA-qx3f-p745-w4hr","Warn: Project is vulnerable to: GHSA-qxpx-j395-pw36","Warn: Project is vulnerable to: GHSA-r26c-679w-mrjm","Warn: Project is vulnerable to: GHSA-rc9w-5c64-9vqq","Warn: Project is vulnerable to: GHSA-rcf8-g8jv-vg6p","Warn: Project is vulnerable to: PYSEC-2021-416 / GHSA-rg3m-hqc5-344v","Warn: Project is vulnerable to: GHSA-rh87-q4vg-m45j","Warn: Project is vulnerable to: GHSA-rjx6-v474-2ch9","Warn: Project is vulnerable to: GHSA-rmg2-f698-wq35","Warn: Project is vulnerable to: GHSA-rrx2-r989-2c43","Warn: Project is vulnerable to: GHSA-rww7-2gpw-fv6j","Warn: Project is vulnerable to: GHSA-v3f7-j968-4h5f","Warn: Project is vulnerable to: GHSA-v5xg-3q2c-c2r4","Warn: Project is vulnerable to: GHSA-v6h3-348g-6h5x","Warn: Project is vulnerable to: GHSA-v7vw-577f-vp8x","Warn: Project is vulnerable to: GHSA-vgvh-2pf4-jr2x","Warn: Project is vulnerable to: GHSA-vjg4-v33c-ggc4","Warn: Project is vulnerable to: GHSA-vm7x-4qhj-rrcq","Warn: Project is vulnerable to: PYSEC-2021-406 / GHSA-vwhq-49r4-gj9v","Warn: Project is vulnerable to: GHSA-vxv8-r8q2-63xw","Warn: Project is vulnerable to: GHSA-w62h-8xjm-fv49","Warn: Project is vulnerable to: GHSA-wc4g-r73w-x8mm","Warn: Project is vulnerable to: GHSA-wcv5-vrvr-3rx2","Warn: Project is vulnerable to: GHSA-wm93-f238-7v37","Warn: Project is vulnerable to: GHSA-wq6q-6m32-9rv9","Warn: Project is vulnerable to: GHSA-wqmc-pm8c-2jhc","Warn: Project is vulnerable to: GHSA-wr9v-g9vf-c74v","Warn: Project is vulnerable to: GHSA-wxjj-cgcx-r3vq","Warn: Project is vulnerable to: PYSEC-2021-407 / GHSA-x3v8-c8qx-3j3r","Warn: Project is vulnerable to: GHSA-x4qx-4fjv-hmw6","Warn: Project is vulnerable to: GHSA-x989-q2pq-4q5x","Warn: Project is vulnerable to: GHSA-xf83-q765-xm6m","Warn: Project is vulnerable to: GHSA-xrp2-fhq4-4q3w","Warn: Project is vulnerable to: PYSEC-2021-395 / GHSA-xrqm-fpgr-6hhx","Warn: Project is vulnerable to: GHSA-xvwp-h6jv-7472","Warn: Project is vulnerable to: GHSA-xxcj-rhqg-m46g","Warn: Project is vulnerable to: GHSA-34jh-p97f-mpxf","Warn: Project is vulnerable to: PYSEC-2023-212 / GHSA-g4mx-q9vg-27p4","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: PYSEC-2023-192 / GHSA-v845-jxx5-vc9f","Warn: Project is vulnerable to: GHSA-2g68-c3qc-8985","Warn: Project is vulnerable to: GHSA-f9vj-2wh5-fj8j","Warn: Project is vulnerable to: PYSEC-2023-221 / GHSA-hrfv-mqp8-q5rw","Warn: Project is vulnerable to: PYSEC-2023-57 / GHSA-px8h-6qxv-m22q","Warn: Project is vulnerable to: GHSA-q34m-jh98-gwm2","Warn: Project is vulnerable to: PYSEC-2023-58 / GHSA-xg9f-g7g7-2323","Warn: Project is vulnerable to: PYSEC-2022-203","Warn: Project is vulnerable to: PYSEC-2022-43017 / GHSA-qwmp-2cf2-g9g6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T00:19:21.464Z","repository_id":20951180,"created_at":"2025-08-19T00:19:21.464Z","updated_at":"2025-08-19T00:19:21.464Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278556190,"owners_count":26006080,"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-10-06T02:00:05.630Z","response_time":65,"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":["go","golang","tensorflow"],"created_at":"2024-07-30T20:01:38.980Z","updated_at":"2025-10-06T03:48:46.639Z","avatar_url":"https://github.com/galeone.png","language":"Go","readme":"# tfgo: TensorFlow in Go\n[![GoDoc](https://godoc.org/github.com/galeone/tfgo?status.svg)](https://godoc.org/github.com/galeone/tfgo)\n[![Build Status](https://travis-ci.org/galeone/tfgo.svg?branch=master)](https://travis-ci.org/galeone/tfgo)\n---\n\n- [tfgo: TensorFlow in Go](#tfgo-tensorflow-in-go)\n  - [Dependencies](#dependencies)\n  - [Installation](#installation)\n  - [Getting started](#getting-started)\n  - [Computer Vision using data flow graph](#computer-vision-using-data-flow-graph)\n  - [Train in Python, Serve in Go](#train-in-python-serve-in-go)\n    - [Python code](#python-code)\n    - [Go code](#go-code)\n  - [Why?](#why)\n  - [Contribute](#contribute)\n  - [TensorFlow installation](#tensorflow-installation)\n    - [Manual](#manual)\n    - [Docker](#docker)\n\nTensorFlow's Go bindings are [hard to use](https://pgaleone.eu/tensorflow/go/2017/05/29/understanding-tensorflow-using-go/): tfgo makes it easy!\n\nNo more problems like:\n\n- Scoping: each new node will have a new and unique name\n- Typing: attributes are automatically converted to a supported type instead of throwing errors at runtime\n\nAlso, it uses [Method chaining](https://en.wikipedia.org/wiki/Method_chaining) making possible to write pleasant Go code.\n\n## Dependencies\n\n1. TensorFlow-2.9.1 lib. [How to install tensorflow](#tensorflow-installation).\n2. TensorFlow bindings github.com/galeone/tensorflow. In order to correctly work with TensorFlow 2.9.1 in Go, we have to use a fork I created with some fix for the Go bindings. Bindings can be too large for go mod proxy, so you may want to switch off proxy usage by executing `go env -w GONOSUMDB=\"github.com/galeone/tensorflow\"` to pull code directly using system installed git. It changes nothing in the user interface -- you can use go modules as usual.\n\n## Installation\n\n```\ngo get github.com/galeone/tfgo\n```\n\n## Getting started\n\nThe core data structure of the TensorFlow's Go bindings is the `op.Scope` struct. tfgo allows creating new `*op.Scope` that solves the scoping issue mentioned above.\n\nSince we're defining a graph, let's start from its root (empty graph)\n\n```go\nroot := tg.NewRoot()\n```\n\nWe can now place nodes into this graphs and connect them. Let's say we want to multiply a matrix for a column vector and then add another column vector to the result.\n\nHere's the complete source code.\n\n```go\npackage main\n\nimport (\n        \"fmt\"\n        tg \"github.com/galeone/tfgo\"\n        tf \"github.com/galeone/tensorflow/tensorflow/go\"\n)\n\nfunc main() {\n        root := tg.NewRoot()\n        A := tg.NewTensor(root, tg.Const(root, [2][2]int32{{1, 2}, {-1, -2}}))\n        x := tg.NewTensor(root, tg.Const(root, [2][1]int64{{10}, {100}}))\n        b := tg.NewTensor(root, tg.Const(root, [2][1]int32{{-10}, {10}}))\n        Y := A.MatMul(x.Output).Add(b.Output)\n        // Please note that Y is just a pointer to A!\n\n        // If we want to create a different node in the graph, we have to clone Y\n        // or equivalently A\n        Z := A.Clone()\n        results := tg.Exec(root, []tf.Output{Y.Output, Z.Output}, nil, \u0026tf.SessionOptions{})\n        fmt.Println(\"Y: \", results[0].Value(), \"Z: \", results[1].Value())\n        fmt.Println(\"Y == A\", Y == A) // ==\u003e true\n        fmt.Println(\"Z == A\", Z == A) // ==\u003e false\n}\n```\n\nthat produces\n\n```\nY:  [[200] [-200]] Z:  [[200] [-200]]\nY == A true\nZ == A false\n```\n\nThe list of the available methods is available on GoDoc: http://godoc.org/github.com/galeone/tfgo\n\n## Computer Vision using data flow graph\n\nTensorFlow is rich of methods for performing operations on images. tfgo provides the `image` package that allows using the Go bindings to perform computer vision tasks in an elegant way.\n\nFor instance, it's possible to read an image, compute its directional derivative along the horizontal and vertical directions, compute the gradient and save it.\n\nThe code below does that, showing the different results achieved using correlation and convolution operations.\n\n```go\npackage main\n\nimport (\n        tg \"github.com/galeone/tfgo\"\n        \"github.com/galeone/tfgo/image\"\n        \"github.com/galeone/tfgo/image/filter\"\n        \"github.com/galeone/tfgo/image/padding\"\n        tf \"github.com/galeone/tensorflow/tensorflow/go\"\n        \"os\"\n)\n\nfunc main() {\n        root := tg.NewRoot()\n        grayImg := image.Read(root, \"/home/pgaleone/airplane.png\", 1)\n        grayImg = grayImg.Scale(0, 255)\n\n        // Edge detection using sobel filter: convolution\n        Gx := grayImg.Clone().Convolve(filter.SobelX(root), image.Stride{X: 1, Y: 1}, padding.SAME)\n        Gy := grayImg.Clone().Convolve(filter.SobelY(root), image.Stride{X: 1, Y: 1}, padding.SAME)\n        convoluteEdges := image.NewImage(root.SubScope(\"edge\"), Gx.Square().Add(Gy.Square().Value()).Sqrt().Value()).EncodeJPEG()\n\n        Gx = grayImg.Clone().Correlate(filter.SobelX(root), image.Stride{X: 1, Y: 1}, padding.SAME)\n        Gy = grayImg.Clone().Correlate(filter.SobelY(root), image.Stride{X: 1, Y: 1}, padding.SAME)\n        correlateEdges := image.NewImage(root.SubScope(\"edge\"), Gx.Square().Add(Gy.Square().Value()).Sqrt().Value()).EncodeJPEG()\n\n        results := tg.Exec(root, []tf.Output{convoluteEdges, correlateEdges}, nil, \u0026tf.SessionOptions{})\n\n        file, _ := os.Create(\"convolved.png\")\n        file.WriteString(results[0].Value().(string))\n        file.Close()\n\n        file, _ = os.Create(\"correlated.png\")\n        file.WriteString(results[1].Value().(string))\n        file.Close()\n}\n\n```\n\n**airplane.png**\n\n![airplane](https://i.imgur.com/QS6shgc.jpg)\n\n**convolved.png**\n\n![convolved](https://i.imgur.com/zVndo9B.jpg)\n\n**correlated.png**\n\n![correlated](https://i.imgur.com/vhYF7o3.jpg)\n\nthe list of the available methods is available on GoDoc: http://godoc.org/github.com/galeone/tfgo/image\n\n## Train in Python, Serve in Go\n\nTensorFlow 2 comes with a lot of easy way to export a computational graph (e.g. Keras model, or a function decorated with `@tf.function`) to the `SavedModel` serialization format (that's the only one officially supported).\n\n![saved model](.readme/saved_model.png)\n\nUsing TensorFlow 2 (with Keras or tf.function) + tfgo, exporting a trained model (or a generic computational graph) and use it in Go is straightforward.\n\nJust dig into the example to understand how to serve a trained model with `tfgo`.\n\n### Python code\n\n```python\nimport tensorflow as tf\n\nmodel = tf.keras.Sequential(\n    [\n        tf.keras.layers.Conv2D(\n            8,\n            (3, 3),\n            strides=(2, 2),\n            padding=\"valid\",\n            input_shape=(28, 28, 1),\n            activation=tf.nn.relu,\n            name=\"inputs\",\n        ),  # 14x14x8\n        tf.keras.layers.Conv2D(\n            16, (3, 3), strides=(2, 2), padding=\"valid\", activation=tf.nn.relu\n        ),  # 7x716\n        tf.keras.layers.Flatten(),\n        tf.keras.layers.Dense(10, name=\"logits\"),  # linear\n    ]\n)\n\ntf.saved_model.save(model, \"output/keras\")\n\n```\n\n### Go code\n\n```go\npackage main\n\nimport (\n        \"fmt\"\n        tg \"github.com/galeone/tfgo\"\n        tf \"github.com/galeone/tensorflow/tensorflow/go\"\n)\n\nfunc main() {\n        // A model exported with tf.saved_model.save()\n        // automatically comes with the \"serve\" tag because the SavedModel\n        // file format is designed for serving.\n        // This tag contains the various functions exported. Among these, there is\n        // always present the \"serving_default\" signature_def. This signature def\n        // works exactly like the TF 1.x graph. Get the input tensor and the output tensor,\n        // and use them as placeholder to feed and output to get, respectively.\n\n        // To get info inside a SavedModel the best tool is saved_model_cli\n        // that comes with the TensorFlow Python package.\n\n        // e.g. saved_model_cli show --all --dir output/keras\n        // gives, among the others, this info:\n\n        // signature_def['serving_default']:\n        // The given SavedModel SignatureDef contains the following input(s):\n        //   inputs['inputs_input'] tensor_info:\n        //       dtype: DT_FLOAT\n        //       shape: (-1, 28, 28, 1)\n        //       name: serving_default_inputs_input:0\n        // The given SavedModel SignatureDef contains the following output(s):\n        //   outputs['logits'] tensor_info:\n        //       dtype: DT_FLOAT\n        //       shape: (-1, 10)\n        //       name: StatefulPartitionedCall:0\n        // Method name is: tensorflow/serving/predict\n\n        model := tg.LoadModel(\"test_models/output/keras\", []string{\"serve\"}, nil)\n\n        fakeInput, _ := tf.NewTensor([1][28][28][1]float32{})\n        results := model.Exec([]tf.Output{\n                model.Op(\"StatefulPartitionedCall\", 0),\n        }, map[tf.Output]*tf.Tensor{\n                model.Op(\"serving_default_inputs_input\", 0): fakeInput,\n        })\n\n        predictions := results[0]\n        fmt.Println(predictions.Value())\n}\n```\n\n## Why?\n\nThinking about computation represented using graphs, describing computing in this way is, in one word, *challenging*.\n\nAlso, tfgo brings GPU computations to Go and allows writing parallel code without worrying about the device that executes it\n(just place the graph into the device you desire: that's it!)\n\n## Contribute\n\nI love contributions. Seriously. Having people that share your same interests and want to face your same challenges it's something awesome.\n\nIf you'd like to contribute, just dig in the code and see what can be added or improved. Start a discussion opening an issue and let's talk about it.\n\nJust follow the same design I use into the `image` package (\"override\" the same `Tensor` methods, document the methods, **test** your changes, ...)\n\nThere are **a lot** of packages that can be added, like the `image` package. Feel free to work on a brand new package: I'd love to see this kind of contributions!\n\n## TensorFlow installation\n\n### Manual\nOn MacOS you can `brew install libtensorflow` (assuming you have brew installed. Brew is a package manager. If you need help installing brew follow instructions here: https://docs.brew.sh/Installation )\n\nDownload and install the C library from https://www.tensorflow.org/install/lang_c\n\n```bash\ncurl -L \"https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-2.9.1.tar.gz\" | sudo tar -C /usr/local -xz\nsudo ldconfig\n```\n\n### Docker\n\n```bash\ndocker pull tensorflow/tensorflow:2.9.1\n```\n\nOr you can use system package manager.\n","funding_links":["https://github.com/sponsors/galeone"],"categories":["开源类库","Machine Learning","Open source library","Go","机器学习","\u003cspan id=\"机器学习-machine-learning\"\u003e机器学习 Machine Learning\u003c/span\u003e","Repositories","Relational Databases","Uncategorized"],"sub_categories":["机器学习","Search and Analytic Databases","Machine Learning","交流","检索及分析资料库","Advanced Console UIs","\u003cspan id=\"高级控制台用户界面-advanced-console-uis\"\u003e高级控制台用户界面 Advanced Console UIs\u003c/span\u003e","SQL 查询语句构建库","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaleone%2Ftfgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaleone%2Ftfgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaleone%2Ftfgo/lists"}