↰ Return to documentation for file (morpheus/_lib/src/messages/memory/response_memory_probs.cpp
)
#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