{
"info": {
"author": "S.C. van de Leemput",
"author_email": "silvandeleemput@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Information Analysis",
"Topic :: Scientific/Engineering :: Medical Science Apps.",
"Topic :: Software Development :: Libraries"
],
"description": "======\nMemCNN\n======\n\n.. image:: https://img.shields.io/circleci/build/github/silvandeleemput/memcnn/master.svg \n :alt: CircleCI - Status master branch\n :target: https://circleci.com/gh/silvandeleemput/memcnn/tree/master\n\n.. image:: https://img.shields.io/docker/cloud/build/silvandeleemput/memcnn.svg\n :alt: Docker - Status\n :target: https://hub.docker.com/r/silvandeleemput/memcnn\n\n.. image:: https://readthedocs.org/projects/memcnn/badge/?version=latest \n :alt: Documentation - Status master branch\n :target: https://memcnn.readthedocs.io/en/latest/?badge=latest\n\n.. image:: https://img.shields.io/codacy/grade/95de32e0d7c54d038611da47e9f0948b/master.svg\n :alt: Codacy - Branch grade\n :target: https://app.codacy.com/project/silvandeleemput/memcnn/dashboardgit\n\n.. image:: https://img.shields.io/codecov/c/gh/silvandeleemput/memcnn/master.svg \n :alt: Codecov - Status master branch\n :target: https://codecov.io/gh/silvandeleemput/memcnn\n\n.. image:: https://img.shields.io/pypi/v/memcnn.svg\n :alt: PyPI - Latest release\n :target: https://pypi.python.org/pypi/memcnn\n\n.. image:: https://img.shields.io/conda/vn/silvandeleemput/memcnn?label=anaconda\n :alt: Conda - Latest release\n :target: https://anaconda.org/silvandeleemput/memcnn\n\n.. image:: https://img.shields.io/pypi/implementation/memcnn.svg \n :alt: PyPI - Implementation\n :target: https://pypi.python.org/pypi/memcnn\n\n.. image:: https://img.shields.io/pypi/pyversions/memcnn.svg \n :alt: PyPI - Python version\n :target: https://pypi.python.org/pypi/memcnn\n\n.. image:: https://img.shields.io/github/license/silvandeleemput/memcnn.svg \n :alt: GitHub - Repository license\n :target: https://github.com/silvandeleemput/memcnn/blob/master/LICENSE.txt\n\nA `PyTorch `__ framework for developing memory-efficient invertible neural networks.\n\n* Free software: `MIT license `__ (please cite our work if you use it)\n* Documentation: https://memcnn.readthedocs.io.\n* Installation: https://memcnn.readthedocs.io/en/latest/installation.html\n\nFeatures\n--------\n\n* Simple `ReversibleBlock` wrapper class to wrap and convert arbitrary PyTorch Modules into invertible versions.\n* Simple switching between `additive` and `affine` invertible coupling schemes and different implementations.\n* Simple toggling of memory saving by setting the `keep_input` property of the `ReversibleBlock`.\n* Training and evaluation code for reproducing RevNet experiments using MemCNN.\n* CI tests for Python v2.7 and v3.6 and torch v0.4, v1.0, and v1.1 with good code coverage.\n\nExample usage: ReversibleBlock\n------------------------------\n\n.. code:: python\n\n import torch\n import torch.nn as nn\n import memcnn\n\n\n # define a new torch Module with a sequence of operations: Relu o BatchNorm2d o Conv2d\n class ExampleOperation(nn.Module):\n def __init__(self, channels):\n super(ExampleOperation, self).__init__()\n self.seq = nn.Sequential(\n nn.Conv2d(in_channels=channels, out_channels=channels,\n kernel_size=(3, 3), padding=1),\n nn.BatchNorm2d(num_features=channels),\n nn.ReLU(inplace=True)\n )\n\n def forward(self, x):\n return self.seq(x)\n\n # generate some random input data (batch_size, num_channels, y_elements, x_elements)\n X = torch.rand(2, 10, 8, 8)\n\n # application of the operation(s) the normal way\n model_normal = ExampleOperation(channels=10)\n Y = model_normal(X)\n\n # application of the operation(s) turned invertible using the reversible block\n F = ExampleOperation(channels=10 // 2)\n model_invertible = memcnn.ReversibleBlock(F, coupling='additive', keep_input=True, keep_input_inverse=True)\n Y2 = model_invertible(X)\n\n # The input (X) can be approximated (X2) by applying the inverse method of the reversible block on Y2\n X2 = model_invertible.inverse(Y2)\n\nRun PyTorch Experiments\n-----------------------\n\nAfter installing MemCNN run:\n\n.. code:: bash\n\n python -m memcnn.train [MODEL] [DATASET] [--fresh] [--no-cuda]\n\n* Available values for ``DATASET`` are ``cifar10`` and ``cifar100``.\n* Available values for ``MODEL`` are ``resnet32``, ``resnet110``, ``resnet164``, ``revnet38``, ``revnet110``, ``revnet164``\n* Use the ``--fresh`` flag to remove earlier experiment results.\n* Use the ``--no-cuda`` flag to train on the CPU rather than the GPU through CUDA.\n\nDatasets are automatically downloaded if they are not available.\n\nWhen using Python 3.* replace the ``python`` directive with the appropriate Python 3 directive. For example when using the MemCNN docker image use ``python3.6``.\n\nWhen MemCNN was installed using `pip` or from sources you might need to setup a configuration file before running this command.\nRead the corresponding section about how to do this here: https://memcnn.readthedocs.io/en/latest/installation.html\n\n\n\n",
"description_content_type": "text/x-rst",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://pypi.python.org/pypi/memcnn/",
"keywords": "memcnn invertible PyTorch",
"license": "LICENSE.txt",
"maintainer": "",
"maintainer_email": "",
"name": "memcnn",
"package_url": "https://pypi.org/project/memcnn/",
"platform": "",
"project_url": "https://pypi.org/project/memcnn/",
"project_urls": {
"Homepage": "http://pypi.python.org/pypi/memcnn/"
},
"release_url": "https://pypi.org/project/memcnn/1.0.0/",
"requires_dist": [
"Pillow",
"numpy",
"SimpleITK",
"tensorboardX (==1.4)",
"tensorflow (>=1.11.0)",
"torch (>=0.4.0)",
"torchvision",
"tqdm"
],
"requires_python": "",
"summary": "A PyTorch framework for developing memory efficient deep invertible networks.",
"version": "1.0.0"
},
"last_serial": 5596407,
"releases": {
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "e997a23f42301f35a22e21b17265e6f2",
"sha256": "bcd9524786089c6937f465c147da542e85411e814e4a98c0190dd0d8c17d6b5d"
},
"downloads": -1,
"filename": "memcnn-0.2.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e997a23f42301f35a22e21b17265e6f2",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 5712,
"upload_time": "2019-06-06T08:50:37",
"url": "https://files.pythonhosted.org/packages/6c/88/0db1f9c1fd0a7f21384c829d6fc99a1b0967b548ab994564b3e7f001f1ec/memcnn-0.2.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5a45b8e710c9e4e708622b69f3423d0c",
"sha256": "61274cf6678b1dbb76b42c1158bfd0d9376e812fd7c6ef388d83fa27b5ce97b5"
},
"downloads": -1,
"filename": "memcnn-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "5a45b8e710c9e4e708622b69f3423d0c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11351,
"upload_time": "2019-06-06T08:50:38",
"url": "https://files.pythonhosted.org/packages/ab/bb/4e01f3a42632ec0c981c1ff5eeb78ff6884dfabd2d66ee773447be75e280/memcnn-0.2.1.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "b740f2f447a3d3a8eef96157f6869c6a",
"sha256": "580db99b2940efd846ba9fdf50d5bee93c54036f553d371e28c06da89484f06b"
},
"downloads": -1,
"filename": "memcnn-0.3.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "b740f2f447a3d3a8eef96157f6869c6a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 40591,
"upload_time": "2019-07-09T12:45:56",
"url": "https://files.pythonhosted.org/packages/b4/e2/8d1bb9714bb620ea991a7fa773b039e80a1deeed616a1077228f9b4ca5ef/memcnn-0.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "df6d47d3df9653e564a83ad5d03afdc5",
"sha256": "0d93fd55223e964c7f874a03d8c89a3f287dbd68301f6a6bee95ae3f8b71f55c"
},
"downloads": -1,
"filename": "memcnn-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "df6d47d3df9653e564a83ad5d03afdc5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 37284,
"upload_time": "2019-07-09T12:45:58",
"url": "https://files.pythonhosted.org/packages/4c/b5/8eedbf416ec9133d08d52ae62d2aa35c88fac713fa8d549450f8261d9ec2/memcnn-0.3.0.tar.gz"
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "0b2ae637e66ea48265c6717499cdedc6",
"sha256": "e72499aa635df91b827ef951586c64aef0f736db3e9872707a37daf582f82e71"
},
"downloads": -1,
"filename": "memcnn-0.3.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0b2ae637e66ea48265c6717499cdedc6",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 41759,
"upload_time": "2019-07-09T20:31:48",
"url": "https://files.pythonhosted.org/packages/f9/19/ee9a508c4262ba2664f86c0aaf9472b0a341c89324791c4423d3e0aba0cf/memcnn-0.3.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "27ec3665ef9d8a59232ed25e1b6b617f",
"sha256": "52275ad4ffb739db3f158e1c64623d7b126444f69805ce0218caebb2545d4ef4"
},
"downloads": -1,
"filename": "memcnn-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "27ec3665ef9d8a59232ed25e1b6b617f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38823,
"upload_time": "2019-07-09T20:31:49",
"url": "https://files.pythonhosted.org/packages/9d/b9/1d110fec039fe199dd57da33f4d370b844c61b5d14a3c0975d59845b650d/memcnn-0.3.1.tar.gz"
}
],
"0.3.2": [
{
"comment_text": "",
"digests": {
"md5": "1d07a74b2769d7f660da9ac806445768",
"sha256": "75d761177f5b1eb5652ed1e8b2899369889a0ea403fd75eeca405d5c9d26af9d"
},
"downloads": -1,
"filename": "memcnn-0.3.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "1d07a74b2769d7f660da9ac806445768",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 42082,
"upload_time": "2019-07-10T16:05:37",
"url": "https://files.pythonhosted.org/packages/af/b8/9b60a9b4e0068b1a93d8955d892fe8c412eb9b92905dee44523263c39e96/memcnn-0.3.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5c9f628963cf527ccdc24fa4c558d6c8",
"sha256": "35a4d3f3981d7cf1b2d4421335813222a61c1f28196d99a3882b58d489a2c267"
},
"downloads": -1,
"filename": "memcnn-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "5c9f628963cf527ccdc24fa4c558d6c8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 39743,
"upload_time": "2019-07-10T16:05:39",
"url": "https://files.pythonhosted.org/packages/ab/29/dc1c0c534554bd22cbf1649df3be3ce7a8ae407e5600c77a21ea48783c17/memcnn-0.3.2.tar.gz"
}
],
"0.3.3": [
{
"comment_text": "",
"digests": {
"md5": "d766ac91f7f1eea59ad20a13dfe9b312",
"sha256": "f542c48e7f9054982d28b404878198003d85a98b1437a96b176ec7ba65fbde47"
},
"downloads": -1,
"filename": "memcnn-0.3.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "d766ac91f7f1eea59ad20a13dfe9b312",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 42080,
"upload_time": "2019-07-10T22:12:37",
"url": "https://files.pythonhosted.org/packages/95/17/f5ce7d0f827604c20810411408a39018a29c58c82211371997f5b1d170b4/memcnn-0.3.3-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2e356da28664d2f9604f54aaa7a4c64b",
"sha256": "b362aa86e690077e3ae12f9898f1f6f4d26f377a4aef3c54cf690f0ff7f57443"
},
"downloads": -1,
"filename": "memcnn-0.3.3.tar.gz",
"has_sig": false,
"md5_digest": "2e356da28664d2f9604f54aaa7a4c64b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 39897,
"upload_time": "2019-07-10T22:12:39",
"url": "https://files.pythonhosted.org/packages/cf/df/e560aa511dc799b503d813d8f0e4670990efe12afe602fa30ed4bafe2a32/memcnn-0.3.3.tar.gz"
}
],
"0.3.4": [
{
"comment_text": "",
"digests": {
"md5": "252c5026798e2d3592863028adce69bd",
"sha256": "0a6cd834f970412936fd315e970d9ea791ecd411242d4a31b9f5b13c5e3caede"
},
"downloads": -1,
"filename": "memcnn-0.3.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "252c5026798e2d3592863028adce69bd",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 42748,
"upload_time": "2019-07-26T11:29:45",
"url": "https://files.pythonhosted.org/packages/73/49/fbb7ddeb92d01276f0d0c324be67b560038971a47db352f70b94095ffb2b/memcnn-0.3.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "33e60893e7ae5f54c7d7559deb33f9dc",
"sha256": "510ef21d3b5ca336238ad79605bfe22a3ec63074a290e80f398b8d8e7765dd32"
},
"downloads": -1,
"filename": "memcnn-0.3.4.tar.gz",
"has_sig": false,
"md5_digest": "33e60893e7ae5f54c7d7559deb33f9dc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40501,
"upload_time": "2019-07-26T11:29:47",
"url": "https://files.pythonhosted.org/packages/6c/78/914ad865a71d5383d165012149851f7f31dfcecbe19633ee0954bafc8c2e/memcnn-0.3.4.tar.gz"
}
],
"0.3.5": [
{
"comment_text": "",
"digests": {
"md5": "1ca33779e78f6572ebe149751273aba9",
"sha256": "12753ac81acabb77a0b5b0758a4e139864baa2d208404d794e5c3aabb75a9f39"
},
"downloads": -1,
"filename": "memcnn-0.3.5-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "1ca33779e78f6572ebe149751273aba9",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 42784,
"upload_time": "2019-07-28T13:37:32",
"url": "https://files.pythonhosted.org/packages/3e/b0/3fad227e3bb438e370bd6004f8551dd2ce2cb65d48ec4bb311195f48040d/memcnn-0.3.5-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b3b148954893a6f29efbe949889976d8",
"sha256": "6f8d5763bae7002d5bb121fac8baf2fc23a2572cf4890e34327e9421e0519df2"
},
"downloads": -1,
"filename": "memcnn-0.3.5.tar.gz",
"has_sig": false,
"md5_digest": "b3b148954893a6f29efbe949889976d8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 42333,
"upload_time": "2019-07-28T13:37:34",
"url": "https://files.pythonhosted.org/packages/11/b4/49d9191b0aab618551728901f0af50babfb80e450cd3cc5b6a9642c03c68/memcnn-0.3.5.tar.gz"
}
],
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "4b5122d391c71ea2f977fde2f295a9c7",
"sha256": "23d16f077964a59ac9198917a3a7975eadc5f256638fa1075680aa8c1ae8008d"
},
"downloads": -1,
"filename": "memcnn-1.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4b5122d391c71ea2f977fde2f295a9c7",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 42784,
"upload_time": "2019-07-28T18:52:33",
"url": "https://files.pythonhosted.org/packages/60/e9/6111141773bce355061744c0f7b40528a7778ec0e9f395285390b6cb132b/memcnn-1.0.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "23ae96bc73478b3ee9aa03b82bc3cd06",
"sha256": "1c2f45b531307b6142339568e8a493f0e309ff76eb6136cd9b6987c47fa9b887"
},
"downloads": -1,
"filename": "memcnn-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "23ae96bc73478b3ee9aa03b82bc3cd06",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40804,
"upload_time": "2019-07-28T18:52:34",
"url": "https://files.pythonhosted.org/packages/1a/30/975e162ffba896b8de8c37d20232a0c6cc0fdd82db42f3a7575f7e50f352/memcnn-1.0.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "4b5122d391c71ea2f977fde2f295a9c7",
"sha256": "23d16f077964a59ac9198917a3a7975eadc5f256638fa1075680aa8c1ae8008d"
},
"downloads": -1,
"filename": "memcnn-1.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4b5122d391c71ea2f977fde2f295a9c7",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 42784,
"upload_time": "2019-07-28T18:52:33",
"url": "https://files.pythonhosted.org/packages/60/e9/6111141773bce355061744c0f7b40528a7778ec0e9f395285390b6cb132b/memcnn-1.0.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "23ae96bc73478b3ee9aa03b82bc3cd06",
"sha256": "1c2f45b531307b6142339568e8a493f0e309ff76eb6136cd9b6987c47fa9b887"
},
"downloads": -1,
"filename": "memcnn-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "23ae96bc73478b3ee9aa03b82bc3cd06",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40804,
"upload_time": "2019-07-28T18:52:34",
"url": "https://files.pythonhosted.org/packages/1a/30/975e162ffba896b8de8c37d20232a0c6cc0fdd82db42f3a7575f7e50f352/memcnn-1.0.0.tar.gz"
}
]
}