{"id":16012500,"url":"https://github.com/cainmagi/mdnt","last_synced_at":"2025-10-05T21:49:53.372Z","repository":{"id":138654532,"uuid":"177886885","full_name":"cainmagi/MDNT","owner":"cainmagi","description":"Modern Deep Network Toolkits for Tensorflow-Keras. This is a extension for newest tensorflow 1.x.","archived":false,"fork":false,"pushed_at":"2020-08-30T21:08:59.000Z","size":2885,"stargazers_count":12,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T11:51:28.051Z","etag":null,"topics":["adabound","auto-encoder","cnn","deep-learning","deep-neural-networks","extension","keras","keras-tensorflow","python","python-library","python3","python36","swats","tensorflow","tensorflow-keras","toolbox","toolkit"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cainmagi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-27T00:00:51.000Z","updated_at":"2021-03-04T16:27:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"8c7195d7-57fc-4e6a-86d2-d5d38335c4f2","html_url":"https://github.com/cainmagi/MDNT","commit_stats":{"total_commits":80,"total_committers":1,"mean_commits":80.0,"dds":0.0,"last_synced_commit":"4affd8a83698ce6786c04dddacdcf7415f8c5f90"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cainmagi/MDNT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cainmagi%2FMDNT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cainmagi%2FMDNT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cainmagi%2FMDNT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cainmagi%2FMDNT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cainmagi","download_url":"https://codeload.github.com/cainmagi/MDNT/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cainmagi%2FMDNT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278526244,"owners_count":26001325,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adabound","auto-encoder","cnn","deep-learning","deep-neural-networks","extension","keras","keras-tensorflow","python","python-library","python3","python36","swats","tensorflow","tensorflow-keras","toolbox","toolkit"],"created_at":"2024-10-08T14:03:43.313Z","updated_at":"2025-10-05T21:49:53.349Z","avatar_url":"https://github.com/cainmagi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Modern Deep Network Toolkits for Tensorflow-Keras\n\nWe proudly present our newest produce, a totally well-defined extension for Tensorflow-Keras users!\n\n## Documentation\n\nStill not available now, will implement in the future.\n\n## Progress\n\nNow we have such progress on the semi-product:\n\n- [x] optimzers:\n    - [x] Manually switched optimizers (`Adam2SGD` and `NAdam2NSGD`).\n    - [x] Automatically switched optimizer (`SWATS`).\n    - [x] Advanced adaptive optimizers ( `Adabound`, `Nadabound` and `MNadam` supporting `amsgrad`).\n    - [x] Wrapped default optimizers.\n- [x] layers:\n    - [x] Ghost layer (used to construct trainable input layer).\n    - [x] Tied dense layer for the symmetric autoencoder.\n    - [x] Extended dropout and noise layers.\n    - [x] Extended activation layers.\n    - [x] Extended normalization layers.\n    - [x] Group convolutional layers.\n    - [x] Modern convolutional layers (support group convolution).\n    - [x] Modern transposed convolutional layers (support group convolution).\n    - [x] Tied (trivial) transposed convolutional layers for the symmetric autoencoder.\n    - [x] Residual layers (or blocks) and their transposed versions.\n    - [x] ResNeXt layers (or blocks) and their transposed versions.\n    - [x] Inception-v4 layers (or blocks) and their transposed versions.\n    - [x] InceptionRes-v2 layers (or blocks) and their transposed versions.\n    - [x] InceptionPlus layers (or blocks) and their transposed versions.\n    - [x] External interface for using generic python function.\n    - [x] Droupout method options for all avaliable modern layers.\n- [ ] data:\n    - [x] Basic h5py (HDF5) IO handles.\n    - [ ] Basic SQLite IO handles.\n    - [ ] Basic Bcolz IO handles.\n    - [ ] Basic CSV IO handles.\n    - [ ] Basic JSON IO handles.\n    - [ ] Data parsing utilities.\n- [ ] estimators:\n    - [ ] VGG16\n    - [ ] U-Net\n    - [ ] ResNet\n- [x] functions:\n    - [x] (loss):    Lovasz loss for IoU\n    - [x] (loss):    Linear interpolated loss for IoU\n    - [x] (metrics): signal-to-noise ratio (SNR and PSNR)\n    - [x] (metrics): Pearson correlation coefficient\n    - [x] (metrics): IoU / Jaccard index\n- [ ] utilities:\n    - [x] Revised save and load model functions.\n    - [ ] Beholder plug-in callback.\n    - [x] Revised ModelCheckpoint callback.\n    - [x] LossWeightsScheduler callback (for changing the loss weights during the training).\n    - [x] OptimizerSwitcher callback (for using manually switched optimizers).\n    - [x] ModelWeightsReducer callback (parameter decay strategy including L1 decay and L2 decay).\n    - [x] Extended data visualization tools.\n    - [x] Tensorboard log file parser.\n\n## Demos\n\nCheck the branch [`demos`][brch-demos] to learn more details.\n\n## Update records\n\n### 0.79 @ 02/10/2020\n\n1. Finish H5Converter  `H5Converter` in `.data`.\n\n### 0.78-b @ 12/05/2019\n\n1. Fix some bugs and add features in `.utilities.draw`.\n2. Add `webfiles.zip` for `.utilities.tboard`.\n3. Fix a small bug in `.utilities`.\n\n### 0.78 @ 11/27/2019\n\n1. Enhance the `save_model`/`load_model` for supportting storing/recovering customized loss/metric class.\n2. Finish the submodule `.utilities.draw` for providing extended visualizations.\n3. Finish the submodule `.utilities.tboard` for providing extended tensorboard interfaces.\n4. Fix some bugs.\n\n### 0.73-b @ 10/27/2019\n\n1. Let `.save_model` support compression.\n2. Revise the optional arguments for `RestrictSub` in `.layers`.\n\n### 0.73 @ 10/24/2019\n\n1. Fix a bug for `H5GCombiner` in `.data` when adding more parsers.\n2. Finish `H5VGParser` in `.data`, this parser is used for splitting validation set from a dataset.\n3. Finish `ExpandDims` in `.layers`, it is a layer version of `tf.expand_dims`.\n4. Enable `ModelCheckpoint` in `.utilities.callbacks` to support the option for not saving optimizer.\n\n### 0.72 @ 10/22/2019\n\n1. Fix a bug for serializing `Ghost` in `.layers`.\n2. Finish activation layers in `.layers`, including `Slice`, `Restrict` and `RestrictSub`.\n\n### 0.70 @ 10/15/2019\n\n1. Let `.save_model`/`.load_model` supports storing/recovering variable loss weights.\n2. Finish `LossWeightsScheduler` in `.utilities.callbacks`.\n\n### 0.69-b @ 10/07/2019\n\nEnable the `H5SupSaver` in `.data` to add more data to an existed file.\n    \n### 0.69 @ 09/10/2019\n\nEnable the `H5SupSaver` in `.data` to expand if data is dumped in series.\n\n### 0.68 @ 06/27/2019\n\n1. Finish `MNadam`, `Adabound` and `Nadabound` in `.optimizers`.\n2. Slightly change `.optimizers.mixture`.\n3. Change the quick interface in `.optimizers`.\n\n### 0.64-b @ 06/26/2019\n\n1. Finish the demo version for `SWATS` in `.optimizers`. Need further tests.\n2. Fix a small bug for `.load_model`.\n3. Change the warning backend to tensorflow version.\n\n### 0.64 @ 06/24/2019\n\n1. Finish `ModelWeightsReducer` in `.utilities.callbacks`.\n2. Finish `Ghost` in `.layers`.\n3. Fix small bugs.\n\n### 0.63 @ 06/23/2019\n\n1. Fix the bugs of manually switched optimizers in `.optimizers.` Now they require to be used with a callback or switch the phase by `switch()`.\n2. Add a plain momentum SGD optimizer to fast interface in `.optimizers`.\n3. Finish `OptimizerSwitcher` in `.utilities.callbacks`. It is used to control the phase of the manually swtiched optimizers.\n4. Improve the efficiency for `Adam2SGD` and `NAdam2NSGD` in `.optimizers`.\n\n### 0.62 @ 06/21/2019\n\n1. Finish the manually switched optimizers in `.optimizers`: `Adam2SGD` and `NAdam2NSGD`. Both of them supports amsgrad mode.\n2. Adjust the fast interface `.optimizers.optimizer`. Now it supports 2 more tensorflow based optimizers and the default momentum of Nesterov SGD optimizer is changed to 0.9.\n\n### 0.60-b @ 06/20/2019\n\n1. Fix some bugs in `.layers.conv` and `.layers.unit`.\n2. Remove the normalization layer from all projection branches in `.layers.residual` and `.layers.inception`.\n\n### 0.60 @ 06/19/2019\n\n1. Support totally new `save_model` and `load_model` APIs in `.utilites`.\n2. Finish `ModelCheckpoint` in `.utilities.callbacks`.\n\n### 0.56 @ 06/13/2019\n\nFinish `losses.linear_jaccard_index`, `losses.lovasz_jaccard_loss`, `metrics.signal_to_noise`, `metrics.correlation`, `metrics.jaccard_index` in `.functions` (may require tests in the future).\n\n### 0.54 @ 06/12/2019\n\n1. Add dropout options to all advanced blocks (including residual, ResNeXt, inception, incept-res and incept-plus).\n2. Strengthen the compatibility.\n3. Fix minor bugs for spatial dropout in `0.50-b`.\n4. Thanks to GOD! `.layers` has been finished, although it may require modification in the future.\n\n### 0.50-b @ 06/11/2019\n\n1. Fix a bug for implementing the channel_first mode for `AConv` in `.layers`.\n2. Finish `InstanceGaussianNoise` in `.layers`.\n3. Prepare the test for adding dropout to residual layers in `.layers`.\n\n### 0.50 @ 06/11/2019\n\n1. Finish `Conv1DTied`, `Conv2DTied`, `Conv3DTied` in `.layers`.\n2. Switch back to the 0.48 version for `.layers.DenseTied` APIs because testing show that the modification in 0.48-b will cause bugs.\n\n### 0.48-b @ 06/10/2019\n\nA Test on replacing the `.layers.DenseTied` APIs like `tf.keras.layers.Wrappers`.\n\n### 0.48 @ 06/09/2019\n\n1. Finish `Inceptplus1D`, `Inceptplus2D`, `Inceptplus3D`, `Inceptplus1DTranspose`,  `Inceptplus2DTranspose`, `Inceptplus3DTranspose` in `.layers`.\n2. Minor changes for docstrings and default settings in `.layers.inception`.\n\n### 0.45-b @ 06/07/2019\n\n1. Enable the `ResNeXt` to estimate the latent group and local filter number.\n2. Make a failed try on implementing quick group convolution, testing results show that using `tf.nn.depthwise_conv2d` to replace multiple `convND` ops would cause the computation to be even slower.\n\n### 0.45 @ 06/06/2019\n\n1. Enable Modern convolutional layers to work with group convolution.\n2. Reduce the memory consumption for network construction when using ResNeXt layers in case of out of memory (OOM) problems.\n3. Fix a minor bug for group convolution.\n\n### 0.42 @ 06/05/2019\n\n1. Finish `GroupConv1D`, `GroupConv2D`, `GroupConv3D` in `.layers`.\n2. Fix the bugs in channel detections for residual and inception layers.\n\n### 0.40 @ 06/05/2019\n\n1. Finish `Resnext1D`, `Resnext2D`, `Resnext3D`, `Resnext1DTranspose`,  `Resnext2DTranspose`, `Resnext3DTranspose` in `.layers`.\n2. Fix the repeating biases problems in inception-residual layers.\n\n### 0.38 @ 06/04/2019\n\n1. Finish `Inceptres1D`, `Inceptres2D`, `Inceptres3D`, `Inceptres1DTranspose`,  `Inceptres2DTranspose`, `Inceptres3DTranspose` in `.layers`.\n2. Fix some bugs and revise docstrings for `.layers.residual` and `.layers.inception`.\n\n### 0.36 @ 06/01/2019\n\nFinish `Inception1D`, `Inception2D`, `Inception3D`, `Inception1DTranspose`,  `Inception2DTranspose`, `Inception3DTranspose` in `.layers`.\n\n### 0.32 @ 05/31/2019\n\nFinish `Residual1D`, `Residual2D`, `Residual3D`, `Residual1DTranspose`,  `Residual2DTranspose`, `Residual3DTranspose` in `.layers`.\n\n### 0.28 @ 05/24/2019\n\n1. Fix the bug about padding for transposed dilation convolutional layers.\n2. Add a new option `output_mshape` to help transposed convolutional layers to control the desired output shape.\n3. Finish `PyExternal` in `.layers`.\n\n### 0.24 @ 03/31/2019\n\nFinish `H5GCombiner` in `.data`.\n\n### 0.23 @ 03/27/2019\n\n1. Use `keras.Sequence()` to redefine `H5GParser` and `H5HGParser`.\n2. Add compatible check.\n\n### 0.22 @ 03/26/2019\n\nAdjust the `.data.h5py` module to make it more generalized.\n\n### 0.20 @ 03/26/2019\n\n1. Finish `H5HGParser`, `H5SupSaver`, `H5GParser` in `.data`.\n2. Finish `DenseTied`, `InstanceNormalization`, `GroupNormalization`, `AConv1D`, `AConv2D`, `AConv3D`, `AConv1DTranspose`,  `AConv2DTranspose`, `AConv3DTranspose` in `.layers`.\n\n### 0.10 @ 03/23/2019\n\nCreate this project.\n\n[brch-demos]:https://github.com/cainmagi/MDNT/tree/demos","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcainmagi%2Fmdnt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcainmagi%2Fmdnt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcainmagi%2Fmdnt/lists"}