Skip to main content

Build Status

codecov

cs107-FinalProject

Group 30

Name Email
Austin Nguyen austinnguyen@g.harvard.edu
Emma Besier emmabesier@g.harvard.edu
Lottie Zhuang luoting_zhuang@hms.harvard.edu
Hainan Xiong hainanxiong@hsph.harvard.edu

Installation

We have two approaches to installation. We recommend the virtualenv approach because which it helps isolate Python installations and contains a Python interpreter, a pip executable and a site-packages directory. Ultimately, this makes it easier for users whose version of Python they are running their scripts with is not configured to search for modules where they have installed them.

Option 1: Install package using pip install automatiic.

Option 2: Create virtual environment and clone the git repository.

  1. Install virtualenv: pip install virtualenv

  2. Creating a virtual environment: virtualenv env_automatiic or python -m virtualenv env_automatiic

  3. Activate the virtual environment: source env_automatiic/bin/activate

  4. Clone package from GitHub: git clone git@github.com:cs107-califour/cs107-FinalProject.git

  5. Navigate to the appropriate folder: cd cs107-FinalProject

  6. Install the requirements for automatiic: pip install -r requirements.txt

  7. (Optional) Run tests for automatiic using the test suite: pytest test_suite/test_forward.py pytest test_suite/test_reverse.py

  8. Leave virtual environment after using the package: deactivate

Broader Impact and Inclusivity Statement

Automatic differentiation, and the packages that implement it, have played a transformative role in optimization, neural networks, computer vision, natural language processing, and probabilistic inference. In almost every way, automatic differentiation outperforms its alternatives: manual differentiation is time consuming and prone to error, numerical differentiation can be highly inaccurate due to round-off and truncation errors, and symbolic differentiation often results in complex expressions.

But with its power also comes risk. Autodifferentiation packages such as automatiic are prone to misuse and can play an important role in malicious projects, such as the generation of deepfakes, AI-supported password guessing, and human impersonation. The ease-of-use of differentiation packages such as automatiic may also encourage people to opt for a more complicated and less-interperatable solution like a neural network, over something simpler like a regression model. To use our package and others like it, one should consider: 1) the social implications of the task being solved (i.e. does this have the potential to harm others?), 2) whether the current use of the package is aligned with the intended use outlined in the official documentation, and 3) whether or not automatic differentiation is the best and simplest solution to the task at hand.

With respect to inclusivity, automatic differentiation as a method is more accessible to underrepresented groups than other differentiation techniques. It is understandable with a weak math background, as all numerical computations are compositions of a finite set of elementary operations. The main barrier to entry, we argue, is the technology needed to successfuly download and use the package that implements it—one must have access to a computer with sufficient speed and power, access to WiFi, and the courage to insert oneself in the arguably intimidating culture of tech. Underrepresented groups, working parents, non-English speakers and those in rural areas are most likely to be faced with these obsticles.

Even if the user has made it past the above barriers to entry, they must have their work reviewed and approved by project maintainers—who are overwhelmingly white and male. Bias, implicit or not, permeates the workplace and creates additional difficulties for already marginalized groups. While we can indeed write a "Diversity Statement" on our package website, a more proactive way of encouraging diversity in our users would be to hold workshops designed for negleted populations, and to publicly support programs that provide WiFi and computers in under-served communities.

Metadata

Release files for automatiic 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for automatiic 0.0.5
File Size Uploaded Provenance
automatiic-0.0.5.tar.gz 4.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for automatiic 0.0.5
File Interpreter ABI Platform
automatiic-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 8.0 kB

Release files / automatiic-0.0.5.tar.gz

Download URL automatiic-0.0.5.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8edb1077f7db1910f6a76d57b88d9e2628d1cc7733bfdcf151d63cd91ddd97d8
BLAKE2b-256 checksum
How to use checksums
343c70128819ad8a6a4f70e546363d98cd24d35f50254435601f3df12777d6e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

Release files / automatiic-0.0.5-py3-none-any.whl

Download URL automatiic-0.0.5-py3-none-any.whl
Size 4.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d8343f8c8784b7ad697028dd4e56259bd3d5ed62babf4b294b61d8791d78991
BLAKE2b-256 checksum
How to use checksums
21493325bce56d300bd0642d60c83b52fcd3f40dcdf4ebc310b01fe77992575b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

Security for automatiic 0.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page