NVIDIA NvNeural SDK  2022.2
GPU inference framework for NVIDIA Nsight Deep Learning Designer
WeightsData.h
Go to the documentation of this file.
1 /*
2 * SPDX-FileCopyrightText: Copyright (c) 2020-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3 * SPDX-License-Identifier: MIT
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
22 */
23 
25 
26 #ifndef NVNEURAL_WEIGHTSDATA_H
27 #define NVNEURAL_WEIGHTSDATA_H
28 
29 #include <nvneural/CoreTypes.h>
30 #include <nvneural/CoreHelpers.h>
31 
32 #include <cstdint>
33 #include <vector>
34 
35 namespace nvneural {
41  template<typename TVectorData>
43  refobj::Implements<IWeightsData>>
44  {
45  public:
51  WeightsData(TensorFormat format, TensorDimension dimension, std::vector<TVectorData>&& container);
52 
53  // IWeightsData members
54 
56  NetworkBackendId backendId() const noexcept override;
58  TensorFormat tensorFormat() const noexcept override;
60  TensorDimension dimension() const noexcept override;
62  bool memManagedExternally() const noexcept override;
64  const void* data() const noexcept override;
65 
66  private:
67  TensorFormat m_format;
68  TensorDimension m_dimension;
69  std::vector<TVectorData> m_container;
70  };
71 } // namespace nvneural
72 
73 #endif // NVNEURAL_WEIGHTSDATA_H
Common helper classes and template function implementations.
Fundamental NvNeural data types are declared here.
NetworkBackendId
Enumeration describing common network backends.
Definition: CoreTypes.h:239
Standard IWeightsData implementation containing a vector of values in CPU memory.
Definition: WeightsData.h:44
bool memManagedExternally() const noexcept
Returns true if the memory is managed outside NvNeural and should not be freed or reallocated by the ...
Definition: WeightsData.cpp:55
const void * data() const noexcept
Returns a pointer to the first element of the weights buffer.
Definition: WeightsData.cpp:61
NetworkBackendId backendId() const noexcept
Returns the backend for which this weights data is relevant.
Definition: WeightsData.cpp:37
TensorDimension dimension() const noexcept
Returns the size of the weights buffer in elements.
Definition: WeightsData.cpp:49
WeightsData(TensorFormat format, TensorDimension dimension, std::vector< TVectorData > &&container)
Creates a new WeightsData object.
Definition: WeightsData.cpp:29
TensorFormat tensorFormat() const noexcept
Returns the tensor format for the weights buffer.
Definition: WeightsData.cpp:43
TensorDimension describes the dimensions of a four-dimensional image tensor.
Definition: CoreTypes.h:136
TensorFormat describes a specific tensor shape (element type and layout).
Definition: CoreTypes.h:88
Parameterized base class implementing common IRefObject operations.
Definition: RefObject.h:336