-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Processor cookiecutter #207
Comments
Rough template for the Dockerfile is available here: |
|
After studying the processor specifications I came up with some changes to the To accommodate most use cases, processors should support one-to-many, many-to-one, and many-to-many file mappings (input -> output). To be complete, processors should support zero-to-many and many-to-zero mappings as well. This feature is currently supported by My proposal is to specify both An example proposal results.json file would look something like the following: [
{
"entity": {
"inputs": ["filenames", ...],
"outputs": ["filenames", ...],
...
},
"metrics": ...,
"error_messages": [
...
]
},
...
]
I have discussed this with Paul and he agrees that this change will probably improve the specification. However, there seem to be some processors which follow the current specification. |
|
I studied the EnvoyAI API, which do some interesting things:
|
Looks good!
I wouldn't make these required, or at least have an option to turn this off. We will want to use this library elsewhere, eg, challenges on grand challenge that take in processors from users, rather than prediction files. |
@jmsmkn I would opt to keep the The The |
…ookiecutter #207 * Added basic lung nodule classification use-case * Added basic BaseProcess class for templating * Added pip-wheel-metadata to .gitignore * Removed required author tag from template Dockerfile and CLI * Made required ticket tag from template optional and non-prompt in CLI
* Added BaseProcess to __init__ * Added bootstrapping of evalutils into template on development option * Fixed some cookiecutter variables and also in the CLI * Added local evalutils injection for Dockerfile when the development option is specified * Fixed bugs with the process.py.j2 template * Inserted memory specifications in /test.sh * Added cli test for test_templates.py
…med code cleanup #207 * Moved bootstrap code from CLI to utils.py * Moved bootstrap calls to post-hooks in templates * Moved convert_line_endings to utils.py * Changed dev distribution directory name to devdist
* Fixed processor template validator spec and processing call * Renamed test_utils.py -> test_scorers.py because it does not test utils.py but scorers.py * Fixed BaseProcess validation, result saving, and case loading * Fixed some docstring in utils.py and added explicit str conversion for file
Additionally shortened docstring in utils.py for flake8 tests
* Processor test files * Removed ground-truth files from processor template * Added candidates_001.csv file to /test for processor template * Adjusted Dockerfile for ground-truth removal * Added optional pattern matching for FileLoaders to solve CSVLoader parsing .mhd files * Changed test.bat / test.sh to cat results.json instead of metrics.json * Fixed file_loaders input for process.py.j2 and various bugs * Fixed BaseProcess and test_templates.py to work until producing results * TODO validate that the results are correct, probably not yet.
* io.py shortend some long lines for flake checking * Added hard test for output of process debugging on Travis * Changed line endings for build.bat and export.bat to Windows format
…rn error. #207 * Reverted io.py back to last edit by James * Removed FileLoaderPattern error. * Removed OrderedDict as file_loaders expected type from BaseProcess and added the index_key parameter instead. * Removed file filtering from io.py and moved it to the BaseProcess file_filters parameter instead. * Modified test_processor.p and process.py.j2 template to reflect the changes.
* Set BaseProcess file_sorter_key to None by default * Removed integers from candidates.csv filenames in template and in testing resource * Modified the test to check for the new files
* Changed output json writing in evalutils.py * Added expected test result.json resource for testing * Modified test_processor.py to include output testing as well * Added more realistic processing in test_processor.py * Updated processor cookiecutter template
What is the status of this issue? The PR was merged but there are probably some things left over. Should we continue in a new issue for these? |
@jmsmkn I think, the main things left to do are:
Since these are addressed in other issues, I think we can close this issue. |
Continued in #246 |
Required features
Processor specifications must describe which input formats are expectedAutomatically switch GPU enabled docker image if req. gpu_count > 0The text was updated successfully, but these errors were encountered: