Program Listing for File response_memory_probs.cpp

Return to documentation for file (morpheus/_lib/src/messages/memory/response_memory_probs.cpp)

Copy
Copied!
            

#include "morpheus/messages/memory/response_memory_probs.hpp" #include "morpheus/utilities/cupy_util.hpp" #include <cudf/types.hpp> #include <pybind11/pytypes.h> #include <cstddef> #include <map>// this->tensors is a map #include <memory> #include <stdexcept>// for runtime_error #include <utility> namespace morpheus { /****** Component public implementations *******************/ /****** ResponseMemoryProbs****************************************/ ResponseMemoryProbs::ResponseMemoryProbs(size_t count, TensorObject probs) : ResponseMemory(count) { this->tensors["probs"] = std::move(probs); } ResponseMemoryProbs::ResponseMemoryProbs(size_t count, tensor_map_t &&tensors) : ResponseMemory(count, std::move(tensors)) { CHECK(has_tensor("probs")) << "Tensor: 'probs' not found in memory"; } const TensorObject &ResponseMemoryProbs::get_probs() const { auto found = this->tensors.find("probs"); if (found == this->tensors.end()) { throw std::runtime_error("Tensor: 'probs' not found in memory"); } return found->second; } void ResponseMemoryProbs::set_probs(TensorObject probs) { this->tensors["probs"] = std::move(probs); } /****** ResponseMemoryProbsInterfaceProxy *************************/ std::shared_ptr<ResponseMemoryProbs> ResponseMemoryProbsInterfaceProxy::init(cudf::size_type count, pybind11::object probs) { // Conver the cupy arrays to tensors return std::make_shared<ResponseMemoryProbs>(count, std::move(CupyUtil::cupy_to_tensor(probs))); } std::size_t ResponseMemoryProbsInterfaceProxy::count(ResponseMemoryProbs &self) { return self.count; } pybind11::object ResponseMemoryProbsInterfaceProxy::get_probs(ResponseMemoryProbs &self) { return CupyUtil::tensor_to_cupy(self.get_probs()); } void ResponseMemoryProbsInterfaceProxy::set_probs(ResponseMemoryProbs &self, pybind11::object cupy_values) { self.set_probs(CupyUtil::cupy_to_tensor(cupy_values)); } } // namespace morpheus

© Copyright 2023, NVIDIA. Last updated on Feb 3, 2023.