Open bmoore20 opened 3 years ago
2.28.21
Accomplished:
feature/habs-dataset
Next steps:
3.1.21
Accomplished:
feature/habs-environment
requirements.txt
that contains all of the dependencies to run the current HABs programs: HABs_Train.py
and HABs_Classify.py
pip install -r requirements.txt
HABs_Train.py
to make sure that the environment was correct ValueError: Shapes (None, 1) and (None, 3) are incompatible
HABs_Train.py
in habs conda environment with this new set-up and it worked how it is expected toHABs_Classify.py
in habs conda environment and it worked correctly as wellfeature/habs-environment
Next steps:
3.2.21
Accomplished:
conda install
vs pip install
environment.yml
file that generates a conda environment specific to the HABs project when conda env create -f environment.yml
is ran while the user is in the HABs project directoryNext steps:
3.3.21
Accomplished:
torch
and torchvision
as dependencies in feature/habs-environment
Dataset
class in order to understand it betterNext steps:
3.4.21
Accomplished:
feature/reorg-repo-structure
to go with #4requirements.txt
and environment.yml
from #11 in root project directory (habs
)HABsDataset
class from #12 in its own file: habs/hab/dataset.py
feature/habs-dataset
and feature/habs-environment
, it might be easiest to reference this new branch for all of those changes Next steps:
train.py
main
that receives users' arguments3.6.21
Accomplished:
if __name__ == "__main__"
statementrequired=True
?train.py
=> main()
and train()
train()
in main()
train()
main()
in if __name__ == "__main__"
feature/reorg-repo-structure
__init__.py
file but failed epically
Next steps:
hab/train.py
's train()
3.7.21
Accomplished:
feature/reorg-repo-structure
train()
with help from https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html
train()
after training is completefeature/reorg-repo-structure
Next steps:
train.py
to check to make sure that the program actually runs and that there aren't any bugs!
3.8.21
Accomplished:
feature/reorg-repo-structure
. Therefore, the code for these features can be reviewed as part of the PR for feature/reorg-repo-structure
Next steps:
3.9.32
Accomplished:
pathlib.Path
pathlib.Path
in a Jupyter Notebook in order to figure out how to save each images' path in an array
.glob('**/*)
to get all of the paths for the files in this directoryHABsDataset
to include the code that I did in Jupyter NotebookHABsDataset
by creating an array of references to the images in __init__
, setting __len__
to be the length of this array, and loading in the actual images in __getitem__
(saves memory by loading them here)HABsDataset
could be very close to a final solution feature/reorg-repo-structure
so it is the most recent versionNext steps:
image = np.array(image.resize((32, 32))) / 255.0
should be broken into two separate transforms or if it should be kept as one transformhabs/data/train_images
and habs/data/test_images
train.py
to check to make sure that the program actually runs and that there aren't any bugs!
3.10.21
Accomplished:
pathlib.Path.suffix
to identify if a file is an image in directory path in dataset.py
dataset.py
using format if x in {x, y, z}
mode
parameter that has the user specify which mode they want the HABsDataset to be in (default = "train")
self.mode
attribute so this value can be referenced throughout HABsDatasethabs/data/train _images
and habs/data/test_images
train.py
in order to align with the above revisionsfeature/reorg-repo-structure
so it is up to date Next steps:
train.py
? save model and and load it in? HABsDataset
and train.py
images
to HABsModelCNN even though no parameters were specified in __init()__
train.py
, fix any bugs that come up during this process, and compare output to original Keras model results3.11.21
3.13.21 and 3.14.21
3.16.21
Accomplished:
image = np.array(image.resize((32, 32))) / 255.0
by using PyTorch transforms
ToTensor()
transform to scale pixel values to be in range [0, 1]transforms.Compose
train_dataset
and test_dataset
in train.py
through HABsDataset transform
parameterfeature/reorg-repo-structure
so it is up to date Next steps:
torch.FloatTensor
type can be used as inputs for the model -> need to convert back to PIL IMAGE or np.array?Why are we passing in argument to model if it wasn't specified in __init__?
train.py
, fix any bugs that come up during this process, and compare output to original Keras model results3.17.21
Accomplished:
Crop
, in transformations.py
transforms.Compose()
before the Rescale()
and ToTensor()
transformsfeature/reorg-repo-structure
so it is up to date Next steps:
3.18.21
Accomplished:
train.py
feature/reorg-repo-structure
so it is up to date Next steps:
torch.FloatTensor
type can be used as inputs for the model -> need to convert back to PIL IMAGE or np.array?Why are we passing in argument to model if it wasn't specified in __init__?
train.py
, fix any bugs that come up during this process, and compare output to original Keras model results3.19.21
Accomplished:
HABsModelCNN
and how it was incorporated in train.py
HABsModelCNN
and was just straight-up using the class. Fixed this problem. Answered the following question: Why are we passing in argument to model if it wasn't specified in __init__?
HABsModelCNN
: habs_net = HABsModelCNN()
habs_net(images)
, the instance's __call__
method is being ran, and the images argument is being passed into this __call__
method:
def _call_impl(self, *input, **kwargs):
...
return result
call : Callable[..., Any] = _call_impl
** Thanks to Stephen for helping me understand how `__call__` works and the benefit of it when I was doing PR for Providence
feature/reorg-repo-structure
branch
Next steps:
torch.FloatTensor
type can be used as inputs for the model -> need to convert back to PIL IMAGE or np.array?train.py
, fix any bugs that come up during this process, and compare output to original Keras model results3.21.21
Accomplished:
https://pytorch.org/docs/stable/_modules/torch/nn/modules/conv.html#Conv2d
https://pytorch.org/docs/stable/tensors.html
Next steps:
3.23.21
Accomplished:
main
because Ty said I could go ahead and merge after I made the specified changesRoadmap
issue3.25.21
Accomplished:
Next steps:
3.27.21
Accomplished:
RotatingFileHandler
handlers
not being recognized??feature/rotating-file-handler
with these changes to remote repoNext steps:
3.26.21
3.30.21
Next steps:
4.2.21
4.3.21
4.4.21
Accomplished:
Next steps:
4.6.21 - 4.13.21
Accomplished:
argparse
to typer
To do:
4.15.21
Accomplished:
transforms
object is None
.
magnitude_increase
an argument for user to pass in.
feature/spike-augmentation-transforms
is not updated with the most recent main
that has the typer
changesNext steps:
main
into feature/spike-augmentation-transforms
or create a fresh branch for all of the changes that I need to make
magnitude_increase
an argument for user- %(message)s
to logger in feature/capture-seeds
4.19.21
Accomplished:
4.21.21
Accomplished:
device
device
4.22.21
Accomplished:
utils
Next steps:
training loop
and test loop
in train.py
4.24.21
Accomplished:
4.25.21
Accomplished:
Next steps:
habs_launchpad
4.26.21
Accomplished:
device
and made PRhabs_launchpad
in Colab based on the bullet points listed aboveNext steps:
4.27.21
Accomplished:
Next steps:
learn rate optimizers
Black
code-formatter with HABs repohabs_launchpad
)4.28.21
Accomplished:
black
and the linter flake8
with a git pre-commit hookblack
and flake8
to the HABs repo (created PR)Next steps:
Tomorrow (5.3.21):
model.train()
?model.eval()
?for epoch in range(epoch):
train_loss = training_lap(...)
val_los = validation_lap(...)
if i % 2000......
5.30.21
5.31.21
6.1.21
non-iterable type None
after epoch 1Week of 6.22.21 - 6.29.21
Accomplished:
outputs.data
and _, predicted = torch.max(outputs.data, 1)
habs_experiment.ipynb
that runs a BRANCH (feature/experiment) from the HABs GitHub repoNext Steps:
Questions:
outputs.data
-> is data an attribute of nn.Module?6.29.21
Accomplished:
feature/two-classes
HABsDataset
to accommodate two classes (bga and non-algae), instead of three (bga, clear, turbid)habs_two_classes.ipynb
feature/two-classes
branch from HABs GitHub remote repomain
branch/versionhabs_google
habs_data \
two_classes \
validation_images \
non_algae\
pic_0
pic_x
bga \
pic_0
pic_x
train_images \
non_algae\
pic_0
pic_x
bga \
pic_0
pic_x
test_images \
non_algae\
pic_0
pic_x
bga \
pic_0
pic_x
three_classes \
validation_images \
bga \
pic_0
pic_x
clear\
pic_0
pic_x
turbid\
pic_0
pic_x
train_images \
bga \
pic_0
pic_x
clear\
pic_0
pic_x
turbid\
pic_0
pic_x
test_images \
bga \
pic_0
pic_x
clear\
pic_0
pic_x
turbid\
pic_0
pic_x
6.30.21
Accomplished:
7.3.21
Accomplished:
feature/experiment
branch in Colab's habs_experiment
notebooktraining_helper.py
evaluate
return a Tuple with 4 values -> [predictions, classifications, total, correct]Main
evaluate
methodMain
Main
to feature/two-classes
branchgit merge origin/main
train
cell in habs_launchpad
, habs_experiment
, and habs_two_classes
with the new log statements
predictions, classifications, total, correct = evaluate(model, test_loader)
logger.info(f"Predicted Values: {predictions}")
logger.info(f"Classifications: {classifications}")
HABsDataset
for going from 3 classes (bga, clear, turbid), down to 2 classes (bga and non-algae)7.4.21
Next Steps:
two_classes
directory
Quickly jot down a few notes of what was accomplished after each work session. This will help keep track of the project's progress. Also include next steps.