Comments (3)
Thanks @hasan7n for reporting this. Will look at it on Friday.
from mlcube.
@hasan7n Ok, so it should be fixed in #348.
Brief description of the cause of the behavior. We've gone through multiple rounds of refactoring of the MLCube command line interface, and at some point in time option descriptions moved to their module (cli
) while deprecated option declarations remained in the __main__.py
file. The secondary cause of this bug was that we updated APIs of most of MLCube CLI commands, but did not do that for the run
command that continued to use the old interface. After updating its API to match APIs of other commands (such as configure
), this bug went away.
The main cause however was the following. The run
command did not expose any arguments for the MLCube parameters (e.g., -Pdocker.cpu_args="--shm-size 1g"
). Turns out that the click
library makes various attempts to parse options/arguments and match them with the long/short aliases of the arguments. The following was hapenning:
- The
-Pdocker.cpu_args="--shm-size 1g"
string is correctly split into name (-Pdocker.cpu_args
) and value (--shm-size 1g
). - The
click
library was trying to match the name against known aliases (long names) of options, and was obviously failing. - Then, it was trying to do fuzzy matching what also was resulting in empty matches.
- At this point in time (I have not spent too much time identifying the exact logic) the
click
library considers the entire string-Pdocker.cpu_args="--shm-size 1g
as multiple short options, that seems to be consistent with other tools, e.g, one can runls -al
which is the same asls -l -a
. So, theclick
library removes the first character (-
) and then iterates one character at a time considering options such as-P
,-d
,-o
etc. and eventually-h
. All options happen to be unknown except the latter, which is the cause forclick
to display help message.
As you correctly mention, when there's no h
, this bug does not manifest itself.
from mlcube.
Associated PR #348 fixed this problem.
from mlcube.
Related Issues (20)
- mlcube using singularity run --nv
- unclear scope for the project - training only, no serving component?
- Updated the dynabench doc to gather requirements and pick out a path forward HOT 1
- Singularity run arguments not working HOT 2
- Add Option to Adjust Hyperparams via Env Vars HOT 1
- Upgrade click to `>=8.0.0,<9.0.0` HOT 7
- SPython incompatible with windows. MLCube fails at import time HOT 1
- MLCube doesn't recognize parameter type on Windows HOT 1
- [Medperf] update cookiecutter for dependency resolution HOT 1
- Singualrity-compatible MLCube templates and examples
- MLCube needs to run docker images using host user credentials (name and group).
- GPUs parameter doesn't seem to be working HOT 3
- Add support for `mlcube --version` CLI command.
- Singularity fails in 0.0.10rc0 HOT 15
- mlcube configure with local docker image
- Run docker image with Singularity fails when providing runner cli args
- Assign CUDA_VISIBLE_DEVICES for Docker when passing GPUs
- change the name of `--mount` arg
- Update OmegaConf version
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 mlcube.