{"id":15539653,"url":"https://github.com/thchang/nn_mod","last_synced_at":"2026-01-07T15:05:47.352Z","repository":{"id":157742155,"uuid":"206878733","full_name":"thchang/NN_MOD","owner":"thchang","description":"Fortran 2008 Module/Class for training neural network regressors","archived":false,"fork":false,"pushed_at":"2021-02-09T19:35:10.000Z","size":23,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-09T12:58:49.153Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Fortran","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/thchang.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":"2019-09-06T21:47:29.000Z","updated_at":"2024-05-03T05:01:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"80596ab6-f7b7-41a0-82ea-2db38252f18b","html_url":"https://github.com/thchang/NN_MOD","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/thchang%2FNN_MOD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thchang%2FNN_MOD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thchang%2FNN_MOD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thchang%2FNN_MOD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thchang","download_url":"https://codeload.github.com/thchang/NN_MOD/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246117690,"owners_count":20726068,"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":[],"created_at":"2024-10-02T12:11:01.605Z","updated_at":"2026-01-07T15:05:47.300Z","avatar_url":"https://github.com/thchang.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NN\\_MOD: A Fortran 2008 Module for neural network regressors\n\nThis module contains Fortran 2008 classes for efficiently training and\nevaluating dense neural networks, without support for many advanced features\nsuch as batch training, dropout, convolutions, and distributed parallelism.\nHowever, as a prototype library for training and evaluating neural networks\nregressors, this library is currently in working order.\n\nTo take this code to the next level, the following modifications are needed.\n - Support for other optimizers: I have provided several possible optimization\n   subroutines in `OPT_MOD` but have not added the code to support changing\n   SGD for any of the other options.\n - Add L-BFGS to the list in `OPT_MOD`.\n - Add support for training and evaluating with dropout (in the form of a\n   dropout layer).\n - Add a transformer layer.\n - Add a recurrent layer.\n - Add support for two- and three-tensor inputs, including two- and three-\n   dimensional convolutional filters.\n - Add support for shared-memory and distributed memory parallelism.\n - Add support to train on a randomized subset of the available data, and\n   for streaming said data from a file so that it is never all held in\n   primary memory.\n - Add a checkpointing feature for fault tolerance.\n - Add support for classification problems (some alternative activation\n   functions and output layers are needed).\n - Add support for convolutional layers and recurrent network structures.\n\n## Contents\n\nThe `src` subdirectory contains the following source files:\n - `neuralnet.f90` contains the `NEURALNET_MOD` module, which defines the\n   `NEURALNET` derived data type/Fortran 2008 class.\n   Documentation contained therein.\n - `optimizers.f90` contains `OPT_MOD`, which defines several common\n   first-order convex optimization algorithms.\n - `main.f90` contains a driver that tests `NEURALNET_MOD` by training to\n   solve a linear least squares problem using both QR factorization (LAPACK)\n   and a neural network with linear activations.\n   The outputs should be approximately equal if the `NEURALNET` object is\n   working properly.\n - A GNU `Makefile` builds the project and executes the driver code.\n\nThe `test` subdirectory contains a more detailed test suite (in progress).\nThe included GNU `Makefile` builds and runs the tests.\n\n## Installation\n\n### Prerequisites\n\n`NN_MOD` requires both `BLAS` and `LAPACK` for efficient linear algebra.\n\n### Building\n\nTo install, pull this repo and run\n``\nmake -B\n``\n\n## Author\n\n* ** Tyler Chang ** - *Primary author*\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthchang%2Fnn_mod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthchang%2Fnn_mod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthchang%2Fnn_mod/lists"}