Exemple #1
0
        private void _build(string checkpoint_path, bool build_save, bool build_restore)
        {
            if (_is_built)
            {
                return;
            }

            _is_built = true;

            if (_saver_def == null)
            {
                if (_builder == null)
                {
                    _builder = new BulkSaverBuilder(_write_version);
                }

                if (_var_list == null)
                {
                    _var_list = variables._all_saveable_objects();
                }

                if (_var_list == null || _var_list.Length == 0)
                {
                    if (_allow_empty)
                    {
                        _is_empty = true;
                        return;
                    }
                    else
                    {
                        throw new ValueError("No variables to save");
                    }
                }
                _is_empty = false;

                _saver_def = _builder._build_internal(_var_list,
                                                      reshape: _reshape,
                                                      sharded: _sharded,
                                                      max_to_keep: _max_to_keep,
                                                      keep_checkpoint_every_n_hours: _keep_checkpoint_every_n_hours,
                                                      name: _name,
                                                      restore_sequentially: _restore_sequentially,
                                                      filename: checkpoint_path,
                                                      build_save: build_save,
                                                      build_restore: build_restore);
            }
            else if (_saver_def != null && !string.IsNullOrEmpty(_name))
            {
                throw new NotImplementedException("Saver._build");
            }

            _check_saver_def();

            _next_checkpoint_time = time() + _saver_def.KeepCheckpointEveryNHours * 3600;
        }
Exemple #2
0
        public Saver(IVariableV1[] var_list = null,
                     bool reshape           = false,
                     bool sharded           = false,
                     int max_to_keep        = 5,
                     float keep_checkpoint_every_n_hours = 10000,
                     string name = null,
                     bool restore_sequentially = false,
                     SaverDef saver_def        = null,
                     ISaverBuilder builder     = null,
                     bool defer_build          = false,
                     bool allow_empty          = false,
                     SaverDef.Types.CheckpointFormatVersion write_version = SaverDef.Types.CheckpointFormatVersion.V2,
                     bool pad_step_number     = false,
                     bool save_relative_paths = false,
                     string filename          = "")
        {
            _var_list    = var_list;
            _reshape     = reshape;
            _sharded     = sharded;
            _max_to_keep = max_to_keep;
            _keep_checkpoint_every_n_hours = keep_checkpoint_every_n_hours;
            _name = name;
            _restore_sequentially = restore_sequentially;
            _saver_def            = saver_def;
            _builder         = builder;
            _is_built        = false;
            _allow_empty     = allow_empty;
            _write_version   = write_version;
            _pad_step_number = pad_step_number;

            if (!defer_build)
            {
                build();
            }
            if (_saver_def != null)
            {
                _check_saver_def();
                _write_version = _saver_def.Version;
            }

            _save_relative_paths  = save_relative_paths;
            _object_restore_saver = null;

            _last_checkpoints          = new Dictionary <string, float>();
            _checkpoints_to_be_deleted = new Dictionary <string, float>();
        }