bfgn is a package for using convolutional neural networks (CNNs) in remote sensing projects. This is an internal research tool that manages several components of the research pipeline, from building data to training models to reporting and visualizing results. The primary goals of bfgn are to save time by not rewriting boilerplate code, reduce errors by reusing trusted code, and explore models more deeply by using standardized configuration files.
As an internal research tool, bfgn is a living codebase that is currently targeted toward our research projects and interests. It also comes with the disclaimer that it is a by-product of our existing research commitments and is not guaranteed to be bug-free, as well as not having extensive test coverage or other best practices. While we're working in that direction, we wanted to provide everyone access to bfgn in the hopes that others would find it useful.
We welcome contributions to bfgn. Please reach out if you'd like to discuss the package further.
This is an alpha release. In the coming weeks we'll begin versioning after some initial feedback. Please bear in mind that the package is very much subject to change early on.
bfgn is an extension of ecoCNN, which was published with the paper "Uncovering ecological patterns with convolutional neural networks". ecoCNN is recommended for those that want a simpler code base, or something that is written more linearly. bfgn is recommended for those who want a deeper dive, are looking for a living codebase, or who want to use the code as something closer to a standardized package.
This option is recommended because GPUs are orders of magnitude more efficient at training and applying neural networks.
- Install anaconda or miniconda.
- Startup a GPU node if working on a distributed computing environment.
conda env create --name=myenv --file=environment_GPU.yaml
conda activate myenv
conda env update --file=environment.yaml
- In the base of the repo:
pip install --editable .
- Install anaconda or miniconda.
conda env create --name=envname --file=environment.yaml
- In the base of the repo:
pip install --editable .