| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // Tencent is pleased to support the open source community by making ncnn available.
- //
- // Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
- //
- // Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
- // in compliance with the License. You may obtain a copy of the License at
- //
- // https://opensource.org/licenses/BSD-3-Clause
- //
- // Unless required by applicable law or agreed to in writing, software distributed
- // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- // CONDITIONS OF ANY KIND, either express or implied. See the License for the
- // specific language governing permissions and limitations under the License.
- #ifndef NCNN_PARAMDICT_H
- #define NCNN_PARAMDICT_H
- #include "mat.h"
- // at most 32 parameters
- #define NCNN_MAX_PARAM_COUNT 32
- namespace ncnn {
- class DataReader;
- class Net;
- class ParamDictPrivate;
- class NCNN_EXPORT ParamDict
- {
- public:
- // empty
- ParamDict();
- virtual ~ParamDict();
- // copy
- ParamDict(const ParamDict&);
- // assign
- ParamDict& operator=(const ParamDict&);
- // get type
- int type(int id) const;
- // get int
- int get(int id, int def) const;
- // get float
- float get(int id, float def) const;
- // get array
- Mat get(int id, const Mat& def) const;
- // set int
- void set(int id, int i);
- // set float
- void set(int id, float f);
- // set array
- void set(int id, const Mat& v);
- protected:
- friend class Net;
- void clear();
- int load_param(const DataReader& dr);
- int load_param_bin(const DataReader& dr);
- private:
- ParamDictPrivate* const d;
- };
- } // namespace ncnn
- #endif // NCNN_PARAMDICT_H
|