Deep Weakly-Supervised Learning Methods for Classification and Localization in Histology Images: A Survey
. Webpage, PDF
@article{rony2023deep,
title ={Deep Weakly-Supervised Learning Methods for Classification and Localization in Histology Images: A Survey},
author={Rony, J. and Belharbi, S. and Dolz, J. and Ben Ayed, I. and McCaffrey, L. and Granger, E.},
journal = "Machine Learning for Biomedical Imaging",
volume = "2",
year = "2023",
pages = "96--150"
}
Please create a github issue.
Installed methods: - GAP - Max-Pooling - LSE - CAM - HaS - WILDCAT - ACoL - SPG - Deep MIL - PRM - ADL - CutMix - TS-CAM - MAXMIN - NEGEV - GradCAM - GradCAM++ - Smooth-GradCAM++ - LayerCAM - U-Net
shell
pip install torch==1.10.0 -f https://download.pytorch.org/whl/cu111/torch-1.10.0%2Bcu111-cp37-cp37m-linux_x86_64.whl
pip install torchvision==0.11.1 -f https://download.pytorch.org/whl/cu111/torchvision-0.11.1%2Bcu111-cp37-cp37m-linux_x86_64.whl
shell
cdir=$(pwd)
cd dlib/crf/crfwrapper/bilateralfilter
swig -python -c++ bilateralfilter.i
python setup.py install
cd $cdir
cd dlib/crf/crfwrapper/colorbilateralfilter
swig -python -c++ colorbilateralfilter.i
python setup.py install
You find the splits in ./folds.
shell
cudaid=$1
export CUDA_VISIBLE_DEVICES=$cudaid
getfreeport() {
freeport=$(python -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()')
}
export OMP_NUM_THREADS=50
export NCCL_BLOCKING_WAIT=1
plaunch=$(python -c "from os import path; import torch; print(path.join(path.dirname(torch.__file__), 'distributed', 'launch.py'))")
getfreeport
torchrun --nnodes=1 --node_rank=0 --nproc_per_node=1 \
--master_port=$freeport main_wsol.py \ --local_world_size=1 \
--task STD_CL \
--encoder_name resnet50 \
--arch STDClassifier \
--runmode final-mode \
--opt__name_optimizer sgd \
--batch_size 32 \
--eval_checkpoint_type best_localization \
--opt__step_size 250 \
--opt__gamma 0.1 \
--max_epochs 1000 \
--freeze_cl False \
--support_background True \
--method CAM \
--spatial_pooling WGAP \
--dataset GLAS \
--fold 0 \
--cudaid 0 \
--debug_subfolder None \
--amp True \
--opt__lr 0.003 \
--exp_id 11_19_2021_09_32_36_109051__423849
Bumps notebook from 5.7.4 to 6.4.10.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps pillow from 5.4.1 to 9.0.1.
Sourced from pillow's releases.
9.0.1
https://pillow.readthedocs.io/en/stable/releasenotes/9.0.1.html
Changes
- In show_file, use os.remove to remove temporary images. CVE-2022-24303 #6010 [
@radarhere
,@hugovk
]- Restrict builtins within lambdas for ImageMath.eval. CVE-2022-22817 #6009 [radarhere]
9.0.0
https://pillow.readthedocs.io/en/stable/releasenotes/9.0.0.html
Changes
- Restrict builtins for ImageMath.eval() #5923 [
@radarhere
]- Ensure JpegImagePlugin stops at the end of a truncated file #5921 [
@radarhere
]- Fixed ImagePath.Path array handling #5920 [
@radarhere
]- Remove consecutive duplicate tiles that only differ by their offset #5919 [
@radarhere
]- Removed redundant part of condition #5915 [
@radarhere
]- Explicitly enable strip chopping for large uncompressed TIFFs #5517 [
@kmilos
]- Use the Windows method to get TCL functions on Cygwin #5807 [
@DWesl
]- Changed error type to allow for incremental WebP parsing #5404 [
@radarhere
]- Improved I;16 operations on big endian #5901 [
@radarhere
]- Ensure that BMP pixel data offset does not ignore palette #5899 [
@radarhere
]- Limit quantized palette to number of colors #5879 [
@radarhere
]- Use latin1 encoding to decode bytes #5870 [
@radarhere
]- Fixed palette index for zeroed color in FASTOCTREE quantize #5869 [
@radarhere
]- When saving RGBA to GIF, make use of first transparent palette entry #5859 [
@radarhere
]- Pass SAMPLEFORMAT to libtiff #5848 [
@radarhere
]- Added rounding when converting P and PA #5824 [
@radarhere
]- Improved putdata() documentation and data handling #5910 [
@radarhere
]- Exclude carriage return in PDF regex to help prevent ReDoS #5912 [
@radarhere
]- Image.NONE is only used for resampling and dithers #5908 [
@radarhere
]- Fixed freeing pointer in ImageDraw.Outline.transform #5909 [
@radarhere
]- Add Tidelift alignment action and badge #5763 [
@aclark4life
]- Replaced further direct invocations of setup.py #5906 [
@radarhere
]- Added ImageShow support for xdg-open #5897 [
@m-shinder
]- Fixed typo #5902 [
@radarhere
]- Switched from deprecated "setup.py install" to "pip install ." #5896 [
@radarhere
]- Support 16-bit grayscale ImageQt conversion #5856 [
@cmbruns
]- Fixed raising OSError in _safe_read when size is greater than SAFEBLOCK #5872 [
@radarhere
]- Convert subsequent GIF frames to RGB or RGBA #5857 [
@radarhere
]- WebP: Fix memory leak during decoding on failure #5798 [
@ilai-deutel
]- Do not prematurely return in ImageFile when saving to stdout #5665 [
@infmagic2047
]- Added support for top right and bottom right TGA orientations #5829 [
@radarhere
]- Corrected ICNS file length in header #5845 [
@radarhere
]- Block tile TIFF tags when saving #5839 [
@radarhere
]- Added line width argument to ImageDraw polygon #5694 [
@radarhere
]- Do not redeclare class each time when converting to NumPy #5844 [
@radarhere
]- Only prevent repeated polygon pixels when drawing with transparency #5835 [
@radarhere
]
... (truncated)
Sourced from pillow's changelog.
9.0.1 (2022-02-03)
In show_file, use os.remove to remove temporary images. CVE-2022-24303 #6010 [radarhere, hugovk]
Restrict builtins within lambdas for ImageMath.eval. CVE-2022-22817 #6009 [radarhere]
9.0.0 (2022-01-02)
Restrict builtins for ImageMath.eval(). CVE-2022-22817 #5923 [radarhere]
Ensure JpegImagePlugin stops at the end of a truncated file #5921 [radarhere]
Fixed ImagePath.Path array handling. CVE-2022-22815, CVE-2022-22816 #5920 [radarhere]
Remove consecutive duplicate tiles that only differ by their offset #5919 [radarhere]
Improved I;16 operations on big endian #5901 [radarhere]
Limit quantized palette to number of colors #5879 [radarhere]
Fixed palette index for zeroed color in FASTOCTREE quantize #5869 [radarhere]
When saving RGBA to GIF, make use of first transparent palette entry #5859 [radarhere]
Pass SAMPLEFORMAT to libtiff #5848 [radarhere]
Added rounding when converting P and PA #5824 [radarhere]
Improved putdata() documentation and data handling #5910 [radarhere]
Exclude carriage return in PDF regex to help prevent ReDoS #5912 [hugovk]
Fixed freeing pointer in ImageDraw.Outline.transform #5909 [radarhere]
... (truncated)
6deac9e
9.0.1 version bumpc04d812
Update CHANGES.rst [ci skip]4fabec3
Added release notes for 9.0.102affaa
Added delay after opening image with xdg-openca0b585
Updated formatting427221e
In show_file, use os.remove to remove temporary imagesc930be0
Restrict builtins within lambdas for ImageMath.eval75b69dd
Dont need to pin for GHAcd938a7
Autolink CWE numbers with sphinx-issues2e9c461
Add CVE IDsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps ipython from 7.2.0 to 7.16.3.
d43c7c7
release 7.16.35fa1e40
Merge pull request from GHSA-pq7m-3gw7-gq5x8df8971
back to dev9f477b7
release 7.16.2138f266
bring back release helper from master branch5aa3634
Merge pull request #13341 from meeseeksmachine/auto-backport-of-pr-13335-on-7...bcae8e0
Backport PR #13335: What's new 7.16.28fcdcd3
Pin Jedi to <0.17.2.2486838
release 7.16.120bdc6f
fix conda buildDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps dask from 1.1.1 to 2021.10.0.
97494ff
bump version to 2021.10.0ac01ddc
da.store
to create well-formed HighLevelGraph
(#8261)9f0f002
CI: force nightly pyarrow in the upstream build (#8281)a544670
Remove chest
(#8279)6dbf095
Skip doctests if optional dependencies are not installed (#8258)f424669
Update tmpdir
and tmpfile
context manager docstrings (#8270)5b63301
Unregister callbacks in doctests (#8276)38fbcf1
Fix typo in docs (#8277)98fed9b
Stale label github action (#8244)7b1f306
Client-shutdown method appears twice (#8273)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps pygments from 2.3.1 to 2.7.4.
Sourced from pygments's releases.
2.7.4
Updated lexers:
Fix infinite loop in SML lexer (#1625)
Fix backtracking string regexes in JavaScript/TypeScript, Modula2 and many other lexers (#1637)
Limit recursion with nesting Ruby heredocs (#1638)
Fix a few inefficient regexes for guessing lexers
Fix the raw token lexer handling of Unicode (#1616)
Revert a private API change in the HTML formatter (#1655) -- please note that private APIs remain subject to change!
Fix several exponential/cubic-complexity regexes found by Ben Caller/Doyensec (#1675)
Fix incorrect MATLAB example (#1582)
Thanks to Google's OSS-Fuzz project for finding many of these bugs.
2.7.3
... (truncated)
Sourced from pygments's changelog.
Version 2.7.4
(released January 12, 2021)
Updated lexers:
Fix infinite loop in SML lexer (#1625)
Fix backtracking string regexes in JavaScript/TypeScript, Modula2 and many other lexers (#1637)
Limit recursion with nesting Ruby heredocs (#1638)
Fix a few inefficient regexes for guessing lexers
Fix the raw token lexer handling of Unicode (#1616)
Revert a private API change in the HTML formatter (#1655) -- please note that private APIs remain subject to change!
Fix several exponential/cubic-complexity regexes found by Ben Caller/Doyensec (#1675)
Fix incorrect MATLAB example (#1582)
Thanks to Google's OSS-Fuzz project for finding many of these bugs.
Version 2.7.3
(released December 6, 2020)
... (truncated)
4d555d0
Bump version to 2.7.4.fc3b05d
Update CHANGES.ad21935
Revert "Added dracula theme style (#1636)"e411506
Prepare for 2.7.4 release.275e34d
doc: remove Perl 6 ref2e7e8c4
Fix several exponential/cubic complexity regexes found by Ben Caller/Doyenseceb39c43
xquery: fix pop from empty stack2738778
fix coding style in test_analyzer_lexer02e0f09
Added 'ERROR STOP' to fortran.py keywords. (#1665)c83fe48
support added for css variables (#1633)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps jinja2 from 2.10 to 2.11.3.
Sourced from jinja2's releases.
2.11.3
This contains a fix for a speed issue with the
urlize
filter.urlize
is likely to be called on untrusted user input. For certain inputs some of the regular expressions used to parse the text could take a very long time due to backtracking. As part of the fix, the email matching became slightly stricter. The various speedups apply tourlize
in general, not just the specific input cases.
- PyPI: https://pypi.org/project/Jinja2/2.11.3/
- Changes: https://jinja.palletsprojects.com/en/2.11.x/changelog/#version-2-11-3
2.11.2
2.11.1
This fixes an issue in async environment when indexing the result of an attribute lookup, like
{{ data.items[1:] }}
.2.11.0
- Changes: https://jinja.palletsprojects.com/en/2.11.x/changelog/#version-2-11-0
- Blog: https://palletsprojects.com/blog/jinja-2-11-0-released/
- Twitter: https://twitter.com/PalletsTeam/status/1221883554537230336
This is the last version to support Python 2.7 and 3.5. The next version will be Jinja 3.0 and will support Python 3.6 and newer.
2.10.3
2.10.2
2.10.1
Sourced from jinja2's changelog.
Version 2.11.3
Released 2021-01-31
- Improve the speed of the
urlize
filter by reducing regex backtracking. Email matching requires a word character at the start of the domain part, and only word characters in the TLD. :pr:1343
Version 2.11.2
Released 2020-04-13
- Fix a bug that caused callable objects with
__getattr__
, like :class:~unittest.mock.Mock
to be treated as a :func:contextfunction
. :issue:1145
- Update
wordcount
filter to trigger :class:Undefined
methods by wrapping the input in :func:soft_str
. :pr:1160
- Fix a hang when displaying tracebacks on Python 32-bit. :issue:
1162
- Showing an undefined error for an object that raises
AttributeError
on access doesn't cause a recursion error. :issue:1177
- Revert changes to :class:
~loaders.PackageLoader
from 2.10 which removed the dependency on setuptools and pkg_resources, and added limited support for namespace packages. The changes caused issues when using Pytest. Due to the difficulty in supporting Python 2 and :pep:451
simultaneously, the changes are reverted until 3.0. :pr:1182
- Fix line numbers in error messages when newlines are stripped. :pr:
1178
- The special
namespace()
assignment object in templates works in async environments. :issue:1180
- Fix whitespace being removed before tags in the middle of lines when
lstrip_blocks
is enabled. :issue:1138
- :class:
~nativetypes.NativeEnvironment
doesn't evaluate intermediate strings during rendering. This prevents early evaluation which could change the value of an expression. :issue:1186
Version 2.11.1
Released 2020-01-30
- Fix a bug that prevented looking up a key after an attribute (
{{ data.items[1:] }}
) in an async template. :issue:1141
... (truncated)
cf21539
release version 2.11.315ef8f0
Merge pull request #1343 from pallets/urlize-speedupef658dc
speed up urlize matchingeeca0fe
Merge pull request #1207 from mhansen/patch-12dd7691
Merge pull request #1209 from mhansen/patch-34892940
do_dictsort: update example ready to copy/paste7db7d33
api.rst: bugfix in docs, import PackageLoader9ec465b
fix changelog header737a4cd
release version 2.11.2179df6b
Merge pull request #1190 from pallets/native-evalDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
PhD student at ÉTS (École de Technologie Supérieure - Montréal, Canada) in machine learning and computer vision.
GitHub Repository