Comments (8)
Currently, the .travis.yml
uses three Python images (3.5
, 3.6
, and 3.7
). Should there be three different custom images, one for each of these versions of Python?
from alibi.
I think one could use a single image and manage the different Python versions for CI using virtualenv/conda. That being said, the CI docker image would probably be distinct from a docker image containing alibi
to be used immediately (it would only include a python interpreter, alibi and all its dependencies), in which case it would make sense to have different versions. Were you thinking of the CI or the user facing image?
from alibi.
I was thinking of the CI (speeding up the
- pip install -r requirements/requirements_all.txt
- python -m spacy download en_core_web_md
part)
from alibi.
Yes, that would be the main reason for using a custom image (and we could use it for new builds and releases too). Were you interested in contributing a Dockerfile for this?
from alibi.
I'm interested in attempting this - yes. I was thinking that we could have a Dockerfile of this kind:
FROM python:3.7
COPY requirements/requirements_all.txt ./
RUN pip install -r requirements_all.txt
RUN python -m spacy download en_core_web_md
We could then build a Docker image, push it to DockerHub (e.g. as alibi/alibi-ci:latest), and then using this in the travis yml file as follows:
dist: xenial
language: python
image: alibi/alibi-ci:latest
before_install:
- sudo apt-get install pandoc
script:
- flake8 alibi
- mypy alibi
- travis_wait pytest
- make build_pypi
- make build_docs
after_success:
- codecov
Before I run any of this, I just wanted to check how we would go about such a pull request.
- Is this what you had in mind? At present, I wouldn't know how to manage different Python versions with virtualenv/conda and just a single Docker image, but I can look into it.
- The travis file shouldn't reference a Docker image that's in my name, which is what would happen if I pushed the image. So, should the process be:
- one pull request with new Dockerfile;
- you build the Docker image, and push it to Docker hub, and let me know its tag
- another pull request to update the travis file, referencing the new image
?
from alibi.
So, after having another look at Travis, if I understand correctly then custom build images are not supported out of the box... (travis-ci/travis-ci#7726). One could get around it by doing docker pull
etc. in before_install
and then making sure the tests run inside the image (and inside several virtualenvs separately), but I'm not sure if it's worth the hassle at this point.
from alibi.
I'm inclined to agree. Judging by the last successful travis build:
sudo apt-get install pandoc
takes only 13 secondspip install -r requirements/requirements_all.txt
takes about 2 minutespython -m spacy download en_core_web_md
takes 7 seconds.
By contrast, pytest
takes almost 6 minutes! So, using a custom Docker image to speed up a 2-minute part of a 9-minute process might not be worthwhile.
I'll have a go at caching pip files instead
from alibi.
Closing as seems like the benefits would be minimal from the current setup.
from alibi.
Related Issues (20)
- `KernelShap` and `TreeShap` - improper resetting of the predictor HOT 1
- CFRL library generating counterfactual with same label HOT 3
- `KernelShap` redundant/incorrect API for OHE of the categorical features - grouping vs aggregation by summation
- [BUG] 'TfCounterfactualRLDataset' object has no attribute 'max_m' in line 99 because of a typo in definition line 73 HOT 1
- ALE uses deprecated "np.object" and raises AttributeError HOT 2
- ValueError: operands could not be broadcast together with shapes (1,2) (1,14) HOT 1
- `pd.DataFrame.append` has been deprecated in `2.0` - notebook failures
- `permutation_importance_classification_leave.ipynb` notebook failing HOT 2
- `overview.ipynb` notebook failing HOT 1
- `AnchorBase` coverage update for proposed anchor after computation. HOT 2
- `AnchorBase` test updates following coverage update HOT 1
- Anchor Tabular - KeyError in get_features_index HOT 5
- `typing-extensions` 4.6.0 breakage HOT 1
- Predictor attr not properly cleared when saving HOT 2
- `numba` warnings regarding `nopython` keyword HOT 3
- `PartialDependenceVariance` cannot be saved
- CI failing due to use of `np.int` in `shap` HOT 2
- How to pass parameters to the /api/v1.0/explain using AnchorImage? HOT 2
- `KernelShap` returns no explanations when `link='logit'` and predicted proba is 0 or 1
- RuntimeError: The Session graph is empty. Add operations to the graph before calling run() HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from alibi.