From 20e1c467fdbfc52fe1b83b31f8095c2675b2a816 Mon Sep 17 00:00:00 2001 From: Adrian Hill Date: Mon, 1 Aug 2022 16:47:04 +0200 Subject: [PATCH] Update README and VERSION.md for 2.0.0 release --- .github/ISSUE_TEMPLATE/bug_report.md | 8 +++---- README.md | 13 +++++++++--- VERSION.md | 31 ++++++++++++++++++---------- 3 files changed, 34 insertions(+), 18 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9cec83e7..d944b04d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -28,7 +28,7 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. ### Platform information - - OS: [e.g. Ubuntu 20.04, Windows 10] - - Python version: [e.g. 3.7, 3.8, 3.9] - - iNNvestigate version: [e.g. 1.0.9] - - TensorFlow version: [e.g. 1.15] + - OS: [e.g. Ubuntu 22.04, Windows 10] + - Python version: [e.g. 3.8, 3.9] + - iNNvestigate version: [e.g. 2.0.0] + - TensorFlow version: [e.g. 2.9.1] diff --git a/README.md b/README.md index 694554f6..9c722017 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,16 @@ # [iNNvestigate neural networks!](https://github.com/albermax/innvestigate) [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=iNNvestigate%20neural%20networks!&url=https://github.com/albermax/innvestigate&hashtags=iNNvestigate,artificialintelligence,machinelearning,deeplearning,datascience) +[![Documentation](https://img.shields.io/badge/Documentation-stable-blue.svg)](https://innvestigate.readthedocs.io/en/latest/) [![Build Status](https://github.com/albermax/innvestigate/actions/workflows/ci.yml/badge.svg)](https://github.com/albermax/innvestigate/actions/workflows/ci.yml) -[![Documentation](https://img.shields.io/badge/docs-stable-blue.svg)](https://innvestigate.readthedocs.io/en/latest/) [![PyPI package version](https://img.shields.io/pypi/v/innvestigate)](https://pypi.org/project/innvestigate/) [![GitHub package version](https://img.shields.io/github/v/tag/albermax/innvestigate)](https://github.com/albermax/innvestigate/tags) -[![Keras package version](https://img.shields.io/badge/TensorFlow-^2.7-orange.svg)](https://github.com/albermax/innvestigate) [![License: BSD-2](https://img.shields.io/badge/License-BSD--2-purple.svg)](https://github.com/albermax/innvestigate/blob/master/LICENSE) [![Black](https://img.shields.io/badge/code_style-black-black.svg)](https://github.com/psf/black) +[![Python](https://img.shields.io/pypi/pyversions/innvestigate.svg)](https://badge.fury.io/py/innvestigate) +[![TensorFlow package version](https://img.shields.io/badge/TensorFlow-^2.6-orange.svg)](https://github.com/albermax/innvestigate) + ![Different explanation methods on ImageNet.](https://github.com/albermax/innvestigate/raw/master/examples/images/analysis_grid.png) ## Table of contents @@ -97,7 +99,9 @@ Typically one analyses the neuron with the largest activation in the output laye For example, given a Keras model, one can create a 'gradient' analyzer: ```python +import tensorflow as tf import innvestigate +tf.compat.v1.disable_eager_execution() model = create_keras_model() @@ -125,9 +129,12 @@ Let's look at an example ([code](https://github.com/albermax/innvestigate/blob/m ```python +import tensorflow as tf +import tensorflow.keras.applications.vgg16 as vgg16 +tf.compat.v1.disable_eager_execution() + import innvestigate import innvestigate.utils -import tensorflow.keras.applications.vgg16 as vgg16 # Get model model, preprocess = vgg16.VGG16(), vgg16.preprocess_input diff --git a/VERSION.md b/VERSION.md index 38150a3c..50ecaaa3 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1,14 +1,23 @@ -## Version 1.10.0 -Spring cleaning release in preparation of iNNvestigate 2.0: -- switch setup to Poetry -- adopt `src` layout -- move tests to separate `tests` folder -- format code with Black -- update dependencies to Python 3.7, TF 1.15 and Keras 2.3 -- setup tox - -Backwards compatibility breaking changes: -- remove DeepLIFT +## Version 2.0.0 +iNNvestigate for TensorFlow 2. This is a [major version release](https://semver.org) and therefore breaking backward compatibility. + +Breaking changes: +- update lower dependency bounds to Python 3.8 and TensorFlow 2.6 +- use TensorFlow's Keras instead of deprecated stand-alone Keras +- manual disabling of eager execution is required via `tf.compat.v1.disable_eager_execution()` ([#277](https://github.com/albermax/innvestigate/pull/277)) +- temporarily remove `PatternNet`, `PatternAttribution`, `LRPZIgnoreBias` and `LRPEpsilonIgnoreBias` ([#277](https://github.com/albermax/innvestigate/pull/277)) +- remove DeepLIFT ([#257](https://github.com/albermax/innvestigate/pull/257)) + +Changes for developers: +- switch setup to Poetry ([#257](https://github.com/albermax/innvestigate/pull/257)) +- adopt `src` and `tests` layout ([#257](https://github.com/albermax/innvestigate/pull/257)) +- adopt Black code style ([#247](https://github.com/albermax/innvestigate/pull/247)) +- add linters to dev dependencies ([#257](https://github.com/albermax/innvestigate/pull/257)) +- added type annotations ([#263](https://github.com/albermax/innvestigate/pull/263), [#266](https://github.com/albermax/innvestigate/pull/266), [#277](https://github.com/albermax/innvestigate/pull/277)) +- added reference tests & CI to guarantee identical attributions compared to `v1.0.9` ([#258](https://github.com/albermax/innvestigate/pull/258), [#277](https://github.com/albermax/innvestigate/pull/277)) +- refactor backend ([#263](https://github.com/albermax/innvestigate/pull/263), [#277](https://github.com/albermax/innvestigate/pull/277)) +- refactor analyzers: explicit class attributes, fixes for serialization ([#266](https://github.com/albermax/innvestigate/pull/266), [#277](https://github.com/albermax/innvestigate/pull/277)) +- bug fixes ([#263](https://github.com/albermax/innvestigate/pull/263)) ## Version 1.0.9