{"id":14959145,"url":"https://github.com/fomorians-oss/pyoneer","last_synced_at":"2025-10-24T16:31:14.466Z","repository":{"id":44579211,"uuid":"158107696","full_name":"fomorians-oss/pyoneer","owner":"fomorians-oss","description":"Tensor utilities, reinforcement learning, and more!","archived":false,"fork":false,"pushed_at":"2020-06-25T20:37:36.000Z","size":524,"stargazers_count":9,"open_issues_count":13,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-01-31T03:13:37.182Z","etag":null,"topics":["deep-learning","eager-execution","gym","machine-learning","reinforcement-learning","tensorflow","tensorflow-probability"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/fomoro-pyoneer/","language":"Python","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/fomorians-oss.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":"2018-11-18T17:14:30.000Z","updated_at":"2022-11-04T17:26:21.000Z","dependencies_parsed_at":"2022-08-20T17:21:17.055Z","dependency_job_id":null,"html_url":"https://github.com/fomorians-oss/pyoneer","commit_stats":null,"previous_names":["fomorians/pyoneer"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fomorians-oss%2Fpyoneer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fomorians-oss%2Fpyoneer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fomorians-oss%2Fpyoneer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fomorians-oss%2Fpyoneer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fomorians-oss","download_url":"https://codeload.github.com/fomorians-oss/pyoneer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237999681,"owners_count":19399920,"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":["deep-learning","eager-execution","gym","machine-learning","reinforcement-learning","tensorflow","tensorflow-probability"],"created_at":"2024-09-24T13:18:55.365Z","updated_at":"2025-10-24T16:31:13.950Z","avatar_url":"https://github.com/fomorians-oss.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pyoneer\n\nTensor utilities, reinforcement learning, and more! Designed to make research easier with low-level abstractions for common operations.\n\n## Usage\n\nFor the top-level utilities, import like so:\n\n    import pyoneer as pynr\n    pynr.math.rescale(...)\n\nFor the larger sub-modules, such as reinforcement learning, we recommend:\n\n    import pyoneer.rl as pyrl\n    loss_fn = pyrl.losses.PolicyGradient(...)\n\nIn general, the Pyoneer API tries to adhere to the TensorFlow 2.0 API.\n\n### Examples\n\n- [Proximal Policy Optimization with Pyoneer and TF 2.0](https://github.com/fomorians/ppo)\n\n## API\n\n### Activations ([`pynr.activations`](pyoneer/activations))\n\n- `pynr.activations.swish`\n\n### Debugging ([`pynr.debugging`](pyoneer/debugging))\n\n- `pynr.debugging.Stopwatch`\n\n### Distributions ([`pynr.distributions`](pyoneer/distributions))\n\n- `pynr.distributions.MultiCategorical`\n\n### Initializers ([`pynr.initializers`](pyoneer/initializers))\n\n- `pynr.initializers.SoftplusInverse`\n\n### Layers ([`pynr.layers`](pyoneer/layers))\n\n- `pynr.layers.Swish`\n- `pynr.layers.OneHotEncoder`\n- `pynr.layers.AngleEncoder`\n- `pynr.layers.Nest`\n- `pynr.layers.ConcreteDropout`\n\n### Tensor Manipulation ([`pynr.manip`](pyoneer/manip))\n\n- `pynr.manip.flatten`\n- `pynr.manip.batched_index`\n- `pynr.manip.pad_or_truncate`\n- `pynr.manip.shift`\n\n### Math ([`pynr.math`](pyoneer/math))\n\n- `pynr.math.to_radians`\n- `pynr.math.to_degrees`\n- `pynr.math.to_cartesian`\n- `pynr.math.to_polar`\n- `pynr.math.RADIANS_TO_DEGREES`\n- `pynr.math.DEGREES_TO_RADIANS`\n- `pynr.math.isclose`\n- `pynr.math.safe_divide`\n- `pynr.math.rescale`\n- `pynr.math.normalize`\n- `pynr.math.denormalize`\n- `pynr.math.sigmoid_inverse`\n\n### Metrics ([`pynr.metrics`](pyoneer/metrics))\n\n- `pynr.metrics.mape`\n- `pynr.metrics.smape`\n- `pynr.metrics.MAPE`\n- `pynr.metrics.SMAPE`\n\n### Moments ([`pynr.moments`](pyoneer/moments))\n\n- `pynr.moments.range_moments`\n- `pynr.moments.StaticMoments`\n- `pynr.moments.StreamingMoments`\n- `pynr.moments.ExponentialMovingMoments`\n\n### Learning Rate Schedules ([`pynr.schedules`](pyoneer/schedules))\n\n- `pynr.schedules.CyclicSchedule`\n\n### Regularizers ([`pynr.regularizers`](pyoneer/regularizers))\n\n- `pynr.regularizers.DropoutL2`\n\n### Reinforcement Learning ([`pynr.rl`](pyoneer/rl))\n\nUtilities for reinforcement learning.\n\n#### Losses ([`pynr.rl.losses`](pyoneer/rl/losses))\n\n- `pynr.rl.losses.policy_gradient`\n- `pynr.rl.losses.policy_entropy`\n- `pynr.rl.losses.clipped_policy_gradient`\n- `pynr.rl.losses.PolicyGradient`\n- `pynr.rl.losses.PolicyEntropy`\n- `pynr.rl.losses.ClippedPolicyGradient`\n\n#### Targets ([`pynr.rl.targets`](pyoneer/rl/targets))\n\n- `pynr.rl.targets.DiscountedReturns`\n- `pynr.rl.targets.GeneralizedAdvantages`\n\n#### Strategies ([`pynr.rl.strategies`](pyoneer/rl/strategies))\n\n- `pynr.rl.strategies.EpsilonGreedy`\n- `pynr.rl.strategies.Mode`\n- `pynr.rl.strategies.Sample`\n\n#### Wrappers ([`pynr.rl.wrappers`](pyoneer/rl/wrappers))\n\n- `pynr.rl.wrappers.ObservationCoordinates`\n- `pynr.rl.wrappers.ObservationNormalization`\n- `pynr.rl.wrappers.Batch`\n- `pynr.rl.wrappers.Process`\n\n## Installation\n\nThere are a few options for installation:\n\n1. (Recommended) Install with `pipenv`:\n\n        pipenv install fomoro-pyoneer\n\n2. Install locally for development with `pipenv`:\n\n        git clone https://github.com/fomorians/pyoneer.git\n        cd pyoneer\n        pipenv install\n        pipenv shell\n\n## Testing\n\nThere are a few options for testing:\n\n1. Run all tests:\n\n        python -m unittest discover -bfp '*_test.py'\n\n2. Run specific tests:\n\n        python -m pyoneer.math.logical_ops_test\n\n## Contributing\n\nFile an issue following the `ISSUE_TEMPLATE`. If the issue discussion warrants implementation, then submit a pull request from a branch describing the feature. This will eventually get merged into `master` after a few rounds of code review.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffomorians-oss%2Fpyoneer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffomorians-oss%2Fpyoneer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffomorians-oss%2Fpyoneer/lists"}