Giter Site home page Giter Site logo

pyroclast's People

Contributors

dependabot[bot] avatar drkwint avatar ihowell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

pyroclast's Issues

Add Interpretable mixin

The interpretable mixin should provide basic functionality for retrieving data used for basic visualizations. This may be a bad name for the mixin and better names may be discussed here.

Further, the interpretable mixin needs to be tested to ensure we are able to retrieve accurate and usable data.

Implement TrainingStrategy

Implement a system for training an ensemble, mostly for boosting, with different strategies (e.g., layer wise training, e2ebp, or chain training)

Add total accuracy calculations to train and test for ProtoPNet

Is your feature request related to a problem? Please describe.
Want to have access to a decisive number which measures accuracy over the entire train/test set rather than just TB (which is visual, but imprecise).

Describe the solution you'd like
I think it could just be written to command line during the training process.

Implement FeatureClassifier for Prototype

Is your feature request related to a problem? Please describe.
Implement the common.FeatureClassifier mixin for the Prototype class

Describe the solution you'd like
Update the CpVAE class to inherit the mixin class

Error in running boost_resnet on Cifar 10

Errors during running: tensorflow/core/framework/op_kernel.cc:1655] OP_REQUIRES failed at gather_nd_op.cc:47 : Invalid argument: indices[31] = [31, 3] does not index into param shape [1,10]

Ran with: python -m pyroclast.eager_run --alg boost_resnet --dataset cifar10
commit 3a071a2

The network appears to be functioning correctly, and outputs were as expected.

Implement FeatureClassifier interface

Implement the FeatureClassifier interface / mixin. A model extending this base class should break up the model flow into:

  1. Retrieving features. Example: A Conv stack evaluated to find features before passing through dense layer(s).
  2. Classification using features: Once we have the features, actually performing classification.

By splitting up a model into these two sections, we can perform an analysis of the features that make up classification, including usefulness and robustness.

Write a test for CpVAE training

Write a test that ensures that CpVAE will run without error for 3 forward/backward passes on MNIST to always ensure that changes don't break the basic operation of the model.

Implement SmoothGrad

SmoothGrad is a very simple, but effective technique for computing saliency maps. Given an input x, it generates samples around x by adding Gaussian noise and then computing the saliency map on the sample. Then, it averages the saliency maps together.

Wonky Self-Boosting Behavior

COMMIT: 590e7b8

CMD LINE: python -m pyroclast.run

ISSUE:
It looks like something about how the accuracy is calculated is busted. It looks like it should be accurate for the first module, but as soon as the second starts training, it goes to zero
trial_stdout.txt

Make M2's $p(y)$ distribution more general

In particular, we're talking about wanting to use a product of Bernoulli for p(y) rather than a discrete distribution.

To do:

  1. Characterize requirements of a distribution (e.g., reparameterized? etc.)
  2. Add documentation on requirements
  3. Change code to take an input distribution
  4. Provide an example with product Bernoulli

Upgrade the calculation of robustness to use an iterative attack

Currently FeatureClassifier.robustness uses the fast_gradient_method to calculate an adversarial perturbation. This means that the attack sometimes fails to actually work (i.e., decrease the model output it intends to decrease). We should upgrade to an iterative attack that is more reliable.

Use Python Loggers

Problem
We currently use print statements everywhere to show what is happening during training. Print go directly to stdout and can be clobbered in multiprocessing settings and have numerous other issues. Further, there is no way to disable logs in production modes or only show logs that describe errors. There is no granularity in the amount of information presented to you.

Solution
Use Python Logging. Python logging is thread safe and allows for variable information control. Further, I believe that we can output the log levels to different files (not sure on this one).

Implement FeatureClassifier for CpVAE

Is your feature request related to a problem? Please describe.
Implement the common.FeatureClassifier mixin for the CpVAE class

Describe the solution you'd like
Update the CpVAE class to inherit the mixin class

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.