Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Save/Load Gluon Blocks & HybridBlocks #19564

Merged
merged 9 commits into from
Dec 14, 2020
Merged

Conversation

samskalicky
Copy link
Contributor

@samskalicky samskalicky commented Nov 19, 2020

Description

master branch version of PoC for saving & loading Gluon Blocks & HybridBlocks from #19535. Version for v1.x is #19565. This PR is fundamentally different due to the changes on the master branch for block names/UUIDs compared to v1.x

This PR adds 2 new APIs to Gluon Blocks:

save

Saves the model parameters and a json structure of the model that stores the various names/UUIDs in order to later restore and match the saved parameters. This does not actually store the model. Users still need to recreate their model architecture using their Gluon code in Python.

It also stores the hybridized Symbol objects for HybridBlocks and associated settings so that it can be later reloaded.

load

Loads the model parameters and a json structure of the model. It restores the names/UUIDs of blocks in order to match the saved parameters.

Also restores hybridized Symbol objects in HybridBlocks so they do not need to be hybridized again. After calling the load API users can immediately run inference without needing to hybridize.

Other changes

  • renames load_json function in Symbol namespace to fromjson to match the corresponding tojson API

@mxnet-bot
Copy link

Hey @samskalicky , Thanks for submitting the PR
All tests are already queued to run once. If tests fail, you can trigger one or more tests again with the following commands:

  • To trigger all jobs: @mxnet-bot run ci [all]
  • To trigger specific jobs: @mxnet-bot run ci [job1, job2]

CI supported jobs: [edge, clang, windows-cpu, centos-cpu, miscellaneous, sanity, unix-cpu, centos-gpu, website, unix-gpu, windows-gpu]


Note:
Only following 3 categories can trigger CI :PR Author, MXNet Committer, Jenkins Admin.
All CI tests must pass before the PR can be merged.

@lanking520 lanking520 added pr-awaiting-testing PR is reviewed and waiting CI build and test pr-work-in-progress PR is still work in progress and removed pr-awaiting-testing PR is reviewed and waiting CI build and test labels Nov 19, 2020
@lanking520 lanking520 added pr-awaiting-testing PR is reviewed and waiting CI build and test pr-work-in-progress PR is still work in progress and removed pr-work-in-progress PR is still work in progress pr-awaiting-testing PR is reviewed and waiting CI build and test labels Nov 20, 2020
@lanking520 lanking520 added pr-awaiting-testing PR is reviewed and waiting CI build and test pr-work-in-progress PR is still work in progress and removed pr-work-in-progress PR is still work in progress pr-awaiting-testing PR is reviewed and waiting CI build and test labels Nov 20, 2020
@lanking520 lanking520 added pr-awaiting-testing PR is reviewed and waiting CI build and test pr-work-in-progress PR is still work in progress and removed pr-work-in-progress PR is still work in progress pr-awaiting-testing PR is reviewed and waiting CI build and test labels Nov 20, 2020
@lanking520 lanking520 added pr-work-in-progress PR is still work in progress and removed pr-awaiting-testing PR is reviewed and waiting CI build and test labels Nov 20, 2020
@lanking520 lanking520 added pr-awaiting-testing PR is reviewed and waiting CI build and test and removed pr-work-in-progress PR is still work in progress labels Nov 20, 2020
@samskalicky samskalicky added the pr-awaiting-review PR is waiting for code review label Nov 21, 2020
Copy link
Contributor

@leezu leezu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

python/mxnet/gluon/block.py Outdated Show resolved Hide resolved
python/mxnet/gluon/block.py Outdated Show resolved Hide resolved
@lanking520 lanking520 added pr-awaiting-testing PR is reviewed and waiting CI build and test pr-work-in-progress PR is still work in progress pr-awaiting-review PR is waiting for code review and removed pr-awaiting-review PR is waiting for code review pr-awaiting-testing PR is reviewed and waiting CI build and test pr-work-in-progress PR is still work in progress labels Dec 12, 2020
@lanking520 lanking520 added pr-awaiting-testing PR is reviewed and waiting CI build and test pr-work-in-progress PR is still work in progress pr-awaiting-review PR is waiting for code review and removed pr-awaiting-review PR is waiting for code review pr-awaiting-testing PR is reviewed and waiting CI build and test pr-work-in-progress PR is still work in progress labels Dec 13, 2020
@leezu leezu merged commit 765297b into apache:master Dec 14, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
pr-awaiting-review PR is waiting for code review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants